首页 文章

Apache http服务器问题

提问于
浏览
11

我正在使用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认为它正在运行,有一段时间我甚至可以看到它“It Worked!”我导航到localhost时的页面,但是当我转到该页面时,我现在只能在localhost端口443获得“Not Found Apache / 2.2.20(ubuntu)服务器” . 另外,我似乎无法杀死运行“kill -9 6233”命令的apache进程,只会导致apache的PID发生变化(例如从6233变为6234) . 我也尝试使用命令“sudo etc / init.d / apache2 stop”,它产生一个“*停止web服务器apache2 [OK]”消息,但我再次看到apache2进程占用端口80 .

任何这些问题的想法将不胜感激 .

2 回答

  • 11

    看:“模块xxx_module is already loaded

    答:您不止一次加载这些模块 . 尝试搜索并评论/删除有问题的行:

    In Centos/RHEL:

    grep ssl_module -rI /etc/httpd/*   
    /etc/httpd/conf/httpd.conf:LoadModule ssl_module /usr/lib64/httpd/modules/mod_ssl.so
    /etc/httpd/conf.d/ssl.conf:LoadModule ssl_module modules/mod_ssl.so
    

    在这种情况下^我在 /etc/httpd/conf/httpd.conf 注释掉了一行,所以所有的SSL内容都在 /etc/httpd/conf.d/ssl.conf

    rewrite_module 相同

    grep rewrite_module -rI /etc/httpd/*
    

    In Debian/Ubuntu:

    grep ssl_module -rI /etc/apache2/*
    
  • 2

    我有一个类似的问题,我使用密码的SSL密钥 . 我做的是让它运行的是:sudo pkill apache2 sudo /etc/init.d/apache2 start

    我不建议从您的apache配置中删除Listen *:80 .

相关问题