Я работаю в среде Drupal Multisite на сервере ламп (debian, apache, php, mysql).
Мой текущий рабочий процесс для нового проекта:
- Активировать поддомен на сайте моей компании (скажем, проект будет foo.com, я активирую foo.example.com)
- Бекоза из plesk (это немного друпал недружелюбно). Мой шаг:
- Создать новый поддомен в plesk, php работает в режиме fastcgi
- Создать базу данных
- Удалите папку httpdocs, создайте ее заново и создайте папку sites
- Создайте символическую ссылку на каждый файл в папке
/var/www/vhosts/drupal
(база кода drupal), за исключением сайтов и папок tmp, файлов robots.txt и .htacces (которые обычно настраиваются для каждого домена)
- Создайте папку
foo.example.com
внутри sites
, символическую ссылку на папку /var/www/vhosts/drupal/sites/all
, а затем верните символическую ссылку от sites/foo.com
до /var/www/vhosts/drupal/sites/foo.example.com
(чтобы сделать drush см. все домены для некоторых многосайтовых задач, например crontab)
- Установка, настройка drupal в поддомене, выполнение всего необходимого для завершения проекта
На этом этапе мне нужно переключить проект с субдомена на конечный домен foo.com, который также будет находиться на моем сервере.
Мне не нравятся некоторые другие хаки, такие как перенаправление доменов, я хочу, чтобы окончательный проект был «чистым» (что означает clean в многосайтовой среде).
На самом деле я делаю эти шаги:
- Создание домена (через plesk) и базы данных;
- Скопируйте субдомен httpdocs в полный домен httpdocs (
cp -a /var/www/vhosts/example.com/subdomains/foo/httpdocs /var/www/vhosts/foo.com/httpdocs
)
- Изменить владельца и группу httpdocs в соответствии с владельцем домена и группой
- Войдите в drupal, измените информацию о веб-сайте и пути к файловой системе.
Это позволяет мне делать то, что я хочу, но у меня есть некоторые проблемы с содержимым html узла; особенно для тех, которые содержат ссылки, изображения и файлы, которые (даже если IMCE сконфигурирован для использования относительного пути) будут указывать на /sites/foo.example.com/files/[...]
вместо /sites/foo.com/files/[...]
.. это также происходит для файловых полей cck.
Как я уже сказал, мне нужно чистое решение, я знаю, что смогу создать символическую ссылку от /sites/foo.example.com
до /sites/foo.com
, но мне действительно не нравится этот способ.
Пока что я пытался найти / заменить все вхождения в базу данных sql dump:
sed 's/foo.example.com/foo.com/g' dump.sql > foo.com.sql
Но это, кажется, что-то тормозит; Я получаю много ошибок в файле boostrap (на этапе десериализации кэша, даже если я очистил весь кэш до и после экспорта / импорта БД) и похоже, что какая-то кодировка utf-8 нарушена.
Я знаю, что лучше всего будет установить область разработки на локальном сервере, но мне нужно, чтобы мой клиент достиг ее извне ... и наша ситуация с ADSL (статический IP и т. Д.) Немного запутана.
Есть идеи?
p.s: извините за мой плохой английский, если мой вопрос недостаточно ясен, дайте мне знать, и я предоставлю более подробную информацию)