在 CentOS 上配置 Apache(通常是 httpd 服务)的“权限”,一般涉及文件/目录权限、SELinux、Apache 配置(虚拟主机/目录访问) 三个方面。下面按常见场景说明。
/var/www/html
或自定义:
/var/www/example.com
chown -R apache:apache /var/www/example.com
chmod -R 755 /var/www/example.com
说明:
apache 是 CentOS 中 Apache 的运行用户755644编辑 Apache 配置或虚拟主机:
vim /etc/httpd/conf/httpd.conf
或
vim /etc/httpd/conf.d/example.conf
示例:
<Directory "/var/www/example.com">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
说明:
Require all granted:允许所有访问AllowOverride All:允许 .htaccessOptions -Indexes:禁止目录浏览(更安全)修改后重启:
systemctl restart httpd
CentOS 默认开启 SELinux,这是最常见“403 或打不开”的原因。
getenforce
semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"
restorecon -Rv /var/www/example.com
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/example.com/uploads(/.*)?"
restorecon -Rv /var/www/example.com/uploads
setsebool -P httpd_can_network_connect on
setsebool -P httpd_enable_homedirs on
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Require all grantedapachehttpd_sys_rw_content_t<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com
<Directory "/var/www/example.com">
Options -Indexes
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
如果你能说明:
我可以给你更精确的配置。