检查并设置文件/目录权限
apache或httpd)对网站文件和目录有访问权限:sudo chown -R apache:apache /path/to/website # 修改所有者和组
sudo chmod -R 755 /path/to/website # 设置目录权限(所有者可读写执行,其他用户可读执行)
sudo find /path/to/website -type f -exec chmod 644 {} \; # 设置文件权限(所有者可读写,其他用户可读)
处理SELinux限制(若启用)
sudo setenforce 0
/etc/selinux/config,将SELINUX=enforcing改为disabled,然后重启系统。semanage和restorecon命令配置SELinux上下文(推荐):sudo semanage fcontext -a -t httpd_sys_content_t "/path/to/website(/.*)?"
sudo restorecon -Rv /path/to/website
修改Apache配置文件
/etc/httpd/conf/httpd.conf或虚拟主机配置文件,确保:
User和Group指令设置为apache(或实际用户组):User apache
Group apache
<Directory>指令允许访问,例如:<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
重启Apache服务
sudo systemctl restart httpd
验证与日志排查
/var/log/httpd/error_log,定位具体权限问题。注意:修改配置后需重启服务生效,且建议通过sudo执行命令以避免权限不足。若需更细粒度控制,可使用ACL(访问控制列表)或.htaccess文件。