2015-10-09 142 views
12

我剛安裝在我的MacBook Pro「El capitan」中,我無法鍵入任何設置在vhost中的主機。在優勝美地之前,一切都很完美。當我輸入我的虛擬主機之一,我得到:安裝OS X El Capitan之後,Apache無法正常工作

403「紫禁城您沒有權限訪問/在此服務器上。」

我做了什麼?

/etc/apache2/httpd.conf 和uncoment此行:

Include /private/etc/apache2/extra/httpd-vhosts.conf 

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so 

/etc/apache2/extra/httpd-vhosts.conf是這是自很久以前,在優勝美地工作之前相同的文件,所以我沒有修改。

要在優勝美地安裝所有東西,我使用自制軟件。

與「El capitan」有關的另一個問題,在我能夠輸入http://localhost/~myuser/之前,我可以訪問/Users/myuser/Sites中的任何文件夾,現在我收到此消息:404 not found

我希望得到一些幫助,我不是服務器的專家,我很難設置它,並且非常煩人,因爲在操作系統出現新的升級時會浪費很多時間。

回答

9

我經歷了升級到埃爾卡皮坦行

Include /private/etc/apache2/extra/httpd-userdir.conf 

/private/etc/apache2/httpd.conf 

後再次評價。取消註釋並重新啓動apache後,再次運行正常。

+6

除了上面,我做了一個diff-merge在'/ private/etc/apache2/httpd.conf'和'/ private/etc/apache2/httpd.conf〜previous'上恢復我的升級前設置。 – Justin

+0

我也遇到了完全相同的問題。我已取消註釋行並重新啓動apache,但問題仍未解決。 – abhishek

+0

@abhishek,這解決了我的問題:http://tomjbward.co.uk/symfony-on-osx-el-capitan/。我只是做了第2步。 – Munir

22

我有同樣的麻煩。 鍵入以下命令行,你就會有個錯誤的阿帕奇:

apachectl configtest 

如果你有這樣的錯誤:

AH00526: Syntax error on line 20 of /private/etc/apache2/extra/httpd-mpm.conf: Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration. 

所以這個鏈接可以幫助:https://apple.stackexchange.com/questions/211015/el-capitan-apache-error-message-ah00526

+0

'apachectl configtest'有助於DocumentRoot不存在(這可能導致權限消息)。 –

3

我已經合併爲兩個版本(httpd.confhttp.conf~previous),之後我發現v主機不再工作。 禁用規則19 #NameVirtualHost *:80/private/etc/apache2/extra/httpd-vhosts.conf後,一切都再次合作!

+0

謝謝JVD!像魅力一樣工作。我得到了禁止,直到我做到了。我相信(最終)它是我的DocumentRoot設置。 –

25

升級過程中保留了舊的httpd.conf的副本。除非你過時了,否則用舊的文件覆蓋新文件。請將新的副本,以防萬一......

sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.after-update 
sudo mv /etc/apache2/httpd.conf.pre-update /etc/apache2/httpd.conf 
sudo apachectl restart 
+0

它對我來說很好 – rajakvk

+0

像一個魅力工作 – HaCos

+0

讓我的一天! :3 – tomzi

0

如一些人所提到的問題是,升級到埃爾卡皮坦備份你以前的httpd.conf文件並重新命名它的httpd.conf〜以前的和給你一個新的httpd.conf。你需要做的是通過這些文件來解決你的問題:

使用nano或其他編輯器打開httpd。CONF〜以前和查找這些2線:

DocumentRoot "/Users/my-machine-name/Prev-Localhost-Path 
<Directory "/Users/my-machine-name/Prev-Localhost_path"> 

複製它們,然後用納米打開httpd.conf文件,查找這兩條線:

DocumentRoot "/Library/WebServer/Documents" 
<Directory "/Library/WebServer/Documents"> 

它們註釋掉通過輸入「#」字符放在每個字符的前面,然後在它們的下面粘貼從原始文件複製的兩行。保存該文件並退出。

之後,您需要重新啓動。直到我做出這些更改並重新啓動後,我的設置纔會起作用。但也許DSG建議重新啓動apache就足夠了:

sudo apachectl restart 
2

LockFile是Apache≤2.2的指令。 El Capitan配備了Apache版本2.4。所以,你需要禁用和LockFile

首先,只是要確定Apache是​​停止:

sudo apachectl stop 

然後編輯您的httpd-mpm.conf:

評論此行

# 
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. 
# 
<IfModule !mpm_winnt_module> 
<IfModule !mpm_netware_module> 
    LockFile "/private/var/log/apache2/accept.lock" 
</IfModule> 
</IfModule> 

啓動Apache sudo apachectl start和這就是全部

相關問題