Для работы многосайтовости на разных доменах нам потребуется произвести настройку программного продукта. Настройку веб-сервера Apache, как и в случае с многосайтовостью на одном домене, должна произвести хостинговая компания.
Будем использовать для примера конфигурацию из двух сайтов:
- www.site1.com — корпоративный сайт компании
- www.site2.com — интернет-магазин компании
Настройка многосайтовости на разных доменах
Каждый сайт надо разместить в соответствующем каталоге, например:
/home/www/site1/
/home/www/site2/
Установка продукта и настройка символьных ссылок
Продукт устанавливается в один из сайтов. Чтобы ядро могло работать для обоих сайтов, необходимо создать символьные ссылки для сайта, в котором нет установленного ядра. Ссылки потребуются для папок /bitrix
и /upload
.
Практически символьные ссылки используются для более удобной организации структуры файлов на компьютере, так как позволяют одному файлу или каталогу иметь несколько имён и свободны от некоторых ограничений, присущих жёстким ссылкам (последние действуют только в пределах одного раздела и не могут ссылаться на каталоги).
Ссылки можно создать двумя способами. Первый — классический, который рекомендовался компанией с самого начала. Второй — более поздний, считается более «красивым и изящным». В нем отсутствует шаг создания отдельной папки и переноса в нее ядра системы.
Первый вариант (зеленым цветом приведены примеры для установки на UNIX системы):
- установите программный продукт «1С-Битрикс: Управление сайтом» сначала в каталог первого сайта
/home/www/site1/
- создайте каталог
/home/www/shared/
, в котором будут располагаться общие для всех сайтов файлы:
mkdir /home/www/shared - перенесите весь каталог
/home/www/site1/bitrix/
в/home/www/shared/bitrix/
:
mv /home/www/site1/bitrix /home/www/shared/bitrix - перенесите весь каталог
/home/www/site1/upload/
в/home/www/shared/upload/
:
mv /home/www/site1/upload /home/www/shared/upload - создайте символическую связь для каталога
/bitrix/
в каждом из сайтов:- ln -s /home/www/shared/bitrix /home/www/site1/
- ln -s /home/www/shared/upload /home/www/site1/
- ln -s /home/www/shared/bitrix /home/www/site2/
- ln -s /home/www/shared/upload /home/www/site2/
- убедитесь, что веб-сервер (Apache, IIS) имеет право на запись в каталог
/home/www/shared/
(это необходимо будет для работы системы обновлений и загрузки графических файлов) - разместите публичную часть второго сайта в каталог
/home/www/site2/
При настройке многосайтовой конфигурации на UNIX, можно воспользоваться программным методом создания символьных ссылок:
<? symlink("/virt/homes/forinsured/bitrix", "/virt/homes/forinsured/htdocs/bitrix"); symlink("/virt/homes/forinsured/upload", "/virt/homes/forinsured/htdocs/upload"); ?>
Пример:
/var/www/s1
— первый сайт
/var/www/s2
— второй сайт
/var/www/shared
— папка с ядром системы
Заходим в /var/www/s1
и создаём ссылки:
ln -s ../shared/bitrix bitrix
ln -s ../shared/upload upload
Переходим в /var/www/s2
и выполняем те же команды.
Второй вариант. В нем символьные ссылки создаются непосредственно в папке второго сайта.
- Установите программный продукт «1С-Битрикс: Управление сайтом» сначала в каталог первого сайта
/home/www/site1/
- Создайте в корневой папке второго сайта (
/home/www/site2/
) скрипт, например, под именем symlink.php:
<html> <head><title>Создание ссылок на папки bitrix и upload</title></head> <body> <? error_reporting(E_ALL & ~E_NOTICE); @ini_set("display_errors",1); if ($_POST['path']) $path = rtrim($_POST['path'],"/\\"); else $path = '../site2/www'; if ($_POST['create']) { if (preg_match("#^/#",$path)) $full_path = $path; else $full_path = realpath($_SERVER['DOCUMENT_ROOT'].'/'.$path); if (file_exists($_SERVER['DOCUMENT_ROOT']."/bitrix")) $strError = "В текущей папке уже существует папка bitrix"; elseif (is_dir($full_path)) { if (is_dir($full_path."/bitrix")) { if (symlink($path."/bitrix",$_SERVER['DOCUMENT_ROOT']."/bitrix")) { if(symlink($path."/upload",$_SERVER['DOCUMENT_ROOT']."/upload")) echo "<font color=green>Символические ссылки удачно созданы</font>"; else $strError = 'Не удалось создать ссылку на папку upload, обратитесь к администратору сервера'; } else $strError = 'Не удалось создать ссылку на папку bitrix, обратитесь к администратору сервера'; } else $strError = 'Указанный путь не содержит папку bitrix'; } else $strError = 'Неверно указан путь или ошибка прав доступа'; if ($strError) echo '<font color=red>'.$strError.'</font><br>Исходный путь: '.$full_path; } ?> <form method=post> Путь к папке, содержащей папки bitrix и upload: <input name=path value="<?=htmlspecialchars($path)?>"><br> <input type=submit value='Создать' name=create> </form> </body> </html>
- Запустите скрипт и укажите путь к корневой папке первого сайта, в нашем случае
/home/www/site1/
. - После того как символьные ссылки созданы наберите в адресной строке браузера
site1/bitrix/admin
. Откроется панель авторизации. - Вводите данные администратора, которые указывали при установке продукта на первый сайт и попадете в административную панель «1С-Битрикс: Управление сайтом».
После завершения работы скрипта наличие символических ссылок на папки /bitrix
и /upload
в папке второго сайта можно проверить по появлению одноименных папок.
На этапе создания могут возникнуть проблемы:
- отсутствия прав на запись в текущую папку;
- ограничение безопасности (open_basedir), которое не позволяет пользователям разделяемого хостинга обращаться к другим сайтам.
В случае возникновения проблем с этим скриптом следует обратиться за помощью к хостеру.
Конфигурирование сайтов
Настройка сайтов выполняется в административном разделе системы на странице Настройки > Настройки продукта > Сайты > Список сайтов.
В строке первого сайта (www.site1.com), в колонке действий выбираем команду Изменить и указываем в них:
- Название: site1
- Доменное имя: www.site1.com
- Папка сайта: /
- Название сайта: Корпоративный сайт компании «Название компании«
- URL сервера: www.site1.com
- Путь к корневой папке веб-сервера для этого сайта: /home/www/site1/
Если DNS настроен таким образом что ваш сайт отвечает на адрес http://site1.com, то в поле Доменное имя желательно указывать без www. Можно перечислить в этом поле с новой строки любое число доменных имен, по которым вы хотите, чтобы отвечал сайт (или уже отвечает).
Важно иметь в виду, что значения, указанные в поле Доменное имя, используются продуктом для распространения в указанные домены информации о посетителях по технологии переноса посетителей. Поэтому крайне желательно указывать полный список доменов, по которым может ответить сайт.
Очень важно не указывать в списке доменов сайты, которые не работают на данном экземпляре продукта. Указанный неправильно или несуществующий домен может не только замедлить работу пользователей, но и фактически не позволит перенести данные в сайты, работающие не на общем экземпляре продукта.
Аналогично настроим параметры второго сайта (www.site2.com/):
- Название: site2
- Доменное имя: site2.com
- Папка сайта: /
- Название сайта: Интернет-магазин компании «Название компании«
- URL сервера: www.site2.com
- Путь к корневой папке веб-сервера для этого сайта: /home/www/site2/
Обратите внимание, что для двух сайтов в параметре Папка сайта указано одинаковое значение: «/«. Это связано с тем, что сайты обслуживаются разными «виртуальными серверами» (в терминологии Apache) у которых для размещения файлов использован разный каталог.
Также необходимо обратить на параметр Путь к корневой папке веб-сервера для этого сайта. Для разных сайтов у него свое значение, взятое из параметраDocumentRoot настроек соответствующего «виртуального сервера» (см. ниже пример части файла httpd.conf настроек Apache).
/.htaccess
и /404.php
.
Файл .access.php
Создайте файл .access.php c таким содержанием в корне второго сайта:
<? $PERM["/"]["*"]="R"; ?>
Конфигурация готова к работе.
Вход в систему
- Наберите в адресной строке браузера http://site1/bitrix/admin (или http://site2/bitrix/admin). Откроется панель авторизации.
- Вводите данные администратора, которые указывали при установке продукта на первый сайт и попадете в административную панель «1С-Битрикс: Управление сайтом«.
Поскольку ядро одно и база одна — административная панель для обоих сайтов будет одинаковая.
Технически система допускает создание произвольного числа сайтов работающих по этой схеме. В каждом из вновь создаваемых сайтов необходимо настроить веб-сервер и создать символическую ссылку. Юридически для создания каждого нового сайта (кроме первых двух) необходимо приобрести дополнительный купон.