我刚从Yosemite升级到El Capitan,但遗憾的是忘了复制我的旧httpd.conf,现在我需要再次配置它的所有设置。
我已将documentmentroot更改为上一个/ users / admin / www,并且还配置为释放对此文件夹的访问权限:
<Directory "/users/admin/www">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
重新启动Apache,但即使这样,我在尝试访问127.0.0.1时也会收到“Forbidden”错误。
我在这里缺少什么?
答案 0 :(得分:72)
执行以下操作:
执行命令
cd /etc/apache2/
sudo mv httpd.conf httpd.conf.OLD
sudo mv httpd.conf~previous httpd.conf
sudo apachectl restart
在这个问题上花了3个小时后 - 这个为我工作!
答案 1 :(得分:18)
我刚刚发现旧的.conf文件在El Captain更新期间保存在此文件夹中:
/private/etc/apache2/httpd.conf.pre-update
所以我只是将旧的定义复制到新的定义中:)
答案 2 :(得分:9)
您可以导航至/private/etc/apache2/
然后diff httpd.conf httpd.conf.pre-update
,以查看旧配置文件与已添加的新配置文件之间的差异。
对我来说,有很多LoadModules
行被注释掉了,我的apache用户/组已经更改回_www
答案 3 :(得分:5)
我不熟悉Apache 2.4中的变化,所以这个真的让我困了大约30分钟。我刚刚从Mavericks升级到El Capitan(Apache 2.2到2.4),我无法加载我的个人站点目录(http://localhost/~ {username}。我一直得到“禁止”。经过一番研究,我发现我需要修改/etc/apache2/users/{username}.conf以添加“需要所有授权”。由于我从未升级到Yosemite(也使用Apache 2.4),我从未偶然发现过这个。
我希望这些信息有助于某人
答案 4 :(得分:4)
更新目录访问控制对我有用:
在此示例中,允许所有请求。
2.2配置:
Order allow,deny Allow from all
2.4配置:
Require all granted
来源:http://httpd.apache.org/docs/trunk/upgrading.html(在访问控制下)
注意:我将自定义设置分别保留在/private/etc/apache2/other/
下。
答案 5 :(得分:3)
这也有助于(在完成其他所有事情之后):
答案 6 :(得分:2)
就像@delphirules所说,你可以像这样复制旧的httpd.conf文件:
sudo cp /etc/apache2/httpd.conf.pre-update /etc/apache2/httpd.conf
我在整天连接到本地主机时遇到了问题,但终于找到了这个问题:https://mallinson.ca/web-development-with-el-capitan/
只需运行复制命令,然后执行sudo apachectl restart
我还在恢复模式下禁用了SIP(系统完整性保护)。我不知道它是否真的做了什么..你可以在这里找到这些说明:https://forums.developer.apple.com/thread/3981
答案 7 :(得分:0)
在升级到El Capitan之后,在用户级别启用自己以便为站点提供服务后,尝试访问本地站点目录中的页面时,我遇到了类似的问题。问题是Apache将httpd.conf文件重置为其默认值,这会禁用用户文件夹以从中加载文件。所以http://localhost加载正常,但http://localhost/~username/index.html不会加载。这是修复:
支持&#34;新&#34;已创建的配置文件:
sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf_capitan
恢复&#34; old&#34;重命名的配置文件:
sudo cp /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
答案 8 :(得分:0)
如果您对DocumentRoot目录中的某些项目有符号链接,升级到El Capitan后,您可以获得这些项目的403,就像我一样。 您将需要以下内容才能使它们再次运行:
1)您的apache用户(默认情况下为_www)应具有对您所链接目录的目录的执行访问权限。 在我的apache DocumentRoot案例中,我有:
MyProject -> /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject
由于某种原因访问设置
/Users/Me/Documents/Aptana Studio 3 Workspace/MyProject
是
-rw------- 1 Me staff
我的猜测是在OS x升级期间设置的。
因此,sudo chmod 755 Aptana\ Studio\ 3\ Workspace
错误解决后。
2)由于升级也会更改httpd.conf,请确保将其用于DocumentRoot目录,或者如上所述从备份httpd.conf恢复:
Options Indexes FollowSymLinks
如果您从Mavericks或更早版本的OS x升级并恢复了备份httpd.conf,那么您应该像jcfranko所说的那样,将apache 2.2设置替换为请求权限:
Require all granted
答案 9 :(得分:0)
在/Users/{user name}/Sites
文件夹
ln -s /Path/To/Target/Files /Users/{user name}/Sites/{name}