昨天我升级到Yosemite,现在我的本地Web开发配置已不再适用。
我设法在/Users/user/public_html
下设置了一个用户目录,我可以通过localhost/~user/websitename
访问所有网站。没什么特别的,但我花了一段时间来配置。
查看apache目录,我看到许多文件被替换,保留备份。我尝试再次使用我的设置放回文件,但仍然无法正常工作。也许我错过了一些我不记得的文件。
这是httpd-userdir.conf:
# Settings for user home directories
#
# Required module: mod_userdir
#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received. Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir public_html
#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
RegisterUserSite customized-users
</IfModule>
<Directory "/Users/*/public_html/">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
</Directory>
然后在http.conf中我启用了一些模块:
Include /private/etc/apache2/extra/httpd-userdir.conf
LoadModule userdir_module libexec/apache2/mod_userdir.so
和此:
DocumentRoot&#34; / Users / user / public_html&#34;
Directory "/Users/user/public_html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks MultiViews
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride all
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
如果我只是尝试访问localhost
,它会显示消息&#34;它有效!&#34;。如果我转到localhost/user
根本没有加载,如果我尝试访问其中一个网站则相同。
我错过了任何文件吗?在apache日志中,它甚至不会显示任何错误。
答案 0 :(得分:18)
OS X 10.10 Yosemite在小牛队中使用Apache 2.4而不是Apache 2.2 配置的主要区别在于您必须替换...
Order allow,deny
Allow from all
...与...
Require all granted
有关详细信息,请参阅Apache文档手册Upgrading to 2.4 from 2.2。
<强>更新强>
请注意,升级OS X后,您通常会发现旧的配置文件作为Yosemite编写的新配置文件旁边的备份。它们被标记为例如 httpd.conf.pre-update 和/或 httpd.conf~previous ,可以在与新配置相同的路径中找到(例如在 / private /等/ apache2的)。
答案 1 :(得分:1)
在尝试解决此问题6小时后,我终于能够使其工作了。我编辑了httpd.conf,httpd-userdir.conf,httpd-vhosts.conf等无济于事。从yosemite配置中保留所有这些未编辑的文件,最终对我有用的是编辑位于/Library/Server/Web/Config/apache2/
的httpd_server_app.conf,方法是添加以下内容(对于每个站点),如下所示:
<Directory />
Options +FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>
<Directory "/Library/Server/Web/Data/Sites/Default/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/Library/Server/Web/Data/Sites/[OTHER SITE DIRECTORY]/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
&#13;
确保使用textedit编辑此文件,撤消自动插入倾斜引号,否则会收到unicode错误消息。
希望这有帮助!