在 Ubuntu 上调整 Apache 的权限,通常包含以下几个方面,下面按常见场景给你说明:
Ubuntu 下 Apache 默认运行用户是:
www-data:www-data
查看:
ps aux | grep apache2
假设你的网站目录是 /var/www/html
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;
例如 uploads 或 storage 目录:
sudo chown -R www-data:www-data /var/www/html/uploads
sudo chmod -R 775 /var/www/html/uploads
⚠️ 不建议整个网站设为 777
Ubuntu 默认 不使用 SELinux,而是 AppArmor
查看状态:
sudo aa-status
一般不需要改,除非你自定义了策略。
编辑虚拟主机或 /etc/apache2/apache2.conf
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
修改后重启:
sudo systemctl restart apache2
确保:
AllowOverride All
并启用模块(一般默认已启用):
sudo a2enmod rewrite
sudo systemctl restart apache2
sudo a2enmod userdir
sudo systemctl restart apache2
目录权限:
chmod 755 ~
chmod 755 ~/public_html
sudo tail -f /var/log/apache2/error.log
| 问题 | 原因 |
|---|---|
| 403 Forbidden | 目录无权限 / Require all denied |
| 500 错误 | .htaccess 语法错 |
| 文件无法上传 | 目录无写权限 |
| 页面打不开 | DocumentRoot 不对 |
如果你能告诉我:
我可以给你更精确的权限方案。