故障排除:Apache Web服务器将无法重新启动/启动

时间:2020-01-09 10:43:52  来源:igfitidea点击:

我的CentOS Apache 2(httpd)网络服务器无法启动。
它工作正常,但是我对httpd.conf进行了很少的更改,并且没有重新启动。
解决我的问题需要检查哪些内容?
如果httpd/Apache无法重新启动,则可以检查一些事情以解决问题。

SSH进入您的服务器,然后尝试以下提示。
始终,在对现有文件httpd.conf和其他配置文件进行任何更改之前,请对其进行备份。

检查配置语法错误

几乎所有的Web服务器(包括Apache)都支持配置文件语法检查。
要对配置文件运行语法检查,请执行:

# httpd -t
# httpd -S

输出示例:

Syntax OK

如果正确配置了配置文件httpd.conf,则应该看到"语法确定"消息。
否则,它将在屏幕上显示错误消息:

Syntax error on line 29 of /usr/local/etc/apache22/httpd.conf:
Invalid command 'ServerRoot1', perhaps misspelled or defined by a module not included in the server configuration

您可以使用vi打开文件并更正语法:

# vi +29 /usr/local/etc/apache22/httpd.conf

检查Apache错误日志文件

屏幕上显示一些时间错误。
但是,检查错误日志文件将指出确切的问题位置:

tail -f /var/log/httpd-error.log
egrep -i 'warn|error' /var/log/httpd-error.log

DNS配置

像任何其他Internet服务器一样,Apache需要通过/etc/resolv.conf文件来支持DNS客户端。
通过DNS解析其主机名非常特别。
确保dns正常工作,并且在httpd.conf中正确设置了ServerName。

ServerName指令提供服务器用来标识自身的名称和端口。
这通常可以自动确定,但是我们建议您明确指定它,以防止启动期间出现问题。
如果您的主机没有注册的DNS名称,请在此处输入其IP地址。

ServerName server.theitroad.com:80

在shell提示符下检查主机名,并将其设置为httpd.conf文件中的ServerName:

hostname
hostname -f
server.theitroad.com

检查Apache/PHP/Python/CGI日志文件大小

在大多数情况下,超过2GB的日志文件(包括php和虚拟域日志)将导致问题或者错误500。
因此,请确保日志文件在限制范围内。
如果是这样,则可以将它们移出或者移出日志目录。
设置logrotate工具,该工具旨在简化生成大量日志文件的系统的管理。
使用ls -lh命令列出日志文件大小:

# ls -lh /var/log/httpd*

检查打开文件(FD)的限制

在繁忙的服务器上,打开的FD(文件描述符)限制可能会导致各种问题。
您可能想找出Linux下正在使用多少个文件描述符。

检查端口80和443

其他进程可能正在使用端口80或者443。
使用netstat命令列出打开的端口及其所有者:

# netstat -tulpn
# netstat -tulpn | grep
# netstat -tulpn | grep ':80'

如果其他进程使用端口80/443,则需要停止它们或者将另一个端口分配给Apache。