温馨提示×

ubuntu php-fpm如何设置权限

小樊
41
2026-10-21 22:28:24
栏目: 编程语言

在 Ubuntu 上配置 PHP-FPM 的权限,通常涉及以下几个方面:


一、PHP-FPM 运行用户与组

PHP-FPM 默认以独立用户运行(通常是 www-data)。

查看当前配置

sudo nano /etc/php/*/fpm/pool.d/www.conf

关键配置:

user = www-data
group = www-data

修改后需重启 PHP-FPM:

sudo systemctl restart php-fpm
# 或
sudo systemctl restart php8.1-fpm

二、网站目录权限设置(推荐做法)

1. 目录归属

假设网站目录是 /var/www/html:

sudo chown -R www-data:www-data /var/www/html

2. 目录与文件权限

# 目录 755
sudo find /var/www/html -type d -exec chmod 755 {} \;

# 文件 644
sudo find /var/www/html -type f -exec chmod 644 {} \;

三、开发环境(你本人也要写文件)

如果你是开发者,同时 PHP-FPM 是 www-data:

方式 1:把用户加入 www-data 组

sudo usermod -aG www-data $USER

然后:

sudo chown -R $USER:www-data /var/www/html
sudo chmod -R 775 /var/www/html

重新登录生效


四、上传 / 缓存目录权限(如 storage、uploads)

sudo chown -R www-data:www-data /var/www/html/storage
sudo chmod -R 775 /var/www/html/storage

五、使用 socket 时的权限(Nginx + PHP-FPM)

查看 socket 权限

ls -l /run/php/php-fpm.sock

设置 socket 权限(pool 配置)

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

重启:

sudo systemctl restart php-fpm

六、常见错误与排查

1. 403 / 404

  • 目录无执行权限(+x)
  • index.php 不存在或不可读

2. 写入失败

is_writable($path);

检查目录 owner 是否为 www-data

3. SELinux(Ubuntu 默认关闭)

一般无需处理


七、安全建议

✅ 不要使用 777
✅ 不要 chown root:root 给 PHP 写目录
✅ 生产环境用 644 / 755


如果你愿意,可以告诉我:

  • Ubuntu 版本
  • PHP 版本
  • Web 服务器(Nginx / Apache)
  • 具体报错信息

我可以给你精确到命令的配置方案。

0 踩