Skip to main content

Создание многосайтовости на Bitrix

 Настройка симлинков (вариант 1)

Первый вариант (зеленым цветом приведены примеры для установки на UNIX системы):

  1. установите программный продукт "1С-Битрикс: Управление сайтом" сначала в каталог первого сайта /home/www/site1/
  2. создайте каталог /home/www/shared/, в котором будут располагаться общие для всех сайтов файлы:
    mkdir /home/www/shared
  3. перенесите весь каталог /home/www/site1/bitrix/ в /home/www/shared/bitrix/:
    mv /home/www/site1/bitrix /home/www/shared/bitrix
  4. перенесите весь каталог /home/www/site1/upload/ в /home/www/shared/upload/:
    mv /home/www/site1/upload /home/www/shared/upload
  5. перенесите весь каталог /home/www/site1/local/ в /home/www/shared/local/:
    mv /home/www/site1/local /home/www/shared/local
  6. создайте символическую связь для каталога /bitrix/ в каждом из сайтов:
    1. ln -s /home/www/shared/bitrix /home/www/site1/
    2. ln -s /home/www/shared/upload /home/www/site1/
    3. ln -s /home/www/shared/local /home/www/site1/
    4. ln -s /home/www/shared/bitrix /home/www/site2/
    5. ln -s /home/www/shared/upload /home/www/site2/
    6. ln -s /home/www/shared/local /home/www/site2/
  7. убедитесь, что веб-сервер (Apache, IIS) имеет право на запись в каталог /home/www/shared/ (это необходимо будет для работы системы обновлений и загрузки графических файлов)
  8. разместите публичную часть второго сайта в каталог /home/www/site2/

 

Примечание: Для создания и удаления символьных ссылок в Windows (начиная с Vista) есть команда mklink, либо воспользуйтесь дополнительными программами.

 

Важно! Файловая система FAT32 не поддерживает создание символьных ссылок.

 

При настройке многосайтовой конфигурации на UNIX, можно воспользоваться программным методом создания символьных ссылок: 

<?
symlink("/virt/homes/forinsured/bitrix", "/virt/homes/forinsured/htdocs/bitrix");
symlink("/virt/homes/forinsured/upload", "/virt/homes/forinsured/htdocs/upload");
symlink("/virt/homes/forinsured/local", "/virt/homes/forinsured/htdocs/local");
?>

Примечание:

В ряде случаев, например если web сервер работает в chroot, необходимо делать относительные ссылки.
Пример: 
/var/www/s1 - первый сайт
/var/www/s2 - второй сайт
/var/www/shared - папка с ядром системы

Заходим в /var/www/s1 и создаём ссылки:

   ln -s ../shared/bitrix bitrix 
   ln -s ../shared/upload upload
   ln -s ../shared/local local

Переходим в /var/www/s2 и выполняем те же команды.

 

Настройка симлинков (вариант 2)

В этом варианте символьные ссылки создаются непосредственно в папке второго сайта.

    Установите программный продукт «1С-Битрикс: Управление сайтом» сначала в каталог первого сайта /home/www/site1/ Создайте в корневой папке второго сайта (/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>
    
      Запустите скрипт и укажите путь к корневой папке первого сайта, в нашем случае /home/www/site1/. После того как символьные ссылки созданы, наберите в адресной строке браузера site1/bitrix/admin. Откроется панель авторизации. Введите данные администратора, которые указывали при установке продукта на первый сайт, и попадете в административную панель «1С-Битрикс: Управление сайтом».

      После завершения работы скрипта наличие символических ссылок на папки /bitrix, /local и /upload в папке второго сайта можно проверить по появлению одноименных папок.

      На этапе создания могут возникнуть проблемы:

        отсутствия прав на запись в текущую папку; ограничение безопасности (open_basedir), которое не позволяет пользователям разделяемого хостинга обращаться к другим сайтам.

        В случае возникновения проблем с этим скриптом следует обратиться за помощью к хостеру.

         

        Источник официальная инструкция от Bitrix