Apache2启动失败,没有错误日志

时间:2013-09-24 07:57:27

标签: apache2 error-log

我会重启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”,并且以前的问题有几个条目,但此任务不会创建任何新的... ...

问题出在哪里?


我解决了问题!

这是SSL证书中的错误,并且vHost配置中的“error.log”路径已更改。

如果您不需要SSL(我不是因为我正在运行本地系统),只需禁用所有 vHost HTTPS / SSL通过命令行进行配置以进行换行。

10 个答案:

答案 0 :(得分:19)

我也遇到了类似的问题,即service apache2 reload失败但没有打印出有用的信息。这是因为/etc/init.d/apache中的脚本(至少在Debian上)会运行它运行的apache2ctl configtest命令的输出来清理Apache配置。

为失败提供更有意义的解释的简单解决方案是自己再次运行apache2ctl configtest,这会将(希望有用的)错误消息打印到控制台。

答案 1 :(得分:16)

配置文件中的语法错误似乎会导致问题。我通过访问目录并从命令行中将其排除,找到了问题所在。

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

答案 2 :(得分:8)

在apache虚拟主机中,您必须定义错误日志文件的路径。    当apache2第一次启动时,它会自动创建它。

例如apache virtualhost中的ErrorLog“/var/www/www.localhost.com/log-apache2/error.log”..

答案 3 :(得分:3)

在XAMPP上使用

D:\xampp\apache\bin>httpd -t -D DUMP_VHOSTS

这会在您的虚拟主机配置中产生错误

答案 4 :(得分:1)

我在Raspberry Pi上遇到了这个问题。在尝试了除重新安装以外的所有方法后,一时兴起,我删除了/var/run/apache2/apache2.pid。我重新启动了Apache,一切正常。不确定如何解释。

答案 5 :(得分:0)

我今天遇到了这个问题。我从RHEL 6复制了整个/ etc / httpd并将其放到CentOS 6系统上,并确保安装了所有RPM。

任何时候apache都会启动,它会默默地失败。花了strace找到了罪魁祸首:我使用 CustomLog 来调用目标系统上没有安装的程序。一旦我安装了预期的程序,Apache HTTP Server就会启动。

答案 6 :(得分:0)

尝试禁用SElinux或为SElinux配置虚拟主机

使用SElinux进行配置 https://muchbits.com/apache-selinux-vhosts.html

禁用SElinux https://linuxize.com/post/how-to-disable-selinux-on-centos-7/

答案 7 :(得分:0)

如果日志文件中没有条目,那么我们可以尝试使用以下命令调试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

答案 8 :(得分:0)

您可以通过以下方式使其起作用:

  1. 删除/var/run/apache2/apache2.pid,然后检查其是否正常工作

  2. 您可以禁用SELinux,然后检查其是否有效。您可以使用https://linux4one.com/how-to-disable-selinux-on-centos-7/教程

  3. 永久或暂时禁用SELinux。

答案 9 :(得分:0)

在Linux上的Apache上,可能会出现一个问题,因为未设置环境变量,因此无法检查配置。这是一个误报,仅在从命令行运行apache2 -S时才会发生(请参阅@simhumileco的先前答案)。例如Config variable ${APACHE_RUN_DIR} is not defined

为了解决此问题,请从命令行运行source /etc/apache2/envvars,然后运行`apache2 -S'来解决实际的(可能的)问题。

root@fileserver:~# apache2 -S
[Thu Apr 30 10:42:06.822719 2020] [core:warn] [pid 24624] 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
root@fileserver:~# source /etc/apache2/envvars
root@fileserver:/root# apache2 -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
<----snip---->
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex ldap-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
root@fileserver:/root#