首先我想为我糟糕的英语道歉。 我在 MacOS Sierra 上有 Apache 2.4.23。一切都运行良好,但在某些时候它不再运行良好。当我尝试打开网络服务器上的某些文件或目录时,它会抛出错误:
Forbidden
You don't have permission to access / on this server.
Server unable to read htaccess file, denying access to be safe
虽然它必须显示页面的内容。我的所有文件和目录都会发生这种情况。我已经将它们添加到 Apache 运行的组 _www 中,并制作了
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 下运行。此时我有两个问题:
sudo apachectl start
”运行它这是我的 Apache 虚拟主机配置:
<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 根目录中的 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 文件出现问题,但不在我的虚拟主机配置上设置的 /Users/alankabisov/Sites 中。
希望你能帮助我。谢谢。
所以,看来我已经解决了这个问题。 Apache 在 Web 根目录的父目录中查找 htaccess 文件,但无权读取该目录。因此,我已将此目录添加到组 _www 中,并为其授予读取权限。它帮助了我。也许解决方案不是最好的,但它有帮助。