在 Ubuntu 上设置 PHP 相关权限,通常涉及 Web 服务器用户(www-data)、项目目录权限 和 PHP 自身配置。下面按常见场景说明。
Ubuntu 下通常:
www-datawww-data查看 PHP-FPM 用户:
ps aux | grep php-fpm
或
grep user /etc/php/*/fpm/pool.d/www.conf
假设项目目录:
/var/www/html/project
推荐方式(安全且实用):
sudo chown -R www-data:www-data /var/www/html/project
如果你也要用 FTP/SSH 登录修改:
sudo chown -R youruser:www-data /var/www/html/project
# 目录 755
sudo find /var/www/html/project -type d -exec chmod 755 {} \;
# 文件 644
sudo find /var/www/html/project -type f -exec chmod 644 {} \;
例如:
storage/
cache/
uploads/
sudo chmod -R 775 storage
sudo chown -R www-data:www-data storage
如果 PHP 上传失败:
sudo chown -R www-data:www-data /var/www/html/project/uploads
sudo chmod -R 775 /var/www/html/project/uploads
并确保:
upload_max_filesize = 20M
post_max_size = 20M
在:
/etc/php/*/fpm/php.ini
如必须:
sudo visudo
添加:
www-data ALL=(ALL) NOPASSWD: /usr/bin/php
Ubuntu 默认 不启用 SELinux,如遇权限问题多为 chmod/chown 问题。
✅ 不要 777
✅ 不要 chmod -R 777
✅ 只给需要写的目录写权限
sudo chown -R www-data:www-data /var/www/html/laravel
sudo chmod -R 755 /var/www/html/laravel
sudo chmod -R 775 /var/www/html/laravel/storage
sudo chmod -R 775 /var/www/html/laravel/bootstrap/cache
如果你能说明:
我可以给你更精确的命令。