Здравствуйте.
У меня небольшая просьба:
Выложите пожалуйста пошаговую инструкцию для полных чайников как настроить мультисайтинг в Друпале.
Задача такая:
Надо создать 3 сайта, на одном движке(общие модули) и разными базами данных.
- site1
- site2
- site3
1) Я установил и настроил связку Apache/PHP/MySQL
2) Скачал и распаковал Drupal (C:\Server\Web\Drupal)
3) Создал 3 базы данных: Site1_DB, Site2_DB, Site3_DB
4) Создал папки: site1, site2, site3 в C:\Server\Web\Drupal\
5) В каждой из этих папок под сайты, содал папки: files, modules, themes, tmp
6) Скопировал файл Settings.php в корень каждой папки под сайт, изменив при этом строку для подключения к БД
Всё, на этом я застрял. Не знаю что делать дальше.
Информация везде разная, кто говорит про виртуальные хосты, другие про линки на юниксе.
Пожалуйста помогите дополнить этапы, начиная с 7-го.
Заранее спасибо.
Комментарии
тут уже есть полная инструкция, просто поиск не работает :((( Поищите через гугл, или через яндекс фразу Мультисайтинг на друпал
Насколько я могу судить, вы ошибаетесь в шаге 4. site1, 2 и тп. нужно создавать в папке site общей установки.
И плюс, у меня была сипанель, на ней все эти линки с хостами не создаются (или создаются, но сложно, я так и не разобралась). Обратилась к хостеру, но мне подсказал интересный путь - через сипанель создать подддомен, но направить его не на отдельную папку, а на общую html_files. После этого у меня все заработало!
Все сделано правильно
Остается сделать последний шаг - правка файла setting.php:
1. Выбираем базовую установку - например Site1_DB, и ничего здесь не меняем
2. В остальных файлах setting.php делаем примерно следующую правку
$db_prefix = '';
заменяем на
$db_prefix = array(
'default' => 'Site2_DB.', //подчиненный сайт
'users' => 'Site1_DB.', //дальше ссылки на базовый сайт
'sessions' => 'Site1_DB.',
'authmap' => 'Site1_DB.',
'sequences' => 'Site1_DB.',
'profile_fields' => 'Site1_DB.',
'profile_values' => 'Site1_DB.',
// 'role' => 'Site1_DB.',
// 'users_roles' => 'Site1_DB.'
);
Проще говоря, мы указали drupal, что надо брать определенные таблицы из другой базы данных. И все
Кроме того надо подправить строчку
в зависимости от url основного сайта.
Это необходимо, что бы пользователи одного сайта могли без перерегистрации заходить на другие.
В принципе, в системе префиксов заложен очень мощный механизм подключения других баз данных mysql, которым можно пользоваться не только для мультисайтинга.
Спасибо.
Geldora: Действительно ошибка в пункте 4.
Это я при написании сообщения не заметил;
Сайты должны лежать в пaпке /sites
C:\Server\Web\Drupal\sites
SiR:
Общие пользователи для нескольких сайтов, это тоже очень удобно.
Нужно будет изменить настройки, следуя вашему совету.
Теперь вот такое дело.
Я создаю сайты, для начала в локалке, чтобы протестировать можно было перед тем как выложить на хостинг.
Пользуюсь Windows.
Нашел следующую информацию:
**************************************************************
1)
Настроить файл: C:\WINDOWS\system32\drivers\etc\hosts
127.0.0.1 site1.com
127.0.0.1 site2.com
127.0.0.1 test.site2.com
С учетом того что у меня имеются сайты: site1.com, site2.com, test.site2.com
2)
Убрать комментарий со строки:
Include conf/extra/httpd-vhosts.conf
в файле C:\Server\Apache\conf\httpd.conf
4)
Добавить строки:
DocumentRoot "C:\Server\Web\Drupal"
ServerName site1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\Server\Web\Drupal"
ServerName site2.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\Server\Web\Drupal"
ServerName test.site2.com
</VirtualHost>
в файл C:\Server\Apache\conf\extra\httpd-vhosts.conf
5) Запустить установку сайтов:
http://site1.com/install.php
**************************************************************
После всего этого, у меня установились сайты.
Но возникла проблема с доступом к содержимому сайтов, к папкам которые лежат в папке самого сайта.
Например вот этот запрос:
http://site1.com/files/
Выдает ошибку 500(Internal Server Error)
Что делать?
Еще раз спасибо.
Есть подозрения, что дело в файле .htacess, в корневой папке Drupal: C:\Server\Web\Drupal
Я закоментировал следующую строку: # RewriteBase /drupal
Ошибка 500 исчезла. Я поставил в папку C:\Server\Web\Drupal\sites\site1.com\files файл test.txt
При наборе url: http://site1.com/files/test.txt, выдает: Page not found
Ничего не понимаю...