在 Ubuntu 下设置 PHP 相关权限,关键取决于你是跑哪种方式(Apache / Nginx + PHP-FPM),以及你要解决的是写文件、上传、执行还是访问权限。下面给你一套常见、标准、安全的做法。
mod_php 或 php-fpm)ps aux | grep apache
一般是:
www-datawww-dataps aux | grep php-fpm
通常也是:
www-datawww-data✅ 结论:在 Ubuntu 上,PHP 几乎默认就是 www-data
假设你的网站目录是:
/var/www/html
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
这样:
例如:
sudo chown -R www-data:www-data /var/www/html/uploads
sudo chmod -R 775 /var/www/html/uploads
或者更严格一点:
sudo chmod -R 755 /var/www/html/uploads
❌ 不建议直接
777,不安全
例如你用你的用户开发,又想 PHP 能写:
sudo usermod -aG www-data 你的用户名
sudo chown -R 你的用户名:www-data /var/www/html
sudo chmod -R 775 /var/www/html
然后重新登录或:
newgrp www-data
PHP 上传临时目录:
/var/www/html/tmp
或系统:
/tmp
检查:
php -i | grep upload_tmp_dir
确保 www-data 有写权限。
sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data runtime
sudo chmod -R 775 runtime
755ls -ld 目录
确认:
w 权限检查:
php -i | grep disable_functions
✅ 不要:
777root 跑 PHP✅ 推荐:
755644775www-data# 基本设置
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
# 可写目录
sudo chmod -R 775 /var/www/html/uploads
如果你愿意,可以告诉我:
我可以给你精确到命令级别的方案。