2014-11-21 109 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