我正在使用Apache版本2.2.20 (ubuntu),并尝试使用自定义httpd.conf设置,但是我遇到了以下错误消息,并希望能得到任何可以给我的指导。我是开发团队的一员,被给予了这个自定义httpd.conf文件,因此我不认为它是问题的原因(但我并不完全排除这种可能性)。
我运行命令“sudo apache2ctl -k restart”并得到以下结果:
[Fri Jul 06 11:33:34 2012] [warn] module ssl_module is already loaded, skipping
[Fri Jul 06 11:33:34 2012] [warn] module rewrite_module is already loaded, skipping
httpd not running, trying to start
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action '-k restart' failed.
The Apache error log may have more information.
如果我在我的httpd.conf文件中注释掉以下这行,我就可以消除两个警告。那我真的应该这么做吗?我去哪里可以验证这些模块是否已经在其他地方加载,而在我的conf文件中注释掉它们不会有任何影响呢?
LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
至于与无法绑定到80端口相关的错误,我无法使其消失。当我运行“sudo netstat -lnp | grep :80”时,我会得到以下结果
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6233/apache2
我知道上面的输出意味着Apache认为它正在运行,有一段时间我甚至能够在转到本地主机时看到“它可以工作!”页面,但现在当我访问那个页面时只会得到“Not Found Apache/2.2.20 (ubuntu) server at localhost port 443”错误信息。同时,我似乎无法杀死运行的Apache进程,“kill -9 6233”命令只会导致Apache的PID改变(例如从6233变成6234)。我还尝试使用“sudo etc/init.d/apache2 stop”命令,它会产生一个“* Stopping web server apache2 [ OK ]”消息,但我仍然看到Apache2进程占用端口80。如果对这些问题有任何想法,请提供帮助。