Apache2 启动失败,没有错误日志
Posted
技术标签:
【中文标题】Apache2 启动失败,没有错误日志【英文标题】:Failed Apache2 start, no error log 【发布时间】:2013-09-29 08:03:34 【问题描述】:我会重启 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 证书中的错误,并且 vHost 配置中“error.log”的路径已更改。
如果您不需要 SSL(我不需要,因为我正在运行本地系统)只需禁用所有 配置中的 vHost HTTPS/SSL 条目,由命令行输出。
【问题讨论】:
检查系统日志是否有错误 磁盘有空间吗? 只是评论:服务器停止了吗?否则,如果您运行sudo service apache2 start
,它将失败。重新启动应该是:sudo service apache2 restart
服务器已关闭,因为它不会在启动时启动
系统日志是否还有其他错误会影响 apache?
【参考方案1】:
我也遇到了类似的问题,即service apache2 reload
失败但没有打印出有用的信息。这是因为/etc/init.d/apache
中的脚本(至少在 Debian 上)吃掉了它运行以清理 Apache 配置的 apache2ctl configtest
命令的输出。
获得更有意义的失败解释的简单解决方案是自己再次运行apache2ctl configtest
,这会将(希望有用的)错误消息打印到控制台。
【讨论】:
“吃掉...的输出” - 太棒了:) 我的 apache2ctl configtest 说 Syntax OK 但 apach 没有启动 naymore :((【参考方案2】:配置文件中的语法错误似乎会导致问题。通过转到目录并从命令行执行它,我发现了问题所在。
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
【讨论】:
谢谢。我并不经常生活在 Apache 世界中。过去两天试图获取 SSL 工作信息 这个命令让我摆脱了最初的问题,这是我正在使用的 bitnami 发行版中的一堆语法问题。这至少让我遇到了下一个错误:) 如果通过自定义服务启动,您也可以附加此内容,例如 ExecStart=/usr/sbin/apache2 $OPTIONS -e INFO -DFOREGROUND【参考方案3】:谢谢,蒂姆!对我来说是个大笨蛋。其他一些其他人可能会觉得有帮助的细节:
(Ubuntu 12.04 上的 Apache2)
我有两个站点在同一台服务器上运行,并且刚刚更新了其中一个站点的 SSL 证书。重新启动服务器后,我收到了那个神秘的消息,但两个站点都没有工作(显然)。我也在配置文件中找到了日志文件的重定向。我对其进行了追踪并发现了问题(在我刚刚更新的网站的日志文件中)。
我的配置文件位于 /etc/apache2/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!?
我将我的一个证书文件复制到了错误的目录。我只是将它移动到正确的目录,下次启动时一切都很好。 (提示:这些文件的位置也在配置文件中;)
【讨论】:
【参考方案4】:在 apache 虚拟主机中,您必须定义错误日志文件的路径。 apache2第一次启动时会自动创建。
例如 apache 虚拟主机中的 ErrorLog "/var/www/www.localhost.com/log-apache2/error.log"..
【讨论】:
没有错误文件位于“/var/log/apache2”,并且之前的问题存在多个错误。但是 这个 Start-Attemp 不会在任何错误日志中创建新条目 如果文件存在,可能是你的磁盘空间问题,也检查一下 之前的日志是不是同一个用户创建的,可以是用户授权创建日志文件。由于用户问题,我之前遇到过同样的问题 是的。所有条目均来自一位用户【参考方案5】:在 XAMPP 上使用
D:\xampp\apache\bin>httpd -t -D DUMP_VHOSTS
这会在您的虚拟主机配置中产生错误
【讨论】:
【参考方案6】:我在 Raspberry Pi 上遇到了这个问题。在尝试了除了重新安装之外的所有方法之后,我一时兴起删除了 /var/run/apache2/apache2.pid。我重新启动了 Apache,一切正常。不知道怎么解释。
【讨论】:
【参考方案7】:如果我们在日志文件中没有条目,那么我们可以尝试使用以下命令调试 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】:我今天遇到了这个确切的问题。我已经从 RHEL 6 复制了整个 /etc/httpd 并将其放到 CentOS 6 系统上,并确保安装了所有 RPM。
只要 apache 启动,它就会默默地失败。 strace
找到了罪魁祸首:我正在使用 CustomLog 来调用目标系统上未安装的程序。一旦我安装了预期的程序,Apache HTTP Server 就会立即启动。
【讨论】:
【参考方案9】:尝试禁用 SElinux 或为 SElinux 配置虚拟主机
使用 SElinux 进行配置 https://muchbits.com/apache-selinux-vhosts.html
禁用 SElinux https://linuxize.com/post/how-to-disable-selinux-on-centos-7/
【讨论】:
【参考方案10】:您可以通过以下方式使其工作:
删除 /var/run/apache2/apache2.pid 然后检查它是否工作
您可以禁用 SELinux,然后检查它是否有效。您可以使用 https://linux4one.com/how-to-disable-selinux-on-centos-7/ 教程永久或临时禁用 SELinux
【讨论】:
【参考方案11】:在 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#
【讨论】:
以上是关于Apache2 启动失败,没有错误日志的主要内容,如果未能解决你的问题,请参考以下文章
启动 apache 失败(无法绑定到地址 0.0.0.0:80)