Apache2+PHP-FPM池配置后目录权限引发403禁止访问问题咨询
问题分析与解决方案:Apache 403错误当站点目录归用户私有组所有
你遇到的403错误是Apache进程用户(默认是www-data)没有足够权限访问站点目录导致的,属于正常权限限制带来的问题,并非配置错误,具体原因如下:
- 当你将
hippolyte目录的组改为hthomas后,目录权限为drwxrwxr--:- 所有者
hthomas:拥有读、写、执行权限 - 组
hthomas:拥有读、写、执行权限 - 其他用户(含
www-data):仅拥有读取目录列表的权限,没有进入目录的执行权限(x)
- 所有者
- Apache以
www-data用户运行,要访问目录内的文件,必须先拥有目录的执行权限才能进入目录,仅读权限不足以让Apache读取目录内的文件,因此返回403禁止访问。
你的PHP-FPM配置是正确的——套接字所有者设为www-data确保Apache能正常与FPM通信,FPM进程以hthomas运行也能读取目录内容,问题出在Apache本身的目录访问权限上。
解决方案
方案1:给目录添加其他用户的执行权限
修改目录权限,让其他用户拥有进入目录的权限(适合开发环境):
chmod o+x /var/www/html/dev/hippolyte
若子目录也需要同步修改:
chmod -R o+x /var/www/html/dev/hippolyte
方案2:将www-data加入hthomas组
让Apache用户继承hthomas组的权限(更安全的权限隔离方案):
usermod -aG hthomas www-data
修改后重启Apache生效:
service apache2 restart
方案3:恢复原目录组配置
如果不需要严格的组隔离,直接改回原来的配置即可:
chown -R hthomas:www-data /var/www/html/dev/hippolyte
内容的提问来源于stack exchange,提问作者Bruno Desprez
相关产品推荐
相关产品推荐

