我正在运行带有 Apache 2.4 和 PHP 5.6.27 的 Fedora 23。 Apache 和 PHP 都是从标准 Fedora 存储库安装的。
我的问题是,尽管Require all granted
在我的网站的虚拟主机配置中进行了设置,但在尝试浏览我的网站(以及我的浏览器中的 a)时,我仍然收到以下错误403 Forbidden
:
AH01630:客户端被服务器配置拒绝:/home/kevin/appsdev/mywebapp/phpinfo.php
这是我的虚拟主机配置:
<VirtualHost 172.16.3.52:80>
ServerName localdev.mywebapp.net
DocumentRoot /home/kevin/appsdev/mywebapp
<Directory /home/kevin/appsdev/mywebapp>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
上述配置被附加到 Apache 附带的开箱即用配置文件的末尾httpd.conf
。
Apache 以用户身份运行apache
。
我还将所有权设置为/home/kevin/appsdev/mywebapp
:
chown -R apache:apache /home/kevin/appsdev/mywebapp
我的权限为:
chmod -R 755 /home/kevin/appsdev/mywebapp
我什至尝试(相当顽皮地)改变:
<Directory />
AllowOverride none
Require all granted ## default is: Require all denied
</Directory>
我还禁用了selinux。
.htaccess
网站中没有文件。
我已经重新启动了 apache,但浏览器中仍然出现AH01630: client denied by server configuration..
错误和 a 。403 Forbidden
跑步httpd -t
告诉我Syntax OK
,所以没有什么不好的。
我做错了什么,我有点困惑?
答案1
运行网络服务器的用户(apache
默认情况下)必须能够打开该文件。这意味着所有的路径必须可以访问它。我看到,您正在使用您的 home dir /home/kevin
。这些目录仅针对用户和用户组(例如0750
)进行了正确设置,因此 apache 无法访问那里。
您可以允许使用 访问其中的文件和目录chmod o+x /home/kevin
,但任何人都可以读取您的主目录(如果他或她知道正确的路径)。更好的解决方案是不使用主目录并将文件放入/var/www/
or/srv/
并为 apache 和您的用户提供正确的权限。
无论如何,请始终将错误日志的相应部分附加到您的问题中。应该有更多有关该问题的信息。