在 Ubuntu 下配置 PHP 的运行用户,通常是指配置 PHP-FPM 的运行用户(因为现在大多数 PHP 都是通过 PHP-FPM 运行在 Nginx / Apache 后的)。下面按常见场景说明。
ps aux | grep php-fpm
如果看到类似:
www-data 1234 ... php-fpm: pool www
说明是 PHP-FPM,运行用户一般是 www-data。
Ubuntu 中通常路径为:
/etc/php/8.1/fpm/pool.d/www.conf
(PHP 版本可能是 7.4 / 8.0 / 8.2,按需替换)
编辑配置文件:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
找到这两行:
user = www-data
group = www-data
改成你需要的用户,例如:
user = phpuser
group = phpuser
sudo adduser phpuser
确保 Web 目录属于该用户:
sudo chown -R phpuser:phpuser /var/www/html
sudo systemctl restart php8.1-fpm
如果你用 Nginx,Nginx 也要能以该用户访问文件:
sudo nano /etc/nginx/nginx.conf
确认:
user www-data;
如果你改了 PHP 用户,但 Nginx 还是 www-data,可能会出现 权限问题,建议:
如果是 Apache 的 mod_php:
sudo nano /etc/apache2/envvars
修改:
export APACHE_RUN_USER=phpuser
export APACHE_RUN_GROUP=phpuser
然后:
sudo systemctl restart apache2
⚠️ 注意:Apache + mod_php 已被逐步淘汰,不推荐新项目使用。
ps aux | grep php-fpm
或 PHP 中:
<?php
echo get_current_user();
sudo chown -R phpuser:phpuser /var/lib/php/sessions
root 作为 PHP 运行用户(极不安全)如果你愿意,可以告诉我:
我可以给你一套精确命令。