在 Web 环境中,Apache、Nginx、PHP-FPM 等服务通常需要统一使用同一个用户与用户组(如 www),避免因权限不一致导致文件不可读写、无法上传、无法生成缓存等问题。
本文整理常用的权限查看方式、关键配置文件路径与统一权限设置方法。
一、查看服务运行用户(User / Group)
使用 ps 命令查看 Web 相关服务当前正在使用的用户:
ps aux | grep apache
ps aux | grep nginx
ps aux | grep php-fpm
ps aux | grep mysql
通过命令输出可确认各服务是否以 www 或其他用户执行,如发现不一致可继续阅读后文配置统一权限。
二、PHP-FPM 用户组配置(以 PHP7.0 为例)
PHP-FPM 的池(pool)文件通常为:
/etc/php/7.0/fpm/pool.d/www.conf
找到并修改以下字段(确保使用统一账户,如 www):
user = www
group = www
修改后重启服务:
sudo systemctl restart php7.0-fpm
三、Apache 2.4 用户组配置
Apache 的运行用户配置位于:
/etc/apache2/envvars
确保如下内容为你期望的用户:
export APACHE_RUN_USER=www
export APACHE_RUN_GROUP=www
修改后需重启:
service apache2 restart
四、Nginx 用户组配置
Nginx 主配置文件默认位于:
/usr/local/nginx/conf/nginx.conf
在配置文件顶部可以设置用户:
user www www;
修改后重新载入配置:
/usr/local/nginx/sbin/nginx -s reload # 根据安装路径决定
五、统一权限设置建议
为了避免权限问题,建议 Web 目录使用统一用户组,并给予必要权限:
chown -R www:www /var/www
chmod -R 755 /var/www
如有上传目录、缓存目录,可单独给予写入权限:
chmod -R 775 /var/www/project/uploads
chmod -R 775 /var/www/project/cache
六、关闭占用 80 端口的程序
如果 80 端口被其他服务占用,可以使用 fuser 强制结束:
sudo fuser -k 80/tcp
查看具体占用程序:
sudo lsof -i:80
七、常见问题排查
1. PHP 写入失败(权限不足)
- 确认 PHP-FPM 与 Nginx / Apache 使用同一用户组
- 检查上传目录的写权限是否正确设置
- 检查 SELinux(如是 CentOS)
2. Nginx/Apache 重启失败
- 检查用户是否存在:
id www
- 若不存在可创建:
sudo useradd -r -s /usr/sbin/nologin www
3. 80 端口被占用
- 使用
lsof -i:80查出占用进程 - 用
fuser -k 80/tcp释放端口








