Multiples Wordpres: Instalación de Lyceum y parche para hacerlo con un WP normal
Como deje en el ultimo post, he estado revisando las posibilidades para hacer de wordpress un sistema multiblog, y mi primera respuesta fue WordpressMu, el cual me decepciono por su terrible inestabilidad pero me gusto su capacidad de no cargar el host (a mi como q lo del host me da un poco igual, tengo espacio ilimitado de almacenamiento
).. Pero no me gusto nada que creara un conjunto nuevo de tablas para cada usuario. Esto ultimo sobre todo y dado que mi host me cobra unas pelas por el espacio de la base de datos me decidí a encontrar mejores opciones por mi cuenta.
Visto que la oferta de plugins para gestión de varios wordpress a la vez se reducía al Blogroll para compartir los post y unos cuantos hack que son mas inestables aun que el mismo WPMU, me puse manos a la obra a crear alguna función para ver si solucionaba un poco el dilema. Cosa que, buscando y buscando me hizo caer en Lyceum el cual es un proyecto que hace lo que pensé yo, reestructuran las tablas de wordpress para que se pueda utilizar una sola tabla para todos los blog, de manera que un mismo dato puede estar en varios blog sin tener que estar duplicado. Esto me ha gustado mucho por que así por ejemplo no se tiene que crear un mismo usuario idéntico para cada web y se pueden gestionar sus datos para todas a la vez, pero plantea el fallo de que si cambiamos la estructura de la db corremos el riesgo de que no se puedan ejecutar algunos plugins o themes, eso sin contar los que maliciosamente se diseñen para cambiar los "permisos de blog" si liberásemos la función de subir libremente plugins.
Pero lyceum a pesar de eso parecía una buena opción hasta que se llega al siempre engorroso tema de la instalación, ya que no es ni mucho menos como la de un wordpress. Tiene un montón de parámetros reconfigurables que pueden hacer que la instalación falle y de echo lo hacen en muchas ocasiones, y eso sin contar con que si no se posee control total sobre el host donde se quiere instalar es prácticamente imposible hacerlo. y eso unido a q según los blog que ya he visto instalados, instala una versión de WordPress 1.0.9.0-beta, pierde todo su atractivo...
Por si alguien quiere instalarlo os cuento mi experiencia.
Para instalarlo lo 1º es ir a la web de lyceum y descargarlo. Yo me descargue el archivo lyceum-0.34.tar.gz el cual tiene dentro 4 carpetas.
La única que nos interés par la instalación es la carpeta "SRC", la cual continué los archivos que tendremos que subir al servidor para realizar la instalación.
Antes de subirlos tendremos que buscar el archivo "wp-config-sample.php" que esta dentro de la carpeta "config" y renombrarlo a wp-config.php.
A continuación, tenemos que cambiar DB_NAME, DB_USER, DB_PASSWORD y DB_HOST como en una instalación normal de wordpress para conectar lyceum con la base de datos, pero ademas, adaptar WEBROOT con la dirección en la que alojaremos el archivo"portal.php". Por ejemplo /Lyceum (sin barra al final) y MAINDOMAIN con la dirección en las que se encuentra la instalación completa.. (en mi caso seria www.tierra0.com si decidiera ponerlo en la raíz de la web por ejemplo). Si queréis, podéis cambiar también DEAFULT_PS, y ponerlo en día/mes/año/nombre_del_post para adaptar mas a español los permalink (eso es mas costumbre q necesidad para mi).
Si quieres instalarlo en modo "developer" solo tenemos que cambiar la LYCEUMDEBUG a "true" y cambiar SITETITLE y ADMINEMAIL en las lineas 68 y 69 por el nombre de la instalación y el mail que quieras usar(quitando los // de delante lógicamente para descomentarlos).
Una vez echas esas modificaciones en el archivo wp-config.php lo guardamos y subimos a la ubicación que le tengamos reservada. Al terminar,solo tendremos que entrar en /lyceum/wp-admin/install.php y continuamos la instalación poniendo el nombre del site y el email asociado para el grupo de blogs.
Una vez realizados estos pasos el host debería funcionar, pero segun he leido hay que generar una dirección virtual o algo asi y la verdad, no es lo que tengo pensado así que hasta aquí os puedo contar sobre la instalacion.
Se instala SI, pero no se ejecuta, al intentar entrar los link fallan y no se accede a la administración aunque se vea el 1º blog an entrar a la carpeta /lyceum.
Por este motivo decidí seguir investigando y me puse a pensar sobre como hacia las cosas WP para gestinar los datos y vi que constaba de 2 grandes partes básicas como casi todo sistema web. Un motor web el cual servirá las paginas del blog, y una base de datos a partir de la cual configurará la apariencia y contenido de estas. Por tanto, lo unico que tenemos que buscar es, que hace a cada WP único... que cambia entre instalaciones... y lo que cambia es básicamente el contenido de la instalación y algunas áreas de los archivos del host. WP utiliza un archivo fuente a partir del cual el resto del "motor de blog" se reconfigura, y este es wp-config.php, a partir del cual configuramos las variables de conexión a la base de datos y el lenguaje en el que se nos presentara la interfaz de usuario.
A partir de estos datos WP se conecta, y puede realizar la instalación, extracción de datos, configuración de la apariencia... o de cualquier cuestión que necesite información de o desde la base de datos. Así que como cualquier camino comienza por un primer paso, decidí que este seria el punto de partida.
Para hacer que un blog de WP se autoconfigure como un blog único con una base de datos única y no compartida, es necesario un un comienzo una extensión de tabla diferente al resto de los que estén creados. Eso es lo que hace mi primera modificación de WP. Autoconfigurar el wp-config.php de una instalacion virgen a partir de la cual podremos cambiar los datos de conexión de forma global y no tengamos que ir blog por blog modificando sus propiedades.
Para hacerlo he creado un archivo llamado config.php el cual dejo en la raiz de la web, de manera que todos los blog que se quieran crear y donde se quieran crear lo tengan como referencia.
El contenido de este config.php es el siguiente:
-
<?php
-
-
$carpetas_de_blogs = "Blog_uno"; //Escribe los nombres de las carpetas donde se alojan los blog separadas por comas (SIN ESPACIOS!)
-
//Ejempplo: "Blog_uno,segundoblog,trercer_blog"
-
-
$DB_NAME = "dbname"; // Nombre de la base de datos
-
$DB_USER = "dbusername"; // Nombre de usuario para entrar en la base de datos
-
$DB_PASSWORD = ""; // Contraseña para entrar en la base de datos
-
$DB_HOST = "localhost"; // Casi siemrpe es Localhost pero puede que sea una IP o algo asi (host de la DB)
-
-
$table_prefix = "_wp_"; //Solo numeros y letras! (nombre estandar para las tablas. NOMBRECARPETA_wp_NOMBRETABLA)
-
-
$lenguaje = "es_ES"; //Por defecto sin datos, Si quieres añadir el español hay q subir un archivo.MO especifico y poner es_ES
-
?>
Una vez alojado en el servidor, tendremos que modificar el wp-config.php de la instalación fuente de manera que se conecte automáticamente a nuestro archivo de configuración base. Su contenido será el siguiente:
-
<?php
-
-
//DATOS DE CONTROL MULTIPLE DE WORDPRESS // // // // // // // // // // // // // // // // // // // // // // // // //
-
function dirarchivo($archivo){
-
$path[$i] = "\:\:\:\:";
-
$dir = "";
-
foreach($path as $valor){
-
if($valor != "\:\:\:\:"){
-
$dir .= $valor."/";
-
}
-
}
-
$i--;
-
-
$salida = $dir;
-
$dir .= $archivo;
-
}
-
return $salida;
-
}
-
-
require(dirarchivo("config.php")."config.php");
-
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
-
-
// ** MySQL settings ** //
-
-
// You can have multiple installations in one database if you give each a unique prefix
-
if(!$table_prefix){
-
$table_prefix = $carpeta; // Only numbers, letters, and underscores please!
-
} else {
-
$table_prefix = $carpeta.$table_prefix; // Only numbers, letters, and underscores please!
-
}
-
// Change this to localize WordPress. A corresponding MO file for the
-
// chosen language must be installed to wp-includes/languages.
-
// For example, install de.mo to wp-includes/languages and set WPLANG to 'de'
-
// to enable German language support.
-
-
/* That's all, stop editing! Happy blogging. */
-
-
require_once(ABSPATH.'wp-settings.php');
-
?>
De esta manera, solo necesitaremos (teniendo el archivo config.php en la raiz), subir un wordpress (esto lo he probado con la version 2.1.3, pero supongo que al menos desde la 1.5 en adelante si que funciona) en una carpeta con nombre propio. Por ejemplo el blog con nombre "noname" tendria que ser un WP dentro de una carpeta con nombre "noname" y tener detnro del archivo wp-config.php el contenido anterior.
Una vez realizado esto se podría replicar instalaciones que se auto ordenarían con nombres diferentes según el nombre de la carpeta en la que esté alojado su motor.
[...] termine alguna función os la postraré por aquí por si a alguien le [...]
Hola, como va!
Muy bueno el post, pero hay cosas que no entiendo, en realidad nose se me sirve o si estoy buscando equivocado.
Mi idea es tener una site gestionado por wordpress, donde haya por lo menos 2 blogs comunes de wordpress, donde se puede añadir entradas y comentarios. Los blog serían independientes entre si, pero con un mismo diseño, el mismo usuario y en un mismo host
sería algo asi
http://www.ejemplo-blog.com
http://www.ejemplo-blog.com/blog1
nose si me deje entender.
saludos
Hola Luis, ese mismo problema es el que tenia yo y por el que estoy haciendo este nuevo diseño. Estoy ahora mismo trabajando en un parche para el wordpress para hacer exactamente lo que tu quieres, que 2 wordpress puedan compartir datos de la base de datos (usuarios, post…). Para eso no es solo necesario que compartan unos archivos si no que tiene que modificarse con un “propietario” cada consulta de la base de datos. Ahora mismo ya tengo un sistema de estas características funcionando pero todavía tiene fallos al asignar los propietarios, por eso no lo he publicado. Si quieres ayudar a probarlo solo tienes que decirlo y te pasare los archivos. Un saludo y gracias por el comentario.
si, yo ayudo, el problema es que entiendo poquisimo de programacion.
Pero decime como ayudo… dlae
Intento mandarte por mail las modificaciones de un wordpress 2.2.1. Sabes instalar el wordpress?
Con que intentes usarlo y me digas cosas que no funcionan me seria de ayuda. ahora intento compatibilizar mi trabajo con la mejora de este parche.
hola, si se instalar el wordpress.
lo tengo instalado.
en este sitio.
http://www.imgson.com.ar
es donde quiero poner el parche
saludos
hola,
¿has logrado que funcione bien? estoy ante la decisión de instalar algún wp para gestionar varios blogs y no sé aun qué hacer, tu propuesta me parece interesante. me gustaría que me informaras
saludos
alejandro
Hola Alejandro, al final hice una alpha que no he logrado que termine de funcionar bien. Al modificar los registros de la base de datos del sitio con una tabla de propietarios, algunos plugin y themes producen error, y eso sin contar que muchas de las funciones internas del nuevo WP 2.3 no son compatibles con esta directiva. Tras ver que era muy poco viable por esos problemas y por imposibilidad de actualizaciones con la versión oficial vi que la mejor opción es instalar motores independientes con una estructura centralizada como expongo en este mismo articulo. Lyceum o WPMU no tienen una base lo suficientemente estable como para poder funcionar en servidores no dedicados. Si necesitas alguna información mas solo tienes que pedirla y si quieres compartir la experiencia con tu proyecto estaré encantado de leerlo. Un saludo.
o sea, no recomiendas usar wp mu… y lo que esplicas aquí cunciona bien… ¿tienes algún ejemplo que se pueda ver funcionando?
hola, alejandro, WPMU solo funciona bien en servidores dedicados. Tierra0 esta alojado en una carpeta de servidor por lo que no he logrado hacerlo funcionar, por eso, para la gente normal hice el parche. El parche funciona perfectamente… este es un articulo que creé hace bastante tiempo por lo que ya no hay ejemplos online, pero solo tienes que crear una instalación siguiendo los pasos y veras que el código sigue dejando operativo el WP.
Hola: Estoy muy interesado en lograr hacer eso que proponen…lo de administrar 2 blogs en una misma interface de administracion….pero desearia que los blogs tuviesen diferentes themes. Quisiera saber que avances hay al respecto..,si hay algun plugin desarrollado que ya implemente algo asi. Les agradeceria me pudiesen comentar.
Hola, he empezado hace poco con WP, es sencillo de instalar, pero el inicio que tuve con él fue pensando en el siguiente proyecto: creación de un portal desde el que los usuarios puedan crear sus blog, enganchando a tu sitio web y dando los minimos datos: usuario, contraseña, email y nombre del blog. Es decir, monto el portal, los usuarios se dan de alta y crean su blog a partir de mi portal que engancha con WP.
Algo similar a Educastur Blog.
No se si podrían guiarme…
Buenas, no sé si es exactamente lo que necesito. Yo lo que ando necesitando es tener dos instalaciones de WP que compartan únicamente los usuarios, no los post y demás. Eso se puede con este parche?