默认 Nginx 使用 Nginx:Nginx,无权访问 www-data:www-data 创建的 unix socket,导致无法处理 php 请求,搜了一圈大多数方法是 fpm 接口改为 127.0.0.1:9000,但我想使用 sock 接口权限该如何设置呢?
目前两种想法 1.Nginx 加入 www-data 组 2.socket 的 listen&write 权限由 www-data 改为 Nginx
不知哪种更符合安全?
1
0ZXYDDu796nVCFxq 2018-02-09 00:33:22 +08:00
如果没有不同服务共用 用户 用户组,两种方法没区别
如果有其他服务共用服务,可能会造成一定的安全隐患 如果要做非常细致的权限隔离,docker 欢迎你 |
2
cxbig 2018-02-09 02:38:21 +08:00 via iPhone
不考虑 docker 的话
nginx 和 php 共用一个 www 用户 代码部署用 deploy 用户,log 文件夹给 www 写权限,其他只读 |
3
cxbig 2018-02-09 02:41:53 +08:00 via iPhone
127.0.0.1:9000 就是本机可访问,有什么安全隐患?
|
4
stabc 2018-02-09 03:23:44 +08:00
道听途说 socket 方式优于 127.0.0.1:9000,所以推荐第一种。
|
7
julyclyde 2018-02-09 08:12:47 +08:00
www-data 应该是 debian 系的?
nginx 不是系统自带的包吗? 考虑到 nginx 也得提供静态文件服务,应该把它改为 www-data 身份 |
8
singer 2018-02-09 08:44:32 +08:00 via iPhone
上 docker 吧,权限配错了问题也不大的。
|
9
eoo 2018-02-09 09:11:27 +08:00 via Android
chmod 777 ****.socket
|
12
Xrong 2018-02-09 09:48:12 +08:00
[root@proxy ~]# ps -ef | grep nginx
root 10349 10314 0 09:41 pts/0 00:00:00 grep --color=auto nginx root 10708 1 0 Feb08 ? 00:00:00 nginx: master process /usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf nginx 10709 10708 0 Feb08 ? 00:01:54 nginx: worker process nginx 10710 10708 0 Feb08 ? 00:01:33 nginx: worker process [root@proxy ~]# ps -ef | grep php-fpm root 1197 1 0 Feb08 ? 00:00:04 php-fpm: master process (/etc/php-fpm.conf) php-fpm 2890 1197 0 07:50 ? 00:00:49 php-fpm: pool www php-fpm 3288 1197 0 07:59 ? 00:00:47 php-fpm: pool www php-fpm 4409 1197 0 08:19 ? 00:00:40 php-fpm: pool www [root@proxy ~]# ls -tal /run/php-fpm/www.sock srw-rw---- 1 nginx nginx 0 Feb 8 11:29 /run/php-fpm/www.sock 然后 /etc/php-fpm.d/www.conf 里头的几个重要配置如下 listen = /run/php-fpm/www.sock user = php-fpm group = php-fpm listen.owner = nginx listen.group = nginx 给楼主参考一下,应该会有所帮助。 |