На моем сервере была такая же ошибка:
> service httpd status
httpd dead but subsys locked
Обнаружено, что каталог / var / run / httpd НЕ был доступен для чтения / выполнения всем миром:
drwx------ 2 root apache 4096 Apr 23 14:15 /var/run/httpd
Следовательно, любой пользователь (кроме root) не мог проверить pidfile (который действительно существовал)! Httpd-Process уже работал нормально, но служебная команда не смогла прочитать pidfile ...
# chmod a+rx /var/run/httpd
действительно устранил проблему:
> service httpd status
httpd (pid 2848) is running...
На данный момент самая важная проблема - это фатальная ошибка в вашем файле конфигурации. Вывод apachectl configtest
довольно окончательный.
Менее ясно, что вы делаете с этим. Как отмечали другие, включение /etc/zce.rc
- это пережиток Zend, о котором я знаю очень мало. Если вы думаете, что вам это нужно, вам нужно выяснить, куда пропал указанный файл, и вернуть его; здесь могут помочь резервные копии вашей системы. Если вы думаете, что вам это не нужно, вы можете попробовать прокомментировать строку 32 из / etc / sysconfig / httpd
и посмотреть, запустится ли тогда apache.
Изменить : просто чтобы сделать действительно уверены, что мы не упускаем какой-то важный вывод об ошибке, потому что он куда-то попадает, не могли бы вы отредактировать в свой вопрос вывод
find /etc/httpd /etc/zce.rc -type f -exec grep -i errorlog {} /dev/null \;
Edit 2 : ах, это относительные пути. Не могли бы вы также добавить значение ServerRoot
?
В итоге я переключил платформу Linux с RedHat на CentOs и начал снова с нуля, и все работало без сбоев.
Недавно обновился до RHEL 6 и имел ту же проблему. После долгих размышлений я обнаружил, что значение по умолчанию для расположения файла PID в файле / etc / sysconfig / httpd
и / etc / httpd / conf / httpd. conf
были другими. По умолчанию было /var/run/httpd/httpd.pid
, а значение в файле httpd.conf было /var/run/httpd.pid
.
Я исправил значение в httpd. conf
, был создан каталог httpd в / var / run
, и ложное сообщение исчезло.
Пришлось изменить httpd.config в / etc / httpd / conf /
с: PidFile запустить / httpd.pid кому: PidFile /var/run/httpd.pid
Кроме того, изменен файл httpd в /etc/sysconfig/[1284ghtfrom:
Выполните следующую команду:
killall -9 httpd
затем, чтобы снять блокировку httpd:
rm -f / var / lock / subsys / httpd
И перезапустил Apache: перезапуск службы httpd