Всем привет — сегодняшнее утро началось с того что я заметил что нет доступа к моим сайтам на домашнем Web сервере. Зайдя в админку сервера, я увидел что Apache сервер лежит, а при его запуске выдается вот такая ошибка
(20014) Internal error (specific information not available): AH00058: Error retriving pid file logs/httpd.pid AH00059: Remove it before continuing if it is coppuptedПерезагрузка кстати не помогла, сервер сразу падал.
Лечится данная проблема довольно легко — нам нужно удалить лог-файл httpd.pid после чего Apache сервер запустится. В aaPanel данный лог находится в
/www/server/apache/logs
Удаляем и вуаля — сервер в работе.
Ну и так как Apache сервер может упасть в любое время, то ниже я накидал скрипт с комментариями, который проверяет — запущен ли Апач ? Если запущен то ничего не делает, а если не запущен то удаляет httpd.pid и запускает сервер. Я вставил этот скрипт в Cron с периодичностью раз в 3 минуты.
#!/bin/bash # Путь к файлу PID Apache сервера APACHE_PID_FILE="/www/server/apache/logs/httpd.pid" # Проверяем, запущен ли Apache сервер if ! pgrep -x "httpd" > /dev/null; then # Если Apache сервер не запущен, удаляем файл PID if [ -f "$APACHE_PID_FILE" ]; then rm "$APACHE_PID_FILE" fi # Запускаем Apache сервер echo "Запускаем Apache server." /www/server/apache/bin/apachectl start else # Если Apache сервер запущен, ничего не делаем echo "Apache сервер уже запущен." fi