在 Debian 下设置 PHP 权限,通常要分清 Web 服务器用户、PHP 运行方式、文件目录权限 这三块。下面按常见场景说明。
PHP 以 www-data 用户运行。
ps aux | grep apache
# 或
ps aux | grep www-data
PHP 以 www-data(默认)或你配置的 pool 用户运行。
ps aux | grep php-fpm
✅ Debian 默认 Web 用户是:
www-data
假设网站目录:
/var/www/html
推荐方式(安全):
sudo chown -R www-data:www-data /var/www/html
或(开发环境):
sudo chown -R youruser: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/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,除非临时调试。
说明 PHP 用户无写权限。
解决:
sudo chown -R www-data:www-data 目录
sudo chmod -R 775 目录
php.ini 中:
open_basedir = /var/www/html
Debian 默认 不启用 SELinux,但可能有 AppArmor。
检查:
sudo aa-status
如不影响,一般无需处理。
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo chmod 664 /var/www/html/wp-config.php
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 775 storage bootstrap/cache
# 查看当前 PHP 用户
php -r 'echo exec("whoami");'
# 查看文件权限
ls -l /var/www/html
如果你能告诉我:
我可以给你一套精准权限方案。