Instalación multisites en drupal 6, pero mucho puede valer para drupal 7
**************INSTALACIÓN MULTISIOS DRUPAL**********************
1) Primer paso
1a) obtener el codigo drupal
wget http://ftp.drupal.org/files/projects/drupal-6.12.tar.gz
1b) descomprimir
Descomprimir el codigo fuente de drupal
tar -xzvf drupal-6.12.tar.gz
de ahi optenemos el codigo drupal.-
drupal-6.12 (directorio con el codigo drupal)
1c) crear directorio para drupal donde se crearan posteriormente los sitios
mkdir /var/www/drupal6
1d) Copiar el codigo fuente de drupal en el directorio creado
cp -a drupal-6.12/* /var/www/drupal6
(se puede copiar o directamente mover todo el directorio mv drupal-6.12 /var/www/drupal6)
Ahora tenemos todo el codigo fuente de drupal en el directorio que usaremos para crear los futuros sitios.-
2) Crear el Vhost para el primer sitio en drupal modo multisite
Para este ejemplo el primer sitio es sitio1.com
Crear el arhivo sitio.conf en
/etc/apache2/sites-avalaible/sitio1.conf
<VirtualHost *:80>
ServerName www.sitio1.com
ServerAlias sitio1.com
DocumentRoot /var/www/drupal6
LogLevel warn
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
ServerSignature On
DirectoryIndex index.php index.html index.php home.shtml index.cgi
<Directory "/var/www/drupal6">
Options +Indexes
allow from all
AllowOverride All
</Directory>
</VirtualHost>
Para que apache reconozca este nuevo host virtual
a2ensite sitio1.conf (agrega el link a sites-enable)
apache2ctl restart
Editar el fichero de configuración de hosts
gedit /etc/hosts
y añadir la línea correspondiente al nuevo hosts
127.0.1.1 www.sitio1.com3) Crear base de datos , usuario y clave para dicha base , para el primer sitio.
base de datos: bd_sitio1
usuario: user_sitio1
password: pwd_sitio1
Lo podemos crear con phpmyadmin, asegurándonos de darle al nuevo usuario todos los privilegios.
Hasta aqui se hizo todo igual que drupal para simplesite . Hay muchos tutoriales para esto
La unica diferencia es que no se creo el archivo settings.php en sites/default.
4) Crear el directorio de configuracion para el sitio sitio1.com en
mkdir /var/www/drupal6/sites/sitio1.com
cp /var/www/drupal6/sites/default/default.settings.php /var/www/drupal6/sites/sitio1.com/settings.php
Crear los directorios donde se guardarán los archivos, módulos y temas que sólo utilizará esta página
mkdir /var/www/drupal6/sites/sitio1.com/modules
mkdir /var/www/drupal6/sites/sitio1.com/themes
mkdir /var/www/drupal6/sites/sitio1.com/files
Editar el archivo de configuración del sitio1
gedit /var/www/drupal6/sites/sitio1.com/settings.php
Cambiando la línea = 'mysql://username:password@localhost/databasename';
por = 'mysql://user_sitio1:pwd_sitio1@localhost/db_sitio1';
Crear los directorios /modules y /themes en la carpeta /sites/all, ya que ahí es donde guardaremos todos los modulos y temas comunes a todas las páginas
mkdir /var/www/drupal6/sites/all/modules
mkdir /var/www/drupal6/sites/all/themes
Cambiar permisos a ciertos archivos y directorios, por seguridad
chown -R root:root /var/www/drupal6
chown -R www-data /var/www/drupal6/sites/sitio1.com/files
chown www-data /var/www/drupal6/sites/sitio1.com/settings.php
donde www-data es el usuario de apache2
La estructura de directorio quedara algo asi como :
/var/www/drupal6/
/var/www/drupal6/modules/
/var/www/drupal6/sites/
/var/www/drupal6/themes/
/var/www/drupal6/scritps/
/var/www/drupal6/y demas archivos fuentes de drupal ver punto 1 c )
/var/www/drupal6/sites/
/var/www/drupal6/sites/all/modules/ (módulos contrib. comunes los sitios)
/var/www/drupal6/sites/all/themes/ (temas comunes los sitios)
/var/www/drupal6/sites/default/default.settings.php (no se toca nada en este directorio )
/var/www/drupal6/sites/sitio1.com/settings.php
******Ahora vamos a ha habilitar las Clean Url's para Drupal
Habilitamos primero el modulo rewrite de Apache2
sudo a2enmod rewrite
Ahora editamos el fichero de configuración de apache2 en el directorio /etc/apache2/sites-available/
gedit /etc/apache2/sites-available/default
cambiando la línea posterior a <Directory /var/www>),
AllowOverride None a AllowOverride All5) Ahora proceder a crear el primer sitio de drupal en modo multisite.
http://sitio1.com/install.php
El scritps de instalacion sólo cambiara el archivo de configuracion sites/sitio1.com/settings.php
Tener en cuenta que el primer usuario que crea Drupal para su nueva página tiene permisos especiales de administración y no confundir con el usuario y password de la base de datos, que es un usuario de mysql.
Una vez terminado el proceso de instalacion iniciado con http://sitio1.com/install.php tendras tu primer sitio en drupal modo multisite funcionando.
Luego para crear cualquier sitio repite los pasos 2, 3, 4 y 5 .
En forma analoga claro ,
El vhost de sitio2.com solo cambiara el nombre del ServerName que para el segundo sitio seria sitio2.com (nombre del dominio de ese sitio)
El DocumentRoot sera igual que de sitio1.com Todos los sitios que usen este codigo tendran como DocumentRoot a /var/www/drupal6 .-
6) Cuando el nuevo sitio es con un subdominio el los pasos son iguales salvo
que al crear el directorio de configuracion en drupal debes crearlo con el nombre del subdominio
Para este ejemplo usamos subdominio1.sitio1.com
El directorio de configuración será sites/subdominio1.sitio1.com
Ahi copias default.settings.php con el nombre de settings.php
Creas el vhost para subdominio1.sitio1.com , base de datos , y lanzas el proceso de instalacion
http://subdominio1.sito1.com/install.php
7) Cuando el dominio es un subfolder ejemplo sitio1.com/folder1
Tienes unos pasos mas. Debes tener cuidado al crear el directorio de configuración
7a) en sites debes crear sites/sitio1.com.folder1 (es importante observar esto no va barra sino punto en el nombre del directorio de configuracion) ,
7b) ahi copias default.settings.php con el nombre de settings.php
7c) el punto 2 no se aplica aqui, no tienes que hacer nada con vhost ya sabe el servidor que cuando alguien solicite http://sitio1.com/ su DocumentRoot es /var/www/drupal6.
7d) Si tienes que crear la base de datos para este nuevo sitio. ver punto 3
7e) Tienes que crear un link entre el nombre folder1 (nombre de subfolder que usaras) y /var/www/drupal6
cd /var/www/drupal6
ln -s ../drupal6 folder1 ( folder1 es el nombre de la subfolder que usaras )
ls /var/www/drupal6/
ahora te aparecra un nuevo symlink
folder1 --> ../drupal6