Ubuntu

無法配置 httpd.conf

  • July 15, 2014

我對 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

如果您在上述問題中發布日誌中的任何相關內容作為編輯,這將有助於我們診斷問題。

引用自:https://serverfault.com/questions/612380