在 Ubuntu 上设置 PHP 权限,通常是指让 PHP(通过 PHP-FPM 或 Apache mod_php)能够正确 读取 / 写入 Web 目录,同时避免因为权限过宽导致安全问题。下面按最常见场景给你一套标准做法。
ps aux | grep php-fpm
一般用户是:
www-data配置文件位置:
/etc/php/8.x/fpm/pool.d/www.conf
关键配置:
user = www-data
group = www-data
✅ 这是最常见情况
PHP 以 Apache 用户运行:
www-data假设你的网站目录是:
/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 {} \;
✅ 说明:
假设有上传目录:
/var/www/html/uploads
sudo chown -R www-data:www-data /var/www/html/uploads
sudo chmod -R 775 /var/www/html/uploads
如果还需要某个开发用户访问:
sudo usermod -aG www-data 你的用户名
然后重新登录或:
newgrp www-data
chmod 777 -R /var/www/html
❌ 会导致:
检查:
ls -ld /var/www/html
ls -ld /var/www/html/xxx
sudo systemctl status php8.x-fpm
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/php8.x-fpm.log
| 项目 | 是否正确 |
|---|---|
| PHP 运行用户 | www-data |
| Web 目录 owner | www-data |
| 目录权限 | 755 |
| 文件权限 | 644 |
| 可写目录 | 775 |
| 是否 777 | ❌ |
你可以直接贴出:
ls -l /var/www
php -v
nginx -v 或 apache2 -v