Перейти к содержимому

Мастер установки не проходит - разбор причин

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

С чего начать

Смотрим, на каком шаге встал мастер:

лицензионное соглашение
ключ продукта, режим разработки, кодировка
проверка системы # на BitrixVM шаг пропускается
параметры базы данных # на BitrixVM шаг пропускается
создание структуры базы
данные администратора # логин от 3 латинских символов, пароль от 6

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

Сверяем расширения и запрещённые модули:

Окно терминала
php -m | grep -iE 'mbstring|zlib|zip|openssl|hash|pcre|mysqli|amqp|ldap'
php -m | grep -i suhosin # платформой запрещён, установку ломает
httpd -M 2>/dev/null | grep -i security # mod_security запрещён так же
php -i | grep -E 'memory_limit|max_execution_time|default_charset'

Список обязательных расширений закрыт, и мастер встаёт на первом же отсутствующем в системе. Модули suhosin и mod_security платформой запрещены и рвут шаги без внятного сообщения.

Проверяем владельца файлов дистрибутива:

Окно терминала
ls -l /home/bitrix/www/bitrixsetup.php # владелец = пользователь веб-сервера
chown -R bitrix:bitrix /home/bitrix/www # каталог сайта целиком
ps -o user= -C php-fpm | sort -u # от кого работает интерпретатор

Скрипт bitrixsetup.php распаковывает дистрибутив прямо на сервере и после распаковки удаляет себя сам. Дерево каталогов, распакованное от постороннего пользователя, веб-сервер на следующем шаге записать не сможет.

Ищем причину обрыва в журналах:

Окно терминала
tail -50 /var/log/php-fpm/error.log | grep -iE 'memory|execution|denied'
tail -20 /var/log/nginx/error.log | grep -i upstream # обрыв на стороне PHP

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

Поднимаем лимиты на время установки:

memory_limit = 256M ; шаг создания структуры самый прожорливый
max_execution_time = 300
post_max_size = 1024M ; дистрибутив приходит одним крупным архивом
upload_max_filesize = 1024M
mbstring.func_overload = 0 ; параметр должен быть удалён или обнулён

Причины

  1. Сервер не набирает обязательные требования примерно 30% случаев

    ПризнакМастер встал на шаге проверки системы и подсвечивает красным строку требования.

    ПроверкаСверяем список модулей интерпретатора с обязательным перечнем и ищем запрещённые модули защиты.

    Что делатьДоставляем недостающие расширения, выключаем suhosin и mod_security, перезапускаем веб-сервер и повторяем шаг.

  2. Нет прав на запись у владельца процесса примерно 25% случаев

    ПризнакРаспаковка или создание структуры обрываются, а каталоги сайта остаются пустыми.

    ПроверкаСмотрим владельца каталога сайта и пользователя, от которого работает интерпретатор PHP.

    Что делатьПередаём каталог сайта пользователю веб-сервера целиком и запускаем шаг мастера заново.

  3. Отказ на шаге параметров базы данных примерно 18% случаев

    ПризнакШаг возвращает отказ подключения либо жалобу на кодировку и версию сервера базы.

    ПроверкаПодключаемся к базе теми же логином и паролем из консоли сервера вручную.

    Что делатьЗаводим базу в нужной кодировке и выдаём учётной записи полные права на неё.

  4. Обрыв на шаге создания структуры примерно 15% случаев

    ПризнакПолоска замирает на процентах и дальше не двигается, сообщения об ошибке нет.

    ПроверкаИщем в журнале PHP запись о нехватке памяти или о превышении времени работы.

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

  5. Мастер не принимает логин или пароль администратора примерно 12% случаев

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

    ПроверкаПроверяем логин на длину и на латиницу, а пароль - на минимальную длину.

    Что делатьЗадаём логин от трёх латинских символов и пароль от шести знаков, затем сохраняем.

Частые вопросы

Почему не устанавливается битрикс на локалке?

Требования к площадке одни и те же везде: сборка общего назначения обычно не набирает обязательных расширений и держит низкие лимиты памяти. До запуска мастера прогоняют скрипт требований bitrix_server_test.php и закрывают его замечания.

Установка встала на добавлении каталогов и висит, что делать?

Смотрим владельца каталога сайта: распакованное от постороннего пользователя дерево веб-сервер дописать не может. Каталог целиком передают пользователю, от которого работает интерпретатор, и повторяют шаг мастера.

Структура базы данных зависает на процентах, куда копать?

В журнал PHP: шаг обрывается по пределу памяти или по времени выполнения, и на экране это выглядит замиранием полоски. Поднимаем memory_limit до 256M и max_execution_time до 300 секунд в своём файле настроек.

Не работает установщик bitrixsetup, с чего начинать?

С владельца файла и прав на корень сайта: скрипту нужно записать распакованный дистрибутив рядом с собой. После распаковки он удаляет себя сам, поэтому пропавший из корня файл - признак успеха, а не сбоя.

Чем отказ мастера отличается от ошибки установки окружения?

Окружение ставится до продукта и даёт веб-сервер, PHP и базу. Мастер продукта запускается уже поверх готового окружения, и его отказы разбираются требованиями, правами и доступами к базе, а не пакетами системы.

Смежное

Первоисточник