Configurar un Multisite con Drupal 6

He visto que configurar un drupal 6 multisite resulta complicado por mucho que lo haya explicado Daniel Marfil así que he sacado un hueco y he configurado uno para tener los pasos concretos.

La configuración la he hecho con una debian lenny, con drupal 6.10, usando como dominios de ejemplo 'server1' y 'server2' y usando la misma base de datos

Empezamos.

Editar /etc/hosts
127.0.0.1 server1 server1
127.0.0.1 server2 server2
Editar /etc/apache2/sites-enabled/000-default
< VirtualHost *:80>
ServerName server1
DocumentRoot /var/www/guitarras
< /VirtualHost>
< VirtualHost *:80>
ServerName server2
DocumentRoot /var/www/guitarras
< /VirtualHost>
Crear directorios
Debemos crear los directorios: server1 y server2 con los directorios /files, modules y themes. Es aquí donde vamos a incluir los módulos específicos de cada dominio.

Configurar el acceso a la base de datos
Una vez que hemos configurado el servidor Apache con los dominios y hemos creado los directorios hay que editar el fichero: settings.php con los datos de la base de datos.
$db_url = 'mysql://user:pass@localhost/DATABASE';
$db_prefix = '';

Con esto, ya tienes tu drupal multisite perfectamente configurado, ahora sólo queda ir a http://server1/install.php y http://server2/install.php para crear las tablas y la configuración personalizada para cada dominio.

Comentarios

He hecho lo que has puesto

He hecho lo que has puesto aquí paso a paso pues desde hace tiempo quiero utilizar la posibilidad de multisitios de drupal y no he podido, lo que leo en los demás sitios me confunde y lo que hay aquí lo entiendo bien. Me sucede que cuando acabo de hacerlo todo le tengo que quitar la red a mi PC y deshabilitarle el proxy al navegador porque si no se va al dns y me dice que no puede resolver la IP de server1 cuando tiene red (eso es lógico!) y luego cuando se la quito me dice que no puede gestionar la dirección pues no tiene acceso al proxy. Cuando quito las dos cosas me pone lo siguiente...

Warning: require_once(./includes/install.inc) [function.require-once]: failed to open stream: No such file or directory in /var/www/install.php on line 4

Fatal error: require_once() [function.require]: Failed opening required './includes/install.inc' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/install.php on line 4

Por favor, necesito ayuda con esto. Cómo puedo hacer que esto funcione bien?????????

Hola, Me alegra que te

Hola,

Me alegra que te parezca facil siguiendo esta guia.

Ese error lo puedes tener por varias razones, una de ellas es por que te falte algun paquete de php (php-pear?), o porqueno tengas los archivos en el directorio correcto.

Otra cosa, si sigues esta guia, veras que estas modificando la dns, relacionando el 'dominio' con la ip por lo que no deberias desconectar ningun pc.

Exitos!

--
saludos

cyfuss

No encuentra el archivo: /var/www/includes/install.inc

Comprueba que exista este fichero:
/var/www/includes/install.inc

al parecer el script de instalación no es capaz de encontrarlo. No creo que tenga nada que ver con PEAR, la única mención que hace a PEAR es que al no encontrarlo en la ruta indicada, ha intentado loalizarlo también en la carpeta de PEAR. Que es uno de los luhgares por defecto en la configuración de tu php (php.ini)

Se que han pasado meses, pero puede servirle a otro.

Hola, me ocurre un

Hola,

me ocurre un problemilla, cuando accedo a sitio1/install.php, el instalador se va a default para coger el settings, en vez de cogerlo de /var/www/sites/sitio1/settings.php

Alguna solución¿?

Mi configuración es la siguiente:

/etc/hosts:
127.0.0.1 sitio1
127.0.0.1 sitio2
127.0.0.1 drupal

/etc/apache2/sites-enabled/000-default

ServerName sitio1.localhost
DocumentRoot /var/www/drupal/

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

ServerName sitio2.localhost
DocumentRoot /var/www/drupal/

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

Gracias, un saludo.

¿Has comprobado si tienes

¿Has comprobado si tienes configurado los ficheros settings.php de cada dominio?

--
saludos

cyfuss

Muy interesante el articulo

de echo es genial, no lo he probado pero simplemente pensando lo que hace tiene que funcionar. pero una pregunta. ¿como y cuando resuelve que site cargar?, como sabe a que base de datos conectar o que prejijo de tablas usar.

de primeras pienso que creando una funcion para saber desde que dominio vienes pero ¿es esa la forma correcta? o hay una forma mas elegante?.

muchas gracias.

Hola, La redirección de los

Hola,

La redirección de los dominios lo hace apache en el momento que haces la petición al servidor, por eso se configura apache con el site.

