Apache无权访问Web根目录

时间:2017-03-13 18:16:54

标签: php macos apache .htaccess web

首先,我想为我糟糕的英语道歉。 所以,我在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中。

希望你能帮助我。谢谢。

1 个答案:

答案 0 :(得分:0)

所以,似乎我已经解决了这个问题。 Apache在Web根目录的父目录中查找htaccess文件,并且无权读取该目录。所以我已将此目录添加到组_www并为其授予读取权限。它帮助了我。可能解决方案不是最好的,但它有所帮助。