Apache在mac 10.10上拥有权限

时间:2014-10-23 20:37:13

标签: macos apache osx-yosemite

无法获取apache来访问PHP项目的/Users/username/Documents

httpd.conf

User admin
Group staff

username.conf

AllowOverride All
Options Indexes MultiViews
Options +FollowSymlinks
Require all granted

Folder permission

drwxr-xr-x /Users
drwxr-xr-x+ /Users/kristiannissen
drwx------+ /Users/kristiannissen/Documents

当我访问我的项目URL时,我在apache错误日志

中得到了这个
[Thu Oct 23 21:25:58.528515 2014] [core:error] [pid 1887] (13)Permission denied: [client 127.0.0.1:52157] AH00035: access to / denied (filesystem path '/Users/kristiannissen/Documents') because search permissions are missing on a component of the path
[Thu Oct 23 21:27:45.287472 2014] [mpm_prefork:notice] [pid 1882] AH00169: caught SIGTERM, shutting down

我按照http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/的指南进行了部分操作,但它仍无效。

在升级到os 10.10之前它已经完美运行了,现在localhost不再显示来自apache的“它正常工作”。

2 个答案:

答案 0 :(得分:0)

来自链接。你有文件/etc/apache2/users/kristiannissen.conf吗?

并且该文件包含

<Directory "/Users/kristiannissen/Sites/">
AllowOverride All
Options Indexes MultiViews
Options +FollowSymLinks
Require all granted
</Directory>

/etc/apache2/httpd.conf中有本节

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

哪些阻止访问/您需要专门允许您想要的内容。因为它是apache 2.4,你需要使用Require语法而不是Allow语法,但是如上所示添加kristiannissen.conf文件并重新启动apache应该修复它。

答案 1 :(得分:0)

对于那些因 json AJAX请求而出现Forbidden(403)错误的人,例如在jQuery中:

$.ajax({
    type: 'json',
    // ...
});

在apache的 username.conf 文件中:

# replace 'username' with your actual username
/private/etc/apache2/users/username.conf

如果你有:

<LimitExcept GET POST OPTIONS>
    Require all denied
</LimitExcept>

将其更改为:

<LimitExcept GET POST OPTIONS>
    Require all granted
</LimitExcept>

这对我有用,希望它有所帮助。