Home 建站 Apache Apache Nginx ...

Apache Nginx PHP 权限组设置

0

在 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 释放端口

NO COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here

退出移动版