Drupal MultiSite

sismo
08/04/2009 - 10:50

Drupa es un sistema de gestión de contenido para sitios Web. Permite publicar artículos, imágenes, u otros archivos y servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y permisos. Drupal es un sistema dinámico: en lugar de almacenar sus contenidos en archivos estáticos en el sistema de ficheros del servidor de forma fija, el contenido textual de las páginas y otras configuraciones son almacenados en una base de datos y se editan utilizando un entorno Web incluido en el producto.

Drupal se distribuye bajo la licencia GNU GPL, y por lo tanto es software libre.

Extraído de Wikipedia (http://es.wikipedia.org/wiki/Drupal

Requerimientos:

Se debe tener instalado un servidor LAMP como esta indicado en este tutorial.

Observaciones:

Al momento de redactar este tutorial la última versión de drupal es la 6.14, debe prestarse atención en adaptar los nombre de los archivos/directorios en caso de que se este trabajando con una versión más nueva.

Procedimiento:

El primer paso a realizar es descargar Drupal.  Para realizar esto se debe acceder al sitio de drupal y descargar la versión más nueva.  La forma más fácil para realizar esto es copiar el link con el navegar y descargarlo con el wget.

< cd /tmp
< wget http://ftp.drupal.org/files/projects/drupal-6.14.tar.gz
> --11:08:50--  http://ftp.drupal.org/files/projects/drupal-6.13.tar.gz
>            => `drupal-6.13.tar.gz'
> Resolving ftp.drupal.org... 140.211.166.134
> Connecting to ftp.drupal.org|140.211.166.134|:80... connected.
> HTTP request sent, awaiting response... 200 OK
> Length: 1,080,373 (1.0M) [application/x-gzip]
> 
> 100%[==================================>] 1,080,373    202.74K/s    ETA 00:00
> 
> 11:08:55 (202.32 KB/s) - `drupal-6.14.tar.gz' saved [1080373/1080373]

Si no se tiene instalado wget se puede instalar ejecutando.

< sudo apt-get install wget

Finalizada la descarga se debe proceder a descomprimir el tar.gz que contiene el drupal.  Esto se va a realizar en el opt (esto se hace para simplificar a futuro las actualizaciones de drupal).

< sudo mkdir -p /opt/drupal
< sudo mkdir -p /var/www/htdocs
< cd /opt/drupal < sudo tar -xzf /tmp/drupal-6.14.tar.gz

Es conveniente instalar las librerías gd para el tratamiento de imágenes en php.

< sudo apt-get install php5-gd

Se debe crear un link simbólico en el directorio donde se alojan los sitios webs en el servidor.

< sudo ln -s /opt/drupal/drupal-6.14/ /var/www/htdocs/drupal-produccion

Si se quiere instalar drupal en español, se debe descargar el paquete de la traducción e instalarlo.  Se debe ubicar la traducción que se quiere instalar la sección traducciones del sitio de drupal y copiar el link de descarga.

< cd /tmp
< wget http://ftp.drupal.org/files/projects/es-6.x-1.3.tar.gz
< cd /opt/drupal/drupal-6.14/
< sudo tar -xzf /tmp/es-6.x-1.3.tar.gz

A continuación se configurará el motor de base de datos para permitir la conexión de un usuario a una base de datos para Drupal.

 


Para conectarse a la base de datos se debe ejecutar el comando:

< mysql -u root -p

El sistema solicitará la contraseña que se definió para el usuario root en el momento de la instalación del mysql.

Dentro de la consola de mysql se debe ejecutar.

> Welcome to the MySQL monitor.  Commands end with ; or \g.
> Your MySQL connection id is 19
> Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)
 
> Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
< mysql> create database drupal;
> Query OK, 1 row affected (0.00 sec)
 
< mysql> grant all privileges on drupal.* to drupalsites@localhost \
identified by 'cambiame'; > Query OK, 0 rows affected (0.00 sec) < mysql> flush privileges; > Query OK, 0 rows affected (0.00 sec) < mysql> quit

Se debe configurar al Drupal para que funcione con dos sitios (drupal1.dominio.com y drupal2.dominio.com).

< cd /var/www/htdocs/drupal-produccion/sites
< sudo cp -r default/ drupal1.dominio.com
< sudo cp -r default/ drupal2.dominio.com
< sudo cp drupal1.dominio.com/default.settings.php drupal1.dominio.com/settings.php
< sudo cp drupal2.dominio.com/default.settings.php drupal2.dominio.com/settings.php