Drupal sabe a que base de datos tiene que llamar y que prefijos debe usar por la configuración del settings.php.

Tu realmente no tienes que hacer nada, ya se encarga drupal de hacer toda la gestión de dominios y configuración. Por eso es tan sencillo hacer un drupal multisite porque lo hace solo Eye-wink

--
saludos

cyfuss

gracias por responder tan

gracias por responder tan pronto, el tema era antiguo y yo lo he revivido. Entonces imagino que la redireccion la hace apache con el site a /www/misitio/site1 y a /www/misitio/site2 y ahi tienes cada settings.php. Uno por cada site y asi cada uno cargara su configuracion. siguiendo tu ejemplo:
< VirtualHost *:80>
ServerName server1
DocumentRoot /var/www/guitarras/site1
< /VirtualHost>
< VirtualHost *:80>
ServerName server2
DocumentRoot /var/www/guitarras/site2
< /VirtualHost>

y en site1 tendriamos el settings.php de server1 y en site2 el settings.php de server2. Entiendo que seria asi como se haria. En realidad no lo necesito para drupal pero tengo que hacer algo parecido y que mejor que ver como lo hace drupal para tratarlo igual.

muchas gracias. buen blog éste.

Ah!, entonces lo tienes

Ah!, entonces lo tienes mucho más facil, lo único que deberias hacer es analizar el dominio por el que accedes y según el que sea realizas una conexion con la base de datos o con otra.

De todas maneras, que es lo que quieres hacer?, un multisite o un multilingual? Eye-wink

--
saludos

cyfuss

quiero hacer un multisite,

quiero hacer un multisite, en principio es exactamente la misma idea que para hacer un multisite con drupal. Lo que he echo ha sido exactamente lo q me dices, analizar el dominio y en base a este me conecto a una BD o a otra (o cargar unas tablas con prefijos u otra).

Y no se muy bien como afectaria al sistema, que problemas podre encontrar, necesitare mas adelante modo seguro ssl (https) y al no haber echo algo asi antes pues eso, no se si mas adelante encontrare problemas. por eso queria fijarme en como lo hace drupal. tambien ahora mismo estoy trabajando en localhost y por mucho que configure el apache para redireccionar site1.com y site2.com siempre acaba en localhost por lo que no puedo todavia comprobar si el funcionamiento seria perfecto.

dentro de poco lo veremos. Tambien tengo q ponerme las pilas en seguridad, ver como proteger los archivos donde se encuentra la configuracion. settings.php etc..

bueno poco a poco, y espero q con buena letra...

un saludo

Suena interesante ese

Suena interesante ese proyecto Eye-wink

Debes tener en cuenta que si vas a analizar en todas las páginas cuál es el dominio en el que entras puedes tener problemas de sobrecarga del servidor (cuanto tráfico calculas que podrás tener?)

Por el tema de la seguridad y proteccion de ficheros de configuracion... fácil!, tiras de .htaccess y listo Eye-wink

Mucha suerte con el proyecto

--
saludos

cyfuss

mmm pues quizas se

mmm pues quizas se solucionaria con sesiones, una vez que analizas el dominio crearia una sesion y a partir de la sesion ya a tirar pa´lante, es solo una idea.... pufff habra que pensarlo bien el tema de la seguridad y no dar lugar a que se mezclen los sites, que al estar realizando operaciones en un site salte a la configuracion de otro site de ningun modo.

esta un poco verde todavia pero ese es el kit del problema, como se haria el "analizar todas la paginas" se haria asi? seria lo que se conoce como best practices?.
¿hay algun diseño del software que ya haya contemplado esto?, por eso queria saber como lo hace drupal, que todavia no se como lo hace. si no encuentro respuesta a este tipo de diseño lo hare con drupal para ver su funcionamiento.

seguiremos viendolo, gracias por tu ayuda. un saludo

vas a trabajar con

vas a trabajar con sesiones?, y como controlas cuando entra en la sesion?, y cuando sale?,... no sé... jeje, es que soy experto en encontrar problemas Eye-wink

Prueba un drupal multisite para ver como funciona, mira el código para ver como trabaja y después 'traducelo' en tu código, estoy seguro que ahorraras mucho tiempo.

Otra cosa, si el tema de la seguridad es muy importante (no se la temática de tu proyecto, ni donde pretendes usarlo, ...) quizás deberias plantearte no hacer un multisite tu solo, y si lo haces contratar alguna auditoria de seguridad.

Piensa que el multisite no es la panacea.

--
saludos

cyfuss

Enviar un comentario nuevo

Smileys
:);):(:D}:):P:O:?8):jawdrop::sick:
El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.
  • Textual smileys will be replaced with graphical ones.

Más información sobre opciones de formato

Captcha
Esta pregunta es para probar que el que escribe el comentario es un humano
1 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Tienda de música online