Pregunta:
Pongo mis módulos en sitios / todos / módulos. ¿Hay alguna forma de configurar Drupal para encontrar más módulos en otras ubicaciones también?
Editado
Utilizo hosts virtuales a menudo, pero no de la forma que describiste. El formato con el que estoy familiarizado se ve así y me ayuda a poner todo el proyecto de trabajo en otro lugar que no sea www.
<VirtualHost *:80>
ServerName testdrupal.com
DocumentRoot "C:/proj/testdrupal"
ServerAlias testdrupal.com
<Directory "C:/proj/testdrupal/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Creo que lo que estás describiendo es algo diferente, ¿verdad? Estoy tratando de dejar la carpeta drupal dentro de www como de costumbre, pero muevo solo los sitios / todos / módulos a otra ubicación, pero todavía no puedo entender cómo se verá la entrada de VHost en este caso. Digamos que quiero moverlo a C: / proj / testdrupal. Espero no haberte malinterpretado por completo.
Respuesta:
Antes de responder, es útil tener un poco de información sobre cómo Drupal encuentra módulos. Drupal usa una lista de sugerencias de la raíz de Drupal para averiguar dónde encontrar módulos. En orden de prioridad:
-
sites/$SITENAME/modules
-
sites/all/modules
-
profiles/$INSTALLPROFILE/modules
-
modules
Si Drupal no encuentra un módulo en (1) , verifica (2) . Si no está allí, marca (3) y así sucesivamente.
Para (1) , si solo está utilizando una instalación básica de Drupal en un solo sitio, $SITENAME
es el default
. De lo contrario:
- En Drupal 6,
$SITENAME
es el nombre de host del sitio. Si su sitio se encuentra enexample.com
,$SITENAME
seríaexample.com
. - En Drupal 7,
$SITENAME
se define ensites/sites.php
. Si observaexample.sites.php
, puede ver cómo definirlo. También es importante tener en cuenta que cualquier módulo enumerado allí solo se podrá utilizar para esos sitios específicos, no para todos los sitios.
En (2) , cualquier módulo que se encuentre allí se podrá utilizar en cualquier sitio de la instalación de Drupal. También se dejará intacto cuando actualice la instalación principal. Este es, por supuesto, el lugar recomendado para colocar los módulos y probablemente toda la documentación que haya leído le haya dicho que coloque sus módulos aquí.
(3) se utiliza para perfiles de instalación que requieren un módulo específico. Los perfiles de instalación son esencialmente una forma de definir un estado inicial personalizado para un sitio Drupal. Por ejemplo, Drupal viene con dos perfiles de instalación integrados: Estándar, que incluye las funciones más utilizadas, y Mínimo, que solo incluye lo mínimo necesario para que funcione un sitio Drupal.
(4) es utilizado por el núcleo de Drupal. Si bien técnicamente puede agregar módulos aquí y estarán disponibles para todos los sitios, no debería hacerlo. Seriamente. La carpeta de modules
se toca cuando se actualiza el núcleo de Drupal, y causará problemas en el futuro si está pegando los módulos que necesita para que su sitio funcione allí.
Ahora que el fondo está fuera del camino, puede usar trucos del sistema de archivos para que sus módulos se alojen fuera de donde se ve Drupal.
Por ejemplo, puede configurar un enlace simbólico desde sites/all/modules
a otro directorio fuera de la instalación de Drupal:
- En sistemas basados en Unix / Linux / BSD:
ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
- En Windows Vista / Server 2008/7 y superior:
mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder
Hasta donde yo sé, no hay mucho que pueda hacer en versiones anteriores de Windows que no tengan mklink .