Записки
03.04.2020
http://www.example.ru/
http://www.example.com/
Настройка многосайтовости на разных доменах
В случае возникновения проблем с этим скриптом следует обратиться за помощью к хостеру.
Многосайтовость на разных доменах Битрикс
Использование многосайтовости на разных доменах так же позволяет исключить из URL-ов на сайте лишние подкаталоги /s1/ или /s2/ и начинать формирование URL адресов прямо от каталога "/". То есть адреса сайтов будут иметь вид:http://www.example.ru/
http://www.example.com/
Дистрибутив программного продукта поставляется сконфигурированным для многосайтовости на одном домене. Для использования многосайтовости на разных доменах необходима дополнительная настройка.
Многосайтовость на разных доменах – это название технологии создания сайтов, при которой ядро продукта устанавливается в папку одного из сайтов, а для остальных сайтов настраиваются символьные ссылки (симлинки). Эту технологию можно реализовать и на разных доменах (как в примере выше), и на поддоменах. |
Настройка многосайтовости на разных доменах
Каждый сайт надо разместить в соответствующем каталоге, например:
- /home/www/site1/
- /home/www/site2/
Установка продукта и настройка символьных ссылок
Продукт устанавливается в один из сайтов. Чтобы ядро могло работать для обоих сайтов, необходимо создать символьные ссылки для сайта, в котором нет установленного ядра. Ссылки потребуются для папок /bitrix, /local и /upload. Эти папки являются общими для обоих сайтов, такова особенность архитектуры.
Символьная ссылка: (также симлинк от англ. Symbolic link, символическая ссылка) - cпециальный файл, для которого в файловой системе не хранится никакой информации, кроме одной текстовой строки. Эта строка трактуется как путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке. Практически символьные ссылки используются для более удобной организации структуры файлов на компьютере, так как позволяют одному файлу или каталогу иметь несколько имён и свободны от некоторых ограничений, присущих жёстким ссылкам (последние действуют только в пределах одного раздела и не могут ссылаться на каталоги). |
Предварительная настройка в административной панели
Первый сайт мы установили, или он у нас уже заранее установлен и работает. Теперь заходим в административную панель первого сайта: Настройки > Настройки продукта > Сайты > Список сайтов.
В строке первого сайта (www.site1.com), в колонке действий выбираем команду Изменить и указываем в них:
- Название: site1
- Доменное имя: site1.com
- Папка сайта: /
- Название сайта: Корпоративный сайт компании "Название компании"
- URL сервера: www.site1.com
- Путь к корневой папке веб-сервера для этого сайта: /home/www/site1/
Далее создаём второй сайт s2
Аналогично настроим параметры второго сайта (www.site2.com/):
Также необходимо обратить внимание на параметр Путь к корневой папке веб-сервера для этого сайта. Для разных сайтов у него свое значение, взятое из параметра DocumentRoot настроек соответствующего "виртуального сервера".
- Название: site2
- Доменное имя: site2.com
- Папка сайта: /
- Название сайта: Интернет-магазин компании "Название компании"
- URL сервера: www.site2.com
- Путь к корневой папке веб-сервера для этого сайта: /home/www/site2/
Также необходимо обратить внимание на параметр Путь к корневой папке веб-сервера для этого сайта. Для разных сайтов у него свое значение, взятое из параметра DocumentRoot настроек соответствующего "виртуального сервера".
Примечание: Необходимо иметь в виду, что при организации многосайтовости по данному способу, вы можете использовать как виртуальные сервера одной установки Apache, так и просто разные установки Apache. Это справедливо для других веб-серверов: IIS, EServ и т.д. |
А теперь самое интересное!
Создаём второй сайт на хостинге и в корневую папку этого сайта (/home/www/site2/) помещаем скрипт, представленный ниже, под любым именем, например symlink.php:
<html> <head><title>Создание ссылок на папки bitrix, local и upload</title></head> <body> <? error_reporting(E_ALL & ~E_NOTICE); @ini_set("display_errors",1); if ($_POST['path']) $path = rtrim($_POST['path'],"/\\"); else $path = '../site1/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")) { if (symlink($path."/local",$_SERVER['DOCUMENT_ROOT']."/local")) echo "Символические ссылки удачно созданы"; else $strError = 'Не удалось создать ссылку на папку local, обратитесь к администратору сервера'; } else $strError = 'Не удалось создать ссылку на папку upload, обратитесь к администратору сервера'; } else $strError = 'Не удалось создать ссылку на папку bitrix, обратитесь к администратору сервера'; } else $strError = 'Указанный путь не содержит папку bitrix'; } else $strError = 'Неверно указан путь или ошибка прав доступа'; if ($strError) echo ''.$strError.' Исходный путь: '.$full_path; } ?> <form method=post> Путь к папке, содержащей папки bitrix, local и upload: <input name=path value="<?=htmlspecialchars($path)?>"><br> <input type=submit value='Создать' name=create> </form> </body> </html> |
Открываем браузер и в адресной строке указываем http://site2.com/symlink.php и нажимаем "Enter".
В открывшимся окне прописываем путь к корневой папке первого сайта s1, в нашем случае /home/www/site1/.
После того как символьные ссылки созданы, наберите в адресной строке браузера http://site1/bitrix/admin. Откроется панель авторизации.
Введите данные администратора, которые указывали при установке продукта на первый сайт, и попадете в административную панель «1С-Битрикс: Управление сайтом».
Введите данные администратора, которые указывали при установке продукта на первый сайт, и попадете в административную панель «1С-Битрикс: Управление сайтом».
На этапе создания могут возникнуть проблемы: 1. отсутствия прав на запись в текущую папку; 2. ограничение безопасности (open_basedir), которое не позволяет пользователям разделяемого хостинга обращаться к другим сайтам. |
В случае возникновения проблем с этим скриптом следует обратиться за помощью к хостеру.
Важно!
При создании второго сайта необходимо скопировать с основного сайта или заново создать файлы /.htaccess и /404.php. |
Создайте файл .access.php c таким содержанием в корне второго сайта:
<? $PERM["/"]["*"]="R"; ?> |
Вход в систему
Наберите в адресной строке браузера http://site1/bitrix/admin (или http://site2/bitrix/admin). Откроется панель авторизации.
Вводите данные администратора, которые указывали при установке продукта на первый сайт и попадете в административную панель "1С-Битрикс: Управление сайтом".
Поскольку ядро одно и база одна - административная панель для обоих сайтов будет одинаковая.
Вводите данные администратора, которые указывали при установке продукта на первый сайт и попадете в административную панель "1С-Битрикс: Управление сайтом".
Поскольку ядро одно и база одна - административная панель для обоих сайтов будет одинаковая.