модули на поддоменах drupal - PullRequest
1 голос
/ 28 июля 2010

Мой сайт на drupal становится очень тяжелым и медленным по мере загрузки новых модулей. Некоторые из этих модулей не нужны, кроме раздела магазина на сайте.

Я думаю создать субдомен store и каким-то образом загрузить эти модули только в этот субдомен.

  • Значит ли это, что мне нужно установить drupal дважды, один раз на store.mydrupalsite.com и один раз на mydrupalsite.com?
  • В поддомене магазина, придется ли мне переустанавливать базовые модули в дополнение к специализированным модулям магазина, или есть ли способ заставить поддомен магазина как-то наследовать модули от основного сайта? 1011 *
  • Что делать, если пользователь уже вошел на основной сайт. Нужно ли будет повторно входить в поддомен store, или есть ли возможность совместно использовать базу данных?
  • Есть ли реальная польза от этой идеи, или я слишком усложняю вещи?
  • Если я слишком усложняю вещи, что я должен делать вместо этого

Ответы [ 2 ]

5 голосов
/ 28 июля 2010

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

Единственное, чего у вас не будетдля этого нужно переустановить Drupal или заново загрузить все модули: Drupal поддерживает то, что называется многосайтовая конфигурация , что позволяет вам иметь несколько сайтов, работающих под одной и той же установкой Drupal.Если вы убедитесь, что модули, которыми вы хотите поделиться для обоих сайтов, находятся в папке sites / all, все, что вам нужно сделать, - это создать новую папку для каждого сайта в папке сайтов с нужным доменом.

Например, если у вас есть mydrupalsite.com и store.mydrupalsite.com, вы должны создать две папки в папке сайтов с именами mydrupalsite.com и store.mydrupalsite.com.В этих папках у вас будет файл settings.php и папка с файлами, которые содержат все файлы для этого конкретного сайта.

Подробнее о многофункциональной функции Drupal вы можете узнать на Drupal.org.

Все это говорит о том, что вы описываете, вероятно, не лучший способ: синхронизировать два сайта вместе с разрозненными пользователями и хранилищами данных - настоящая боль в обслуживании.И если модуль не вызывает hook_init () или другие глобальные хуки, он загружается по требованию, когда страница фактически использует один из реализуемых хуков.

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

Но Дроссель заходит так далеко.Вероятно, вы должны начать изучать механизмы кэширования, такие как Boost , Memcached , Varnish или даже Pressflow , если вы хотите получитьнаибольшая производительность из вашей установки Drupal.

4 голосов
/ 28 июля 2010

Если вы посмотрите в файле settings.php, у него есть очень хорошее объяснение того, что называется мультисайт .

Из settings.php:

 * The configuration file to be loaded is based upon the rules below.
 *
 * The configuration directory will be discovered by stripping the
 * website's hostname from left to right and pathname from right to
 * left. The first configuration file found will be used and any
 * others will be ignored. If no other configuration file is found
 * then the default configuration file at 'sites/default' will be used.
 *
 * For example, for a fictitious site installed at
 * http://www.drupal.org/mysite/test/, the 'settings.php'
 * is searched in the following directories:
 *
 *  1. sites/www.drupal.org.mysite.test
 *  2. sites/drupal.org.mysite.test
 *  3. sites/org.mysite.test
 *
 *  4. sites/www.drupal.org.mysite
 *  5. sites/drupal.org.mysite
 *  6. sites/org.mysite
 *
 *  7. sites/www.drupal.org
 *  8. sites/drupal.org
 *  9. sites/org
 *
 * 10. sites/default
 *
 * If you are installing on a non-standard port number, prefix the
 * hostname with that number. For example,
 * http://www.drupal.org:8080/mysite/test/ could be loaded from

Итак.Вы должны создать каталог store.example.com и разместить файл settings.php только для этого домена.Внутри этого каталога создайте каталог modules и поместите туда все модули, которые должны появляться только для этого домена.

...