Se le debe cambiar el owner a los directorios creados para que el asistente de configuración pueda escribir en los mismos cuando se realice la configuración web.

< sudo chown www-data.www-data -R drupal1.dominio.com/
< sudo chown www-data.www-data -R drupal2.dominio.com/

Para que los sitios sean accesibles se deben crear los archivos de configuración de apache para cada sitio.

Para drupal1.dominio.com

< sudo nano /etc/apache2/sites-available/drupal1.dominio.com

Con el siguiente contenido:

<VirtualHost *:80>
        ServerName drupal1.dominio.com
        ServerAdmin webmaster@dominio.com

        DocumentRoot /var/www/htdocs/drupal-produccion
        CustomLog /var/log/apache2/drupal1.dominio.com.access.log combined
        ErrorLog /var/log/apache2/drupal1.dominio.com.error.log
        LogLevel warn

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  
        <Directory /var/www/htdocs/drupal-produccion/>
                Options Indexes FollowSymLinks MultiViews
                Order deny,allow
                Allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
        </Directory>
</VirtualHost>

y prácticamente lo mismo para drupal2.dominio.com

< sudo nano /etc/apache2/sites-available/drupal2.dominio.com

Con el siguiente contenido:

<VirtualHost *:80>
        ServerName drupal2.dominio.com
        ServerAdmin webmaster@dominio.com

        DocumentRoot /var/www/htdocs/drupal-produccion
        CustomLog /var/log/apache2/drupal2.dominio.com.access.log combined
        ErrorLog /var/log/apache2/drupal2.dominio.com.error.log
        LogLevel warn

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  
        <Directory /var/www/htdocs/drupal-produccion/>
                Options Indexes FollowSymLinks MultiViews
                Order deny,allow
                Allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
        </Directory>
</VirtualHost>

Como se esta trabajando con hostvirtuales los dominios drupal1.dominio.com y drupal2.dominio.com deben ser dados de alta en el dns, o agregados en el archivo hosts de los equipos que los van a consumir. 

En este caso para llevar adelante la instalación se agregarán los registros en el archivo "/etc/hosts" del cliente (en mi caso la notebook de trabajo).  Es necesario saber la ip ('xxx.xxx.xxx.xxx') del equipo donde se esta instalando drupal.

< echo -e 'xxx.xxx.xxx.xxx\tdrupal1.dominio.com' |sudo tee -a /etc/hosts
< echo -e 'xxx.xxx.xxx.xxx\tdrupal2.dominio.com' |sudo tee -a /etc/hosts

A continuación en el servidor se procederá a habilitar el sitio drupal1 y se recargará la configuración de apache.

< sudo a2ensite drupal1.dominio.com
< sudo /etc/init.d/apache2 reload

Para continuar con la instalación se debe entrar con el navegador (firefox) a la url 'http://drupal1.dominio.com' donde se mostrará la siguiente pantalla:

El primer paso a realizar es selecionar el idioma.

 Si se superar todos los quererimientos del sistema el siguiente paso a definirir es la base de datos.

Se debe desplegar las opciones avanzadas en la base de datos para poder definir el prefijo de la base de datos (esto permite poder tener varios drupals en la misma base).

El siguiente paso es definir el nombre del sitio (que aparece en la parte superior izquierda del theme por defecto).  Y el usuario administrador del sistema (con la contraseña del mismo).

Finalizada la instalación el sistema muestra una pantalla confirmado la instalación exitosa del cms.

Vista final del sitio finalizada la configuración del mismo.

Finalizada la configuración del sitio drupal1 se debe proceder a configurar el sitio drupal2 y recargar la configuración de apache.

< sudo a2ensite drupal2.dominio.com
< sudo /etc/init.d/apache2 reload

Para continuar con la instalación se debe entrar con el navegador (firefox) a la url 'http://drupal2.dominio.com' los pasos a seguir son los mismo que con el sitio drupal1, salvo el parámetro que de prefijo de las tablas en la base de datos, que en esta caso es 'drupal2' (en lugar de 'drupal1').

Definición del prefijo de base de datos para el sitio drupal2.dominio.com

Vista de ventanas superpuestas de los sitios configurados.

Distribuir contenido 
 
Distribuir contenido