46  /  174

Возможные ошибки при переносе сайта

Просмотров: 825 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 26.10.2015

Перенос сайта нештатными средствами

Перенос сайта на хостинг лучше всего выполнять встроенными в Bitrix Framework средствами резервного копирования/восстановления.

Несмотря на то, что фактически сайт на «1С-Битрикс: Управление сайтом» представляет из себя набор файлов и базу данных, копирование файлов напрямую на удаленный сервер в большинстве случаев будет не верным решением. Из-за большого количества мелких файлов такое копирование может растянуться на несколько часов. Кроме того, использование стандартных механизмов позволяет избежать последующих возможных проблем с правами доступа к файлам сайта.

Среди часто возникающих проблем:

  1. Веб-сервер не может записать в нужную ему папку или удалить временные файлы. Возможные последствия:

    • невозможность обновления продукта;
    • невозможность редактировать сайт через веб-интерфейс;
    • некорректная работа компонента кэширования;
    • и другие проблемы.

      Примечание: Например, встречаются даже такая ситуация, когда система создавала временные файлы, но права хостинга не позволяли удалить их. В результате через день работы аккаунт был заблокирован за превышение дисковой квоты.

      Самым простым решением в этом случае будет установка прав на все файлы и папки 777 (для Unix платформы) либо любой другой способ дать PHP запись на эти файлы.

  2. Нет возможности отредактировать через ftp/ssh файлы, созданные через веб-интерфейс. В этом случае многим веб-разработчикам будет сложно дорабатывать сайт.

    Одним из простых, но не всегда работающих решений, является установка параметров в файле dbconn.php, позволяющих всем редактировать создаваемые через Bitrix Framework файлы.

    define("BX_FILE_PERMISSIONS", 0666);
    define("BX_DIR_PERMISSIONS", 0777);

    Однако для файлов, созданных через ftp/ssh, вам придется периодически изменять права вручную. Либо, если хостинг это поддерживает, устанавливать параметр umask.

Настройки PHP

При переносе сайта на хостинг могут возникнуть различные нюансы из-за настроек PHP:

  • Проблемы с несоответствием владельца файлов: на ряде хостингов PHP работает от имени одного пользователя, а доступ по ftp/ssh предоставлен другому. В этом случае файлы, созданные одним методом, могут быть недоступны для модификации, или вообще вызывать ошибку выполнения из-за нарушения параметров безопасности.
  • Проблемы с настройками безопасности: возможны различные варианты подключения PHP к веб-серверу, и в некоторых из этих вариантов устанавливаются жесткие ограничения на владельца файла и права на файл. В этом случае возможны ошибки с кодом 500, и разобраться в проблеме вам поможет только журнал ошибок веб-сервера.

    Пример: На многих хостингах, если PHP подключен как CGI, требуется соответствие владельца файла и прав на файл. Если владелец файла – не ваш аккаунт или права на файл допускают запись всем пользователям, PHP будет вызывать ошибку. В этом случае необходимо установить корректные права на файлы и папки, а также правильные параметры в dbconn.php.

  • Ограничения на время выполнения скрипта или на другие выделяемые ресурсы. В этом случае сайт может вести себя странно – то открываться, то не открываться и показывать белый экран.

    Пример: особо чувствительны к размеру памяти и времени выполнения различные скрипты импорта-экспорта данных. Если у вас возникают ошибки – проверяйте доступность ресурсов на хостинге, в случае их нехватки смените хостера.

  • Проблемы с использованием кодировки utf-8 на хостинге. Выясните, поддерживается ли она (необходимо наличие библиотеки mbstring и возможность установки параметра pgp: mbstring.func_overload=2).
  • Другие проблемы, специфичные для вашего хостера. Для их устранения рекомендуем заранее протестировать работу сайта на выбранном вами хостинге и заручиться контактами специалистов службы поддержки провайдера.

Возможные проблемы при работе с многосайтовостью в Bitrix Framework

Проверьте, что ваш хостинг позволит огранизовать многосайтовость выбранным вами методом. Не все провайдеры позволяют корректно (для Bitrix Framework) создавать дополнительные сайты. Информацию об способах организации многосайтовости можно получить в учебном курсе Многосайтовость.

Проблемы с почтой

Некоторые хостинги не позволяют отправлять почту без авторизации. В этом случае для отправки письма с сайта вам необходимо будет переопределять функцию отправки почту в соответствии с документацией к продукту.

Распакованный сайт недоступен

После распаковки резервной копии на всём сайте отображается только форма авторизации. Возможные причины и решения:

  • Некорректное значение поля Путь к корневой папке веб-сервера для этого сайта в настройках сайтов (Настройки > Настройки продукта > Сайты > Список сайтов).

    Решение: в настройках сайта изменить значение поля Путь к корневой папке веб-сервера для этого сайта на соответствующий путь на новом хостинге, нажав на ссылку Вставить текущий. Оставьте поле пустым, если все сайты работают на одном веб-сервере.

  • Если перенос осуществлялся простым копированием файлов (FTP/SSH), мог не скопироваться файл .access.php. В данном файле хранятся права доступа групп пользователей к сайту, если данного файла нет, то для всех пользователей устанавливается право Запрещено.

    Решение 1: в корень сайта положить файл .access.php с содержимым:

    <?  $PERM["/"]["*"]="R"; ?>

    либо

    Решение 2: через файловый менеджер продукта в свойствах корневой папки сайта на вкладке Доступ установить для группы Все пользователи (в том числе неавторизованные) право Чтение.

Не полный архив

При просмотре архива, созданного штатной системой резервного копирования, через WinRar видно, что файлов в архиве гораздо меньше, чем на сайте.

Причина: дело в том, что у формата tar есть несколько диалектов. Система пакует архив в формате GNU tar, как это делает по умолчанию tar в Linux. WinRar понимает tar, но конкретно этот диалект поддерживает не полностью.

Резервный архив должен распаковываться системным restore.php, скачанным со страницы резервного копирования. Если и в этом случае часть файлов утеряна, проблему следует решать через техподдержку.

Ошибка ERROR 1062 (23000)

При распаковке резервной копии происходит ошибка: ERROR 1062 (23000) at line 1247: Duplicate entry '2-?' for key 2.

Причина: Ошибка происходит, если кодировка, в которой сделан архив, отличается от используемой на новом сервере баз данных.

  • Кодировка архива устанавливается в зависимости от содержимого файла /bitrix/php_interface/after_connect.php, например:
    <?
    $DB->Query("SET NAMES 'utf8'");
    ?>
    т.е архив будет создаваться в кодировке utf8.
  • Кодировку сервера баз данных можно увидеть в параметре character_set_server после выполнения SQL-запроса:
    show variables where Variable_name = 'character_set_server';

Обойти или устранить эту ошибку можно двумя способами:

  • В настройках нового сервера баз данных изменить кодировку в параметре character_set_server на ту, в которой сделан архив.

    Внимание! За выполнением этой операции возможно придется обратиться к администратору сервера.

  • Можно открыть архив в текстовом редакторе и в самое начало вставить строку:
    SET NAMES `utf8`;
    Кодировка выбирается в зависимости от кодировки архива.

    Внимание! Этот способ работает только в случае небольших дампов (которые успевают импортировать за один шаг).

Ошибки в .htaссess

Часть ошибок (например: ошибка 404 при переходе подробную информацию новостей), возникающих при переносе сайтов связана с тем, что при переносе файл .htaссess переименовывается с добавлением "_". Для решения проблемы достаточно проверить имя файла и, при обнаружении ошибки, восстановить его.



5
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии