Дата последнего изменения: 02.02.2024
Перенос сайта на хостинг лучше всего выполнять встроенными в Bitrix Framework средствами резервного копирования/восстановления.
Несмотря на то, что фактически сайт на «1С-Битрикс: Управление сайтом» представляет из себя набор файлов и базу данных, копирование файлов напрямую на удаленный сервер в большинстве случаев будет не верным решением. Из-за большого количества мелких файлов такое копирование может растянуться на несколько часов. Кроме того, использование стандартных механизмов позволяет избежать последующих возможных проблем с правами доступа к файлам сайта.
Среди часто возникающих проблем:
Самым простым решением в этом случае будет установка прав на все файлы и папки 777 (для Unix платформы) либо любой другой способ дать PHP запись на эти файлы.
Одним из простых, но не всегда работающих решений, является установка параметров в файле dbconn.php, позволяющих всем редактировать создаваемые через Bitrix Framework файлы.
define("BX_FILE_PERMISSIONS", 0666); define("BX_DIR_PERMISSIONS", 0777);
Однако для файлов, созданных через ftp/ssh, вам придется периодически изменять права вручную. Либо, если хостинг это поддерживает, устанавливать параметр umask.
PHP Fatal error: Unknown: Failed opening required '/home/bitrix/www/bitrix/modules/security/tools/start.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0
Она вызывается если в корневом .htaccess прописан путь:
auto_prepend_file = /home/bitrix/www/bitrix/modules/security/tools/start.php
а реально бекап разворачивается в /home/bitrix/ext_www/sitename.ru
, например.
При переносе сайта на хостинг могут возникнуть различные нюансы из-за настроек PHP:
Проверьте, что ваш хостинг позволит организовать многосайтовость выбранным вами методом. Не все провайдеры позволяют корректно (для Bitrix Framework) создавать дополнительные сайты. Информацию об способах организации многосайтовости можно получить в учебном курсе Многосайтовость.
Некоторые хостинги не позволяют отправлять почту без авторизации. В этом случае для отправки письма с сайта вам необходимо будет переопределять функцию отправки почту в соответствии с документацией к продукту.
После распаковки резервной копии на всём сайте отображается только форма авторизации. Возможные причины и решения:
Решение: в настройках сайта изменить значение поля Путь к корневой папке веб-сервера для этого сайта на соответствующий путь на новом хостинге, нажав на ссылку Вставить текущий. Оставьте поле пустым, если все сайты работают на одном веб-сервере.
Решение 1: в корень сайта положить файл .access.php с содержимым:
<? $PERM["/"]["*"]="R"; ?>либо
Решение 2: через файловый менеджер продукта в свойствах корневой папки сайта на вкладке Доступ установить для группы Все пользователи (в том числе неавторизованные) право Чтение.
При просмотре архива, созданного штатной системой резервного копирования, через WinRar видно, что файлов в архиве гораздо меньше, чем на сайте.
Причина: дело в том, что у формата tar есть несколько диалектов. Система пакует архив в формате GNU tar, как это делает по умолчанию tar в Linux. WinRar понимает tar, но конкретно этот диалект поддерживает не полностью.
Резервный архив должен распаковываться системным restore.php, скачанным со страницы резервного копирования. Если и в этом случае часть файлов утеряна, проблему следует решать через техподдержку.
При распаковке резервной копии происходит ошибка: ERROR 1062 (23000) at line 1247: Duplicate entry '2-?' for key 2
.
Причина: Ошибка происходит, если кодировка, в которой сделан архив, отличается от используемой на новом сервере баз данных.
<? $DB->Query("SET NAMES 'utf8'"); ?>т.е архив будет создаваться в кодировке utf8.
character_set_server
после выполнения SQL-запроса:
show variables where Variable_name = 'character_set_server';
Обойти или устранить эту ошибку можно двумя способами:
character_set_server
на ту, в которой сделан архив.
SET NAMES `utf8`;Кодировка выбирается в зависимости от кодировки архива.
Часть ошибок (например: ошибка 404 при переходе подробную информацию новостей), возникающих при переносе сайтов связана с тем, что при переносе файл .htaссess переименовывается с добавлением "_". Для решения проблемы достаточно проверить имя файла и, при обнаружении ошибки, восстановить его.