Не удалось запустить Apache2, нет журнала ошибок
Я бы перезапустил Apache2, но появилась ошибка
$ sudo service apache2 start
Starting web server apache2
Action 'start' failed.
The Apache error log may have more information.
Но все журналы ошибок в "/var/log/apache2/" пусты.
Изменить: Файлы находятся в "/var/log/apache2", и есть несколько записей из предыдущих проблем, но эта задача не создает никаких новых etry...
Где проблема?
Я решил проблему!
Это была ошибка в SSL-сертификате, и путь к "error.log" был изменен в конфигурации vHost.
Если вам не нужен SSL (я не потому, что я запускаю локальную систему), просто отключите все
vHost HTTPS/SSL вводит в конфигурацию по командной строке для вывода строки.
Ответы
Ответ 1
Спасибо, Тим! Большой костяк для меня. Несколько других деталей могут оказаться полезными:
(Apache2 на Ubuntu 12.04)
У меня есть два сайта, работающих на одном сервере, и только что обновил SSL-сертификат для одного из них. После перезагрузки сервера я получил это загадочное сообщение, и ни один сайт не работал (очевидно). Я тоже нашел перенаправление для файлов журнала в конфигурационных файлах. Я проследил это и нашел проблему (в файле журнала для сайта, который я только что обновил).
Мои конфигурационные файлы находятся в /etc/apache 2/sites-available
vim или cat файл (cat {filename}) и найдите строку ErrorLog. Это говорит вам, где искать на вашем сервере. cat этот файл и сообщение об ошибке, которое я нашел, было:
[error] Unable to configure RSA server private key
[error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
[warn] RSA server certificate CommonName (CN) `<snip>.com' does NOT match server name!?
Я скопировал один из моих файлов сертификатов в неправильный каталог. Я просто переместил его в правильный каталог, и все было в порядке при следующем запуске. (совет: где этот файл должен быть также в файле конфигурации;)
Ответ 2
Я также столкнулся с аналогичной проблемой, т.е. service apache2 reload
выходит из строя, но не печатает никакой полезной информации. Это связано с тем, что script в /etc/init.d/apache
(по крайней мере, на Debian) ест результат команды apache2ctl configtest
, которую он запускает, для дезинфекции конфигурации Apache.
Простое решение для получения более значимого объяснения отказа состоит в том, чтобы снова запустить apache2ctl configtest
самостоятельно, который выведет на консоль сообщения (надеюсь, полезные) об ошибках.
Ответ 3
Синтаксические ошибки в файле конфигурации, похоже, вызывают проблемы. Я нашел, что проблема, перейдя в каталог и вызывая это из командной строки.
httpd -e info
Это дало мне ошибку
Syntax error on line 156 of D:/.../Apache Software Foundation/Apache2.2/conf/httpd.conf:
Invalid command 'PHPIniDir', perhaps misspelled or defined by a module not included in the server configuration
Ответ 4
в виртуальном хосте apache вам необходимо определить путь к файлу журнала ошибок. когда apache2 запускается в первый раз, он автоматически создаст его.
например ErrorLog "/var/www/www.localhost.com/log-apache2/error.log" в виртуальном хосте apache.
Ответ 5
В XAMPP используйте
D:\xampp\apache\bin>httpd -t -D DUMP_VHOSTS
Это приведет к ошибкам в конфигурации виртуальных хостов.
Ответ 6
Я столкнулся с этой проблемой на Малиновой Пи. Попробовав все, кроме переустановки, по прихоти я удалил /var/run/apache2/apache2.pid. Я перезапустил Apache, и все сработало. Не знаете, как это объяснить.
Ответ 7
Сегодня я столкнулся с этой проблемой. Я скопировал весь файл /etc/httpd из RHEL 6 и поместил его в систему CentOS 6 и обеспечил установку всех RPM.
В любое время, когда apache будет запущен, он тихо провалится. Для поиска виновника потребовалось strace
: я использовал CustomLog для вызова программы, которая не была установлена в целевой системе. После того, как я установил ожидаемую программу, Apache HTTP Server начал работать.
Ответ 8
Попробуйте отключить SElinux или конфигурацию virtualhost для SElinux
для настройки с помощью SElinux https://muchbits.com/apache-selinux-vhosts.html
для отключения SElinux https://linuxize.com/post/how-to-disable-selinux-on-centos-7/
Ответ 9
Если у нас нет записей в лог файлах, мы можем попытаться отладить apache2 с помощью этой команды:
$ apache2 -S
или же
$ apache2 -e debug
Возможный вывод:
[Fri Apr 05 04:04:59.682880 2019] [core:warn] [pid 11086] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot
Ответ 10
У вас есть следующие способы заставить его работать:
-
Удалите /var/run/apache2/apache2.pid и проверьте, работает ли он
-
Вы можете отключить SELinux, а затем проверить, работает ли он. Вы можете отключить SELinux постоянно или временно с помощью учебника https://linux4one.com/how-to-disable-selinux-on-centos-7/