在 Ubuntu 上给 PHP(通常是 PHP-FPM / Apache + PHP)设置权限,核心问题是 “让 Web 服务器能读/写文件,同时系统安全”。下面按常见场景说明。
www-data 用户运行www-datawww-dataps aux | grep php-fpm
一般也是:
www-datawww-data假设网站目录是:
/var/www/html
sudo chown -R www-data:www-data /var/www/html
# 目录 755
find /var/www/html -type d -exec chmod 755 {} \;
# 文件 644
find /var/www/html -type f -exec chmod 644 {} \;
✅ 这是 最安全、最标准 的权限设置
例如:
/var/www/html/storage
/var/www/html/uploads
sudo chown -R www-data:www-data /var/www/html/storage
sudo chmod -R 775 /var/www/html/storage
⚠️ 不要用 777,非常不安全
如果你用自己账号(如 ubuntu)改代码:
sudo usermod -aG www-data ubuntu
注销重登后:
sudo chown -R ubuntu:www-data /var/www/html
sudo chmod -R 775 /var/www/html
PHP 文件不需要可执行权限:
chmod 644 index.php
sudo chown -R www-data:www-data uploads
sudo chmod -R 775 uploads
看错误日志:
# Nginx
/var/log/nginx/error.log
# Apache
/var/log/apache2/error.log
# PHP-FPM
/var/log/php*-fpm.log
Web 目录:755 / 644
可写目录:775 + www-data
永远不要 777
如果你告诉我:
我可以给你更精确的命令。