[英]Apache http server problems
我正在使用 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 認為它正在運行,有一段時間我什至能夠看到“它有效!” 當我導航到 localhost 時的頁面,但現在當我轉到該頁面時,我只會在 localhost 端口 443 處獲得“未找到 Apache/2.2.20 (ubuntu) 服務器”。 此外,我似乎無法殺死運行“kill -9 6233”命令的 apache 進程只會導致 apache 的 PID 發生變化(例如從 6233 到 6234)。 我還嘗試使用命令“sudo etc/init.d/apache2 stop”,它會產生“* Stopping web server apache2 [OK]”消息,但我再次看到 apache2 進程占用了端口 80。
關於任何這些問題的想法將不勝感激。
看:“模塊xxx_module已經加載”
答:您不止一次加載這些模塊。 嘗試搜索並評論/刪除有問題的行:
在 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/*
在 Debian/Ubuntu 中:
grep ssl_module -rI /etc/apache2/*
我在使用 SSL 密鑰和密碼時遇到了類似的問題。 我為讓它運行所做的是:
sudo pkill apache2
sudo /etc/init.d/apache2 start
我不建議從您的 Apache 配置中刪除Listen *:80
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.