在 Ubuntu 上设置 PHP 相关权限,通常涉及到文件/目录权限、**PHP 运行用户(www-data)以及Web 服务器(Apache/Nginx)**的协作。下面按常见场景说明。
Ubuntu 下 Web 服务一般用 www-data 用户:
ps aux | grep apache
# 或
ps aux | grep nginx
通常你会看到:
www-data
假设网站目录是 /var/www/html:
sudo chown -R www-data:www-data /var/www/html
# 目录 755
sudo find /var/www/html -type d -exec chmod 755 {} \;
# 文件 644
sudo 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,有安全风险。
如果你用自己的用户开发:
sudo chown -R youruser:www-data /var/www/html
sudo chmod -R 775 /var/www/html
并把自己加入 www-data 组:
sudo usermod -aG www-data youruser
退出重新登录后生效。
查看 PHP-FPM 用户:
sudo nano /etc/php/*/fpm/pool.d/www.conf
确认:
user = www-data
group = www-data
修改后重启:
sudo systemctl restart php8.1-fpm
sudo systemctl restart apache2
sudo systemctl restart nginx
<?php
var_dump(is_writable('/var/www/html/storage'));
777644,目录 755如果你能告诉我:
Permission denied)我可以给你更精确的命令。