2014-11-21 148 views
2

我最近升級到MAC OS X Yosemite,並且我的虛擬主機的apache配置無法正常工作。我升級的PHP通過@raoulsson(https://superuser.com/questions/827937/apache-problems-after-upgrading-to-yosemite)的建議:優勝美地升級後損壞的Apache虛擬主機

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6 

而且還編輯/etc/apache2/extra/httpd-vhosts.conf:

<VirtualHost *:80> 
ServerName test.local 
DocumentRoot "/Users/my-name/www/test" 

<Directory "/Users/my-name/www/test> 
    AllowOverride All 
    #Order allow,deny 
    #Allow from all 
    Require all granted 

    RewriteEngine on 

    # Don't rewrite files or directories 
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule^- [L] 

    # Rewrite everything else to index.html to allow html5 state links 
    RewriteRule^index.html [L] 
</Directory> 

<IfModule dir_module> 
    DirectoryIndex index.html 
</IfModule> 

<Files ".ht*"> 
    Order deny,allow 
    Deny from all 
</Files> 
</VirtualHost> 

現在導航到我的虛擬主機之一(http://test.local)給我的信息「It Works」而不是顯示我的網站。任何人有想到我失蹤的想法?

編輯: 所以事實證明,問題是在/etc/apache2/httpd.conf。我必須重新啓用虛擬主機才能使其工作。由於我在上面的虛擬主機中使用重寫,我還必須加載重寫引擎。

LoadModule alias_module libexec/apache2/mod_alias.so 
LoadModule rewrite_module libexec/apache2/mod_rewrite.so 

# Virtual hosts 
Include /private/etc/apache2/extra/httpd-vhosts.conf 

不知道是否需要alias_module,但我的配置現在正在工作,所以我會放在那。

回答

5

首先,您需要刪除某些行中的「#」。特別是vhost.conf文件在默認情況下不會被導入。

,如:

#LoadModule php5_module libexec/apache2/libphp5.so 
#LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so 
#Include /private/etc/apache2/extra/httpd-vhosts.conf 

LoadModule php5_module libexec/apache2/libphp5.so 
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so 
Include /private/etc/apache2/extra/httpd-vhosts.conf 

,並添加其他一些 '#'

<Directory /> 
    AllowOverride none 
    Require all denied 
</Directory> 

<Directory /> 
    #AllowOverride none 
    #Require all denied 
</Directory> 

根據http://mallinson.ca/osx-web-development/

+0

謝謝,你剛剛救了我一個小時的faffing :) – phil 2015-04-03 02:23:15

3

OS X 10.10 Yosemite在Mavericks中配備了Apache 2.4而不是Apache 2.2。
在配置上的主要區別是,你必須更換...

Order allow,deny 
Allow from all 

...與...

Require all granted 

見Apache的文檔手冊Upgrading to 2.4 from 2.2瞭解更多詳情。

UPDATE:
請注意,升級OS X後,你通常會發現你的舊的配置文件進行備份,通過優勝美地寫入新的旁邊。它們被標記爲例如httpd.conf.pre-update和/或httpd.conf〜以前的並且可以在與新配置相同的路徑中找到(例如在/private/etc/apache2)。

+0

感謝有關更新前的說明,不知道:) – phil 2015-04-03 02:23:45