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中str_replace函数使用小结
Oct 11 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
php数组一对一替换实现代码
Aug 31 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
ThinkPHP中的三大自动简介
Aug 22 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
Yii2.0中使用js异步删除示例
Mar 10 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 PHP
PHP Include文件实例讲解
Feb 15 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
smarty实例教程
2006/11/19 PHP
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
php中常用的预定义变量小结
2012/05/09 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
php实现分页显示
2015/11/03 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
eval与window.eval的差别分析
2011/03/17 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
python正则表达式之对号入座篇
2018/07/24 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
python文件选择对话框的操作方法
2019/06/27 Python
Python替换月份为英文缩写的实现方法
2019/07/15 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
用python写测试数据文件过程解析
2019/09/25 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
12月红领巾广播稿
2014/02/13 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
招商银行收入证明
2015/06/17 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