Apache2 权限问题通常表现为 403 Forbidden、无法访问文件、上传失败、无法写日志 等。下面按「常见场景 → 解决方法」系统说明,适合 Ubuntu / Debian / CentOS 等常见系统。
Apache 通常以 www-data(Ubuntu/Debian) 或 apache(CentOS) 用户运行:
ps aux | grep apache
网页目录权限要满足:
原因:
解决:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
检查 Apache 配置:
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
修改后重启:
sudo systemctl restart apache2
原因:
解决:
sudo chown -R www-data:www-data /var/www/html/uploads
sudo chmod -R 775 /var/www/html/uploads
⚠️ 不建议 777,有安全风险
原因:
解决:
sudo nano /etc/apache2/apache2.conf
<Directory /var/www/>
AllowOverride All
</Directory>
启用 rewrite:
sudo a2enmod rewrite
sudo systemctl restart apache2
即使权限正确也 403
检查:
getenforce
临时关闭测试:
sudo setenforce 0
正确做法(推荐):
sudo chcon -R -t httpd_sys_content_t /var/www/html
sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/uploads
sudo chown -R www-data:adm /var/log/apache2
sudo chmod -R 755 /var/log/apache2
✅ 网站目录属主为 www-data
✅ 目录权限 755,文件 644
✅ 只给必要目录写权限
✅ 禁用目录浏览(生产环境)
✅ 使用 sudo -u www-data 测试访问
sudo -u www-data cat /var/www/html/index.php
tail -f /var/log/apache2/error.log
namei -l /var/www/html/index.php
如果你能告诉我:
我可以给你精确的一行命令解决方案。