php + nginx项目中的权限详解


Posted in PHP onMay 23, 2017

本文给大家介绍的关于php + nginx项目权限的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

nginx/php-fpm

进程权限

  • 主进程用户为启动的用户
  • 子进程

1、nginx的用户为nginx.conf中配置的用户

2、php-fpm的用户为php-fpm.conf中配置的用户

如:启动nginx的是root,nginx中配置的user是nginx,那主进程就是root,子进程就是nginx

处理方式

以下访问均以nginx子进程进行

静态文件

  • 步骤:nginx访问/index.html时,nginx会直接访问对应文件,并将内容返回给请求的客户端。
  • 权限情况:此时只需要nginx拥有index.html文件的权限即可。

php脚本文件

步骤:

  • nginx访问/index.php时,nginx为了能够把正确的脚本处理结果返回给客户端,需要进行配置告诉nginx.php是非静态文件,需要php脚本解析器进行处理后才能返回内容。
  • 一般来讲会在nginx配置中加上类似fastcgi_pass unix:/var/run/php5-fpm.sock;这样的配置项,指明nginx在遇到访问脚本文件时需要去找谁,之后会访问该文件做到将请求转发至php-fpm。
  • 由php-fpm访问真正的php脚本文件,将结果返回值nginx,再有nginx将结果返回至客户端。

权限情况:

  • nginx需要有/var/run/php5-fpm.sock文件权限;
  • php-fpm需要有/index.php文件权限;

用户配置位置

nginx用户设置在nginx.conf中第一行的user

php-fpm用户设置在php-fpm.conf中的

  • listen.owner = xxx;设置unix socket用户
  • user = xxx设置进程启动用户

注:以上两个配置文件不同的操作系统下文件名略有不同,请根据自身安装情况自行判断。

nginx转发内容到php-fpm不只有/var/run/php5-fpm.sock的方式,在php-fpm.conf中还可以通过配置改为xxx.xxx.xxx:9000等方式

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
;       a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
;       a specific port;
; 'port'     - to listen on a TCP socket to all IPv4 addresses on a
;       specific port;
; '[::]:port'   - to listen on a TCP socket to all addresses
;       (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = /var/run/php5-fpm.sock

其他

比较特别的点,一般nginx都是用root用户启动的(为了获取80端口权限),如果本地开发nginx是用普通用户重启,那么主进程和子进程都会是当前用户,nginx.conf中的配置不再起效,暂不清楚原因。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
社区(php&&mysql)三
Oct 09 PHP
PHP中的类-什么叫类
Nov 20 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
PHP中集成PayPal标准支付的实现方法分享
Feb 06 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
Jun 20 PHP
php下载excel无法打开的解决方法
Dec 24 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
Yii框架实现记录日志到自定义文件的方法
May 23 #PHP
Yii 2.0如何使用页面缓存方法示例
May 23 #PHP
PHP创建单例后台进程的方法示例
May 23 #PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 #PHP
yii 2.0中表单小部件的使用方法示例
May 23 #PHP
php实现留言板功能(会话控制)
May 23 #PHP
php实现文件预览功能
May 23 #PHP
You might like
php实现用于计算执行时间的类实例
2015/04/18 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
python图像和办公文档处理总结
2019/05/28 Python
Python简易版停车管理系统
2019/08/12 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
大学生年度自我鉴定
2013/10/31 职场文书
三好学生自我鉴定
2013/12/17 职场文书
工商治理实习生的自我评价
2014/01/15 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
政府采购方案
2014/06/12 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
实习生辞职信范文
2015/03/02 职场文书
五年级语文教学反思
2016/03/03 职场文书
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android