Ищу полезные советы: мультисайт в Drupal - PullRequest
0 голосов
/ 17 января 2010

Я использую мультисайт для размещения своих клиентских сайтов.

На этапе разработки я использую поддомен для размещения промежуточного сайта, например client1.mydomain.com.
А вот как это выглядит подПапка SITES:

/sites/client1.mydomain.com

Когда сайт завершен и готов к работе, я создал еще одну папку для фактического домена, например client1.com.Следовательно:

/sites/client1.com

Далее я создал символические ссылки под client1.com для файлов и SETTINGS.PHP, которые указывают на поддомен
, т.е.

/sites/client1.com/settings.php --> /sites/client1.mydomain.com/settings.php

/sites/client1.com/files --> /sites/client1.mydomain.com/files

Наконец, чтобы Google не могИндексируя как субдомен, так и реальный домен, я создал в .htaccess правило перезаписи client1.mydomain.com на client1.com, поэтому, если кто-то попытается получить доступ к субдомену, он будет перенаправлен на реальный домен.

Эта схема работает отлично.Но я так или иначе чувствую, что есть лучший способ достигнуть вышеупомянутого в намного упрощенном виде.Пожалуйста, не стесняйтесь делиться своими мнениями, и все советы очень ценятся.

Ответы [ 3 ]

0 голосов
/ 20 января 2010

Если вы просто обмениваетесь файлами ядра и модуля между сайтами, вы можете использовать другой макет символической ссылки.

В моей настройке у меня есть все общие файлы в общем каталоге, недоступном для Интернета:

/var/www/drupal
/var/www/drupal/sites/all/modules

затем для каждого развертывания общие файлы и папки имеют ссылки на эти файлы.

/var/www/client1/public_html/index.php -> /var/www/drupal/index.php
/var/www/client1/public_html/includes  -> /var/www/drupal/includes
...
/var/www/client1/public_html/sites/all -> /var/www/drupal/sites/all

Затем вы можете поместить файл settings.php сайта и любые модули или темы только для этого сайта в каталог сайтов по умолчанию

/var/www/client1/public_html/sites/default 

Этот макет также предоставляет вам возможность переопределять любые распространенные файлы по мере необходимости, например .htaccess.

Чтобы перейти от промежуточного к производственному, вам просто нужно изменить конфигурацию виртуального хоста с промежуточного на производственное доменное имя.

0 голосов
/ 20 января 2010

Если вам не нравится куча символических ссылок, другой вариант - использовать патч Aliased Multi-Site Support: http://drupal.org/node/231298#comment-1420180

Это позволит вам указать в конфигурации, что любые запросы для client1.domain.com должны фактически использовать /sites/client1.com/ вместо /sites/client1.domain.com/.

Затем, когда вы перейдете к производству, вы можете просто удалить настройку конфигурации (хотя это не повредит ничему, если вы этого не сделаете).

Эта функция является частью Drupal 7, но как новая функция не будет добавлена ​​в Drupal 6. Еще одна хорошая новость заключается в том, что вам даже не нужно использовать ее в D7 только для путей к файлам, поскольку вместо хранения полный путь к файлам в базе данных, они используют схему, такую ​​как public:// или private://, которую Drupal затем отображает на правильный путь файловой системы, что позволяет использовать несколько типов / мест хранения с гораздо лучшей переносимостью.

0 голосов
/ 17 января 2010

Поскольку кажется, что вы хотите повторно использовать каталог files / и settings.php из своего домена разработки, я бы предложил использовать каталог default / + символические ссылки для достижения ваших целей.

т.е. во время разработки

sites/default/settings.php
sites/default/files/
sites/client1.domain.com -> sites/default (symbolic link)

как только вы будете готовы переключиться на их домен:

sites/client1.com -> sites/default

Затем вы можете удалить client1.domain.com со своего виртуального хоста (или продолжить перезапись и т. Д.).

Это будет выполняться так же, как ваш метод, но вы получите дополнительную «защиту» всех запросов, идущих по умолчанию, на случай, если позднее вы добавите дополнительный домен в качестве псевдонима (например).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...