在 CentOS 上配置 Apache(httpd)权限,通常涉及 Linux 文件权限、SELinux、Apache 用户/组 三个方面。下面按常见场景说明。
CentOS 中 Apache 默认用户和组是:
apache:apache
查看:
ps aux | grep httpd
或修改配置文件(一般不用改):
/etc/httpd/conf/httpd.conf
User apache
Group apache
假设网站目录为:
/var/www/html
chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html
说明:
755:目录可读、可执行(进入)644find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
例如:
/var/www/html/uploads
chown -R apache:apache /var/www/html/uploads
chmod -R 775 /var/www/html/uploads
⚠️ 不建议设为 777
CentOS 默认开启 SELinux,常常“权限明明对了但还是 403”。
getenforce
semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
restorecon -Rv /var/www/html
如果是可写目录:
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/uploads(/.*)?"
restorecon -Rv /var/www/html/uploads
setsebool -P httpd_can_network_connect on
<Directory "/var/www/html">
AllowOverride All
Require all granted
</Directory>
Options -Indexes
检查:
apacheRequire all granted 是否配置/var/log/httpd/error_log
setenforce 0
永久关闭需修改:
/etc/selinux/config
SELINUX=disabled
如果你能提供:
我可以给你更精确的配置命令。