從 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
會使卸載永久化(如果沒有它,該項目將在下次重新啟動時重新加載)。