故障排除:Apache Web服务器将无法重新启动/启动
我的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。