首先,我想为我糟糕的英语道歉。 所以,我在MacOS Sierra上安装了Apache 2.4.23。一切都很好,但在某些时候它停止了良好的工作。当我尝试在我的Web服务器上打开某个文件或目录时,它会抛出一个错误:
Forbidden
You don't have permission to access / on this server.
Server unable to read htaccess file, denying access to be safe
虽然它必须显示页面的内容。它发生在我的所有文件和目录中。我已经将它们添加到了组织_www,在Apache运行中,并且使chmod -R 775但它没有帮助。也没有帮助chmod -R 777.可能是我和其他用户或组一起运行Apache?我想,不,因为在配置设置_www作为用户和组也。这就是“ps aux | grep httpd”所说的:
_www 9877 0,0 0,0 2480792 2040 ?? S 6:43 0:00.01 /usr/sbin/httpd -D FOREGROUND
_www 9864 0,0 0,0 2480792 1612 ?? S 6:43 0:00.00 /usr/sbin/httpd -D FOREGROUND
_www 9863 0,0 0,0 2480792 2020 ?? S 6:43 0:00.01 /usr/sbin/httpd -D FOREGROUND
_www 9862 0,0 0,0 2480792 1628 ?? S 6:43 0:00.00 /usr/sbin/httpd -D FOREGROUND
_www 222 0,0 0,0 2480792 1744 ?? S сб08 0:00.02 /usr/sbin/httpd -D FOREGROUND
root 90 0,0 0,1 2481048 7808 ?? Ss сб08 0:01.40 /usr/sbin/httpd -D FOREGROUND
alankabisov 10122 0,0 0,0 2423384 240 s000 R+ 6:58 0:00.00 grep httpd
我们可以看到它在_www下运行。这时我有两个问题: 1)为什么有一些不同的httpd实例? 2)为什么一个人在根下?正如我thnik,因为我通过“sudo apachectl start”运行它
这是我的Apache vhosts配置:
<Directory "/Users/alankabisov/Sites">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
<Virtualhost *:80>
VirtualDocumentRoot "/Users/alankabisov/Sites/%1/"
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</Virtualhost>
所以我可以通过* .dev域访问我的网站。例如,abc.dev指向web root的abc文件夹。
我的Apache错误日志中也有一些奇怪的错误:
[Mon Mar 13 18:45:27.113487 2017] [core:crit] [pid 9877] (13)Permission denied: [client 127.0.0.1:58513] AH00529: /Users/alankabisov/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/alankabisov/' is executable, referer: http://php1.dev/
[Mon Mar 13 18:45:27.297229 2017] [core:crit] [pid 9877] (13)Permission denied: [client 127.0.0.1:58513] AH00529: /Users/alankabisov/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/alankabisov/' is executable
[Mon Mar 13 18:45:27.359012 2017] [core:crit] [pid 9877] (13)Permission denied: [client 127.0.0.1:58513] AH00529: /Users/alankabisov/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/alankabisov/' is executable, referer: http://php1.dev/
我发现奇怪的是Apache抱怨读取位于/ Users / alankabisov /目录中的htaccess文件的问题,而不是在我的vhosts conf上设置的/ Users / alankabisov / Sites中。
希望你能帮助我。谢谢。答案 0 :(得分:0)
所以,似乎我已经解决了这个问题。 Apache在Web根目录的父目录中查找htaccess文件,并且无权读取该目录。所以我已将此目录添加到组_www并为其授予读取权限。它帮助了我。可能解决方案不是最好的,但它有所帮助。