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 xml实例 留言本
Mar 20 PHP
PHP 时间转换Unix时间戳代码
Jan 22 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
PHP编码规范的深入探讨
Jun 06 PHP
PHP处理大量表单字段的便捷方法
Feb 07 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
Aug 18 PHP
php查询操作实现投票功能
May 09 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
php微信公众号开发之现金红包
Apr 16 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 PHP
php访问对象中的成员的实例方法
Nov 17 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
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
Javascript 继承实现例子
2009/08/12 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
实现非常简单的js双向数据绑定
2015/11/06 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
python实现简单登陆流程的方法
2018/04/22 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
详解python调用cmd命令三种方法
2019/07/08 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
美国校园市场:OCM
2017/06/08 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
测绘工程本科生求职信
2013/10/10 职场文书
党员公开承诺书
2014/03/25 职场文书
留学经费担保书
2014/05/12 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
先进个人推荐材料
2014/12/29 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
个人年终总结结尾
2015/03/06 职场文书
小学远程教育工作总结
2015/08/13 职场文书
利用js实现简单开关灯代码
2021/11/23 Javascript