無法配置 httpd.conf
我對 httpd 有一些問題,無法對其進行配置(無法在瀏覽器中打開)。我已經做過很多次了,但現在我錯過了一些東西。
我已經在帶有 ubuntu 14 的 virtualbox 上安裝了 CentOS 6.5。使用帶有本地 ip addr 的網橋連接。
在 httpd.conf 更改這一行,
#Listen 192.168.1.144:80
但沒有“#”將不會啟動 httpd 服務。用 127.0.0.1 或 0.0.0.0 也有同樣的問題。
在 iptables 中
:INPUT ACCEPT [0:0] :`FORWARD ACCEPT [0:0]` :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
80埠是開放的。在我的路由器上也是打開的。
我嘗試使用 nginx,但我遇到了同樣的問題。我開始認為問題出在 virtualbox 或 ubuntu 上。
編輯1:這是來自error_log:
[Mon Jul 14 17:11:02 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Mon Jul 14 17:11:02 2014] [notice] Digest: generating secret for digest authentication ... [Mon Jul 14 17:11:02 2014] [notice] Digest: done [Mon Jul 14 17:11:02 2014] [notice] Apache/2.2.15 (Unix) DAV/2 configured -- resuming normal operations [Mon Jul 14 18:18:53 2014] [notice] caught SIGTERM, shutting down [Mon Jul 14 18:18:54 2014] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0 [Mon Jul 14 18:18:54 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Mon Jul 14 18:18:54 2014] [notice] Digest: generating secret for digest authentication ... [Mon Jul 14 18:18:54 2014] [notice] Digest: done [Mon Jul 14 18:18:54 2014] [notice] Apache/2.2.15 (Unix) DAV/2 configured -- resuming normal operations
也許問題出在 VirtualBox 上,因為在我的 Ubuntu(主作業系統)上,apache 執行得非常好。
編輯 2
問題解決了!
我用 VMware 更改了 VirtualBox,現在我沒有問題.. :)
看起來您可能在這裡遇到了多個問題,所以首先我們將從頭開始確保您在 VirtualBox 和 Centos 中正確設置了網路訪問。我在這裡寫的只是一個確定問題所在的指南,而不是關於如何解決問題的任何資訊,因為您需要提供更多資訊才能獲得建議的解決方案。
問題1:上網 首先,在VirtualBox 中確保您將網路適配器設置為“附加到橋接適配器”,然後選擇您的實際機器的網際網路連接源,即en0:Wi-Fi。
其次,啟動您的虛擬機,以 root 身份登錄並輸入
ifconfig
. 您應該看到類似這樣的內容並記下inet addr
:eth0 Link encap:Ethernet HWaddr 08:00:27:4D:22:B1 inet addr:192.168.3.105 Bcast:192.168.3.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe4d:22b1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:632 errors:0 dropped:0 overruns:0 frame:0 TX packets:67 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:63848 (62.3 KiB) TX bytes:8159 (7.9 KiB)
然後你會想要檢查你可以
ping google.com
。如果成功,您應該會看到類似這樣的行。按 CTRL + C 取消:64 bytes from blablabla.bla.com (*.*.*.*): icmp_seq=1 ttl=60 time=1.61 ms
如果你走到這一步,你就可以從你的虛擬機訪問網際網路。下一步是測試其他機器是否可以訪問您的虛擬機。
現在您需要檢查您網路上的其他網路機器是否可以看到您的虛擬機。
ping
在實際機器上使用控制台inet addr
從響應ifconfig
您之前執行的命令。然後再次使用真機上的控制台,使用Nmap檢查虛擬機上開放的埠,。有關 Nmap 的有用資訊,請參見http://nmap.org/book/install.html。您應該會看到包含類似以下行的響應:
80/tcp open http Apache httpd 2.2.14 ((Centos))
如果你到了這一點並且一切都很好,那麼是時候解決你在 httpd.conf 文件中肯定存在的問題了。如果您對這些階段中的任何一個都得到不同的響應,那麼您的問題比您的 httpd.conf 設置更大。
編輯1:
對,所以,到目前為止一切都很好。您打開了 80 埠並且可以訪問網路,因此下一個工作是確定 httpd.conf 文件中需要什麼。
您肯定會希望從偵聽埠 80 上的任何傳入流量開始,將該行更改為
Listen 80
接下來,您還想告訴我們重啟 httpd 時發生的任何有趣的事情:
service httpd restart
在您的日誌文件中找到
/var/log/httpd/error_log
。當您在另一個控制台視窗中執行諸如重新啟動 httpd 之類的操作時,您可以看到此日誌增長,tail
例如:tail /var/log/httpd/error_log
如果您在上述問題中發布日誌中的任何相關內容作為編輯,這將有助於我們診斷問題。