You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache跨虚拟主机PHP读写目录权限问题求助

解决Apache跨虚拟主机目录访问的权限拒绝问题

1. 确认Apache运行用户与目录权限匹配

Apache一般以www-data(Debian/Ubuntu系)或apache(RHEL/CentOS系)用户运行,先查清楚当前Apache的运行用户:

ps aux | grep apache | head -1

然后确保目标目录的所属组包含Apache运行用户(以www-data为例):

chown -R :www-data /home/storage/public_html/comp_folders/

另外要注意父目录的执行权限——目录访问需要从根到目标目录每一层都有x权限,补全权限:

chmod o+x /home/storage/
chmod o+x /home/storage/public_html/

2. 检查PHP的open_basedir限制

如果主主机的PHP配置里开了open_basedir,会限制PHP只能访问指定目录。先查看当前配置:

<?php phpinfo(); ?>

如果结果里没有包含/home/storage/public_html/comp_folders/,就在主主机的虚拟主机配置里添加:

php_admin_value open_basedir "/home/example/public_html/:/home/storage/public_html/comp_folders/"

改完重启Apache生效:

systemctl restart apache2

3. 排查SELinux限制(如果服务器启用了SELinux)

先看SELinux状态:

getenforce

如果显示Enforcing,临时关闭测试:

setenforce 0

如果问题消失,就添加永久规则允许Apache访问该目录:

setsebool -P httpd_read_user_content 1
semanage fcontext -a -t httpd_sys_content_t "/home/storage/public_html/comp_folders(/.*)?"
restorecon -Rv /home/storage/public_html/comp_folders/

4. 验证目录权限链完整性

用以下命令查看从根到目标目录的每一层权限:

namei -l /home/storage/public_html/comp_folders/

确保每一级目录的所有者/组包含Apache运行用户,且都有x执行权限。

内容的提问来源于stack exchange,提问作者Marcelo4k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:56:00