下面分 Linux/Unix 和 Windows 两种情况,系统说明 Apache 的权限设置,这是运维和网站安全中最常见的问题之一。
✅ Apache 是以某个系统用户身份运行的
✅ 网站目录/文件权限要与该用户匹配
✅ 最小权限原则:能读就不给写,能写就不给执行
常见发行版:
| 系统 | 用户 | 组 |
|---|---|---|
| CentOS / RHEL | apache |
apache |
| Ubuntu / Debian | www-data |
www-data |
查看方式:
ps aux | grep apache
# 或
ps aux | grep www-data
或查看配置:
grep -R "User\|Group" /etc/httpd/
# CentOS
grep -R "User\|Group" /etc/apache2/
# Ubuntu
假设网站目录:
/var/www/html
# 目录权限
chmod 755 /var/www/html
# 文件权限
chmod 644 /var/www/html/*
chown -R www-data:www-data /var/www/html
# Ubuntu
chown -R apache:apache /var/www/html
# CentOS
例如:
/var/www/html/uploads
chmod 755 uploads
chown www-data:www-data uploads
⚠️ 不要直接 777
chmod 777 uploads ❌ 不安全
✅ 正确做法:
chmod 755 uploads
chown www-data uploads
Apache 配置中:
<Directory /var/www/html/uploads>
php_flag engine off
</Directory>
或在 .htaccess:
php_flag engine off
chmod 644 /etc/httpd/conf/httpd.conf
# 或
chmod 644 /etc/apache2/apache2.conf
⚠️ 不要给 777
如果 权限看起来对,但 Apache 还是 403:
getenforce
setenforce 0
chcon -R -t httpd_sys_content_t /var/www/html
可写目录:
chcon -R -t httpd_sys_rw_content_t /var/www/html/uploads
SYSTEMAdministrator右键目录 → 属性 → 安全:
✅ 给 Apache 运行用户:
✅ 上传目录额外给:
❌ 不要给 Everyone 完全控制
原因:
排查:
ls -ld /var/www/html
原因:
.htaccess 权限错误| 场景 | 推荐权限 |
|---|---|
| 普通网站目录 | 755 |
| 普通文件 | 644 |
| 上传目录 | 755 + Apache 属主 |
| 配置文件 | 644 |
| 禁止 PHP 执行 | .htaccess |
如果你愿意,可以告诉我:
我可以 直接给你一套精确命令。