升級後 Apache 在 OS X Mountain Lion 上無回應

升級後 Apache 在 OS X Mountain Lion 上無回應

從 Leopard 升級後,我在 Mountain Lion 中的 MacBook 上設定 Apache 時遇到問題。我嘗試跟隨這些說明。我LoadModule php5_module libexec/apache2/libphp5.so在 中取消註釋了該行/etc/apache2/httpd.conf,我有一個包含內容的my_user_name.conf文件:/etc/apache2/users

<Directory "/Users/sarah/Sites/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

我有一個index.html 文件/Users/my_user_name/Sites,chmodded 為644,由my_user_name.

  • 但是,當我轉到 時http://localhost/~my_user_name,我仍然得到 403 Forbidden。
  • /Library/WebServer/Documents/phpinfo.php<?php phpinfo(); ?>它創建的,當我在瀏覽器中查看它時,我只看到原始程式碼。
  • 當我轉到 時http://localhost,我看到“它有效!”。然而,在我這樣做之後sudo apachectl stop,如果我訪問http://localhost,我仍然看到“它有效!”——如果我停止了 Apache,那不是應該無法訪問嗎?

看起來好像我的後面還有其他一些網頁伺服器localhost,這就是為什麼我對httpd.conf和 的更改my_user_name.conf沒有任何區別。有任何想法嗎?

答案1

好的,我們已經確定您正在運行多個apache伺服器。

我建議做的第一件事是重新啟動——這通常不是我推薦的解決方案,但如果您的系統與半死不活的 Apache 處於某種不一致的狀態,這將解決它並讓您回到一個狀態普通工具可用於啟動/停止Web 伺服器。

如果這無法讓您進入工作狀態,您必須確定額外的 httpd 來自哪裡(您可以使用lsof(作為 root)來確定httpd.conf它正在讀取哪個文件,其中可能包含一些有關安裝它的內容以及如何安裝的線索您可以禁用或重新配置它)

答案2

我猜額外的網頁伺服器是 OS X 中內建的。但是,您仍然可以透過命令列對其進行管理。 OS X 使用 launchd 啟動並維護內建的 Web 伺服器,因此您可以使用launchctl它來管理它。首先,檢查 launchd 是否正在執行 apache:

$ sudo launchctl list | grep apache
1526    -   org.apache.httpd

結果告訴我,launchd 已啟動一個帶有 org.apache.httpd 標籤的項目,並且它以進程 ID 1526 運行。

如果是系統提供的 launchd 項,您可以使用以下命令將其關閉:

$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

請注意,這-w會使卸載永久化(如果沒有它,該項目將在下次重新啟動時重新加載)。

相關內容