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

Ошибка при установке веб-окружения - разбор причин

Установка веб-окружения обрывается на пакетах или заканчивается неработающим сервером. Разбираем причины в порядке убывания частоты.

С чего начать

Смотрим, на чём именно оборвалась установка:

Окно терминала
# журнал установки пишется одним файлом, последние строки называют пакет
tail -50 /var/log/bitrix-env-install.log
grep -iE 'error|fail|conflict' /var/log/bitrix-env-install.log | tail -20

Названный в ошибке пакет - половина ответа. Конфликт версий, недоступный репозиторий и нехватка места выглядят в журнале по-разному, и лечатся они тоже по-разному.

Проверяем систему до повторного запуска:

Окно терминала
cat /etc/os-release | head -2 # версия дистрибутива
free -m | head -2 # свободная память
df -h / /home # свободное место
getenforce # состояние SELinux
# убитые системой процессы: так выглядит нехватка памяти в журнале ядра
dmesg | grep -i 'killed process' | tail -5

Окружение рассчитано на определённые дистрибутивы, и на соседних оно ставится через раз. Четыре значения выше отсекают сразу три частые причины из пяти описанных ниже.

Смотрим, не занят ли сервер чужим веб-сервером:

Окно терминала
# кто слушает 80 и 443: занятый порт ломает установку молча
ss -lntp | grep -E ':80|:443'
# следы чужих сборок и панелей управления хостингом
rpm -qa | grep -iE 'httpd|nginx|apache|isp|cpanel' | head

Окружение рассчитывает на чистую систему и своими руками ставит весь набор служб. Оставшаяся от прошлой установки панель управления перехватывает те же порты и те же конфигурационные файлы.

Причины

  1. Система не из поддерживаемых примерно 30% случаев

    ПризнакУстановка падает на первых же пакетах, в журнале конфликты зависимостей.

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

    Что делатьСтавим окружение на поддерживаемый дистрибутив; на прочих собирают связку веб-сервера, PHP и базы вручную.

  2. На сервере уже стоит чужой веб-сервер примерно 25% случаев

    ПризнакУстановка проходит, но сайт не открывается либо служба не стартует из-за занятого порта.

    ПроверкаСмотрим, кто слушает 80 и 443 порты, и какие пакеты веб-сервера уже установлены.

    Что делатьУдаляем чужой веб-сервер и панель управления до установки: окружение рассчитывает на чистую систему.

  3. Репозиторий пакетов недоступен примерно 20% случаев

    ПризнакОшибка загрузки пакета или таймаут, повтор даёт тот же результат.

    ПроверкаПроверяем доступ наружу и разрешение имён с самого сервера.

    Что делатьОткрываем исходящие подключения на сервере или прописываем зеркало репозитория в его настройках.

  4. Не хватает памяти или места на диске примерно 15% случаев

    ПризнакУстановка обрывается на середине без внятной ошибки, процесс убит системой.

    ПроверкаСмотрим свободную память и место на разделах, а также сообщения ядра об убитых процессах.

    Что делатьДобавляем память или файл подкачки и освобождаем место; минимальные требования окружения выше, чем у голой системы.

  5. SELinux блокирует запись и запуск примерно 10% случаев

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

    ПроверкаПроверяем режим SELinux и ищем записи об отказах в системном журнале.

    Что делатьПереводим SELinux в разрешающий режим до установки, как этого требует документация окружения.

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

Можно ли поставить окружение поверх панели управления хостингом?

Нет, они управляют одними и теми же службами и конфликтуют за настройки. Сервер под окружение берут чистым, без панели и стороннего веб-сервера.

Установка прошла, а сайт не открывается - куда смотреть?

Сначала на то, стартовали ли службы веб-сервера и PHP, потом на конфигурацию сайта в окружении. Пустая страница при живых службах означает, что сайт в окружении ещё не заведён.

Сколько памяти нужно серверу?

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

Ставить окружение или собирать связку вручную?

Окружение экономит время и даёт штатное меню обслуживания. Ручная сборка нужна там, где дистрибутив не поддерживается или на сервере уже живут чужие сервисы.

Смежное

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