Añadir nuevo comentario

Varias webs en un drupal

Logo de Drupal CMS

Cada día tengo más portales web que gestionar. Y según pasa el tiempo me he encontrado un gran problema cuando hay que actualizar el drupal, módulos o themes. El problema está en que lo tengo que hacer para cada portal. Por esto me he dispuesto a aprender la posibilidad de tener varios portales a partir de un solo drupal.

En la carpeta raíz del drupal, podemos encontrar una carpeta de nombre sites. Dentro de el pondremos una carpeta para cada portal. Hay dos carpetas especiales: "default" que es donde irá a parar salvo que exista un sitio definido para ese subdominio, y "all" que es la configuración que afecta a todos los sitios definidos. El nombre de estas carpetas serán el dominio del sitio. Por ejemplo: para http://blog.intropedro.es tendríamos que tener la carpeta system.

El proceso es el siguiente:

  • Creamos una carpeta con el nombre del dominio en la carpeta sites. Por ejemplo: sites/prueba.intropedro.com)
  • Copiamos un archivo settings.php en la carpeta sites/prueba.intropedro.com/settings.php
  • Editamos el fichero settings.php y cambiamos la línea siguiente:
 # $base_url = 'http://www.example.com';  // NO trailing slash!

por esta otra:

 $base_url = 'http://prueba.intropedro.com';
  • Creamos las carpetas files, modules y themes en la carpeta sites/prueba.intropedro.com.
  • Accedemos a la url http://prueba.intropedro.com y nos aparecerá el formulario de instalación, ponemos los datos y los guardamos.
  • Accedemos otra vez a la url http://prueba.intropedro.com, creamos una cuenta para que sea la cuenta de administrador y vamos a administraciónFile system y en File system path ponemos sites/prueba.intropedro.com/files

Ya tenemos nuestro sitio construido, tendremos que hacer estos pasos cada vez que queramos crear una web.

Los módulos y themes que se encuentren en la carpeta modules de un sitio, solo los verá ese sitio, y los que estén en la carpeta sites/all o las del raíz, los verán todos los sitios. Esto solo es la punta del iceberg, ya que puedes hacer que varios sitios compartan información, por ejemplo podrían compartir los usuarios (imaginaros que vuestra introcuenta sirviera para entrar en todos portales que hiciera yo). Aunque para compartir información tendrían que compartir base de datos. Esto lo miraré otro día.

temas: