在 Ubuntu 上配置 php-fpm 的运行用户 通常是通过修改 php-fpm 的 pool 配置来完成的。下面按常见场景说明。
Ubuntu 上 php-fpm 一般安装在:
/etc/php/{版本}/fpm/
例如 PHP 8.1:
/etc/php/8.1/fpm/
php-fpm 的进程池(pool)配置通常在:
/etc/php/8.1/fpm/pool.d/www.conf
编辑 www.conf:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
找到以下几行(默认是):
user = www-data
group = www-data
改成你需要的用户,例如:
user = youruser
group = youruser
⚠️ 注意:
youruser 必须是系统中已存在的用户www-data如果你改了用户,网站目录必须对该用户可读/写:
sudo chown -R youruser:youruser /var/www/html
或至少:
sudo chown -R youruser:www-data /var/www/html
并给合适权限:
sudo chmod -R 755 /var/www/html
修改后必须重启:
sudo systemctl restart php8.1-fpm
查看状态:
sudo systemctl status php8.1-fpm
ps aux | grep php-fpm
你会看到进程的用户已经变成你设置的用户。
| 场景 | 用户 |
|---|---|
| Nginx + php-fpm | www-data |
| 开发环境 | 当前登录用户 |
| 多站点隔离 | 每个 pool 一个用户 |
如果你是想 每个网站用不同用户(更安全),我也可以给你一个多 pool 配置示例。