https://www.cnblogs.com/zrp2013/p/4183546.html

有关权限说明:
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 50.html
第一个字符:
-(文件),d(目录),l(链接)
其他3个一组,
u第一组rwx:文件所有者是读写执行
g第二组rw-:文件所有者所在的组的其他用户有读写权限
o第三组r--:其他组的用户只有读的权限
r=4,w=2,r=1
nginx php-fpm mysql用户权限解析
nginx是源码安装的,php是yum安装的。mysql是用源码安装的。
nginx
处理静态页面,nginx自身处理,结果返回给客户端
处理php页面,转发给fastcgi,fastcgi管理进程选择cgi的子程序处理,
把处理结果返回给nginx
涉及到两个用户,nginx用户和php-fpm用户
nginx访问静态文件,对该文件有读或者读写权限
访问php文件,首先nginx对运行的用户有读权限,
发现是php文件,转发给php-fpm,需要php-fpm用户有读权限或者读写权限。
[root@master1 html]# ps aux | grep nginx
root       3102  0.0  0.0  44640  1896 ?        Ss   08:08   0:00 nginx: master process /usr/local/nginx/sbin/nginx
www        3431  0.0  0.1  45020  2228 ?        S    09:09   0:00 nginx: worker process      
root       3793  0.0  0.0 103324   892 pts/1    S+   10:45   0:00 grep nginx
nginx的父进程在root用户下,子进程在www用户下,只有一个子进程,
和nginx配置文件中一致。
vi /usr/local/nginx/conf/nginx.conf
user    www;
worker_processes 1;
nginx没有使用配置文件运行用户时,默认是nobody用户运行。
使用www运行nginx安全性比较高。

ps aux | grep php-fpm
root       3155  0.0  0.3 499956  6604 ?        Ss   08:16   0:00 php-fpm: master process (/etc/php-fpm.conf)
apache     3156  0.0  0.9 502364 18920 ?        S    08:16   0:03 php-fpm: pool www            
apache     3157  0.0  0.9 502112 19132 ?        S    08:16   0:04 php-fpm: pool www            
apache     3158  0.0  0.9 503892 19992 ?        S    08:16   0:03 php-fpm: pool www            
apache     3159  0.0  0.9 502380 20164 ?        S    08:16   0:04 php-fpm: pool www            
apache     3160  0.0  1.1 503892 23284 ?        S    08:16   0:04 php-fpm: pool www            
apache     3432  0.0  0.9 502376 19756 ?        S    09:09   0:04 php-fpm: pool www            
apache     3573  0.0  0.9 502868 18408 ?        S    09:42   0:02 php-fpm: pool www            
root       3829  0.0  0.0 103324   896 pts/1    S+   10:52   0:00 grep php-fpm
php-fpm父进程在root下,子进程在apache用户下。

ps aux | grep mysql
ps aux | grep mysql
root       1252  0.0  0.0 108320  1696 ?        S    06:18   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/mysql.pid
mysql      1615  0.2 13.5 1200108 275588 ?      Sl   06:18   0:42 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin
--user=mysql --log-error=/usr/local/mysql/mysql-error.log --pid-file=/usr/local/mysql/mysql.pid --socket=/usr/local/mysql/mysql.sock --port=3306
root       3839  0.0  0.0 103324   896 pts/1    S+   10:55   0:00 grep mysql
more /usr/local/mysql/mysql.pid
1615

mysql运行在mysql用户下,其pid确定和/usr/local/mysql/mysql.pid一样

在生产环境下
一般配置nginx和php-fpm都运行在www用户下,
网站的根目录也要属于www用户,
并且根目录对www用户有所以权限
访问静态页面,能正常访问,但是访问动态页面,也就是php页面,
不能访问是因为php-fpm运行在apache用户下,appache用户对网站的根目录
没有访问权限,也没有写入权限。
所以需要统一nginx和php的运行用户www,把nginx的网站根目录对www用户
和www用户组具有所有权限
该php用yum安装的,使用的是默认配置,配置文件是/etc/php-fpm/www.conf

php用yum的情况下,查看php的相关安装文件
rpm -ql php-fpm

/etc/logrotate.d/php-fpm
/etc/php-fpm.conf
/etc/php-fpm.d
/etc/php-fpm.d/www.conf
/etc/rc.d/init.d/php-fpm
/etc/sysconfig/php-fpm
/usr/sbin/php-fpm
/usr/share/doc/php-fpm-5.6.32
/usr/share/doc/php-fpm-5.6.32/fpm_LICENSE
/usr/share/doc/php-fpm-5.6.32/php-fpm.conf.default
/usr/share/fpm
/usr/share/fpm/status.html
/usr/share/man/man8/php-fpm.8.gz
/var/lib/php/session
/var/lib/php/wsdlcache
/var/log/php-fpm
/var/run/php-fpm

vi /etc/php-fpm/www.conf
user=www
group=www
编辑完成重启。/etc/init.d/php-fpm
ps aux | grep php-fpm
[root@master1 zabbix]# ps aux | grep php-fpm
root       4053  0.0  0.3 499956  6604 ?        Ss   11:43   0:00 php-fpm: master process (/etc/php-fpm.conf)
www        4054  0.0  0.7 500552 14976 ?        S    11:43   0:00 php-fpm: pool www            
www        4055  0.3  0.9 502616 18712 ?        S    11:43   0:00 php-fpm: pool www            
www        4056  0.2  0.8 500844 16932 ?        S    11:43   0:00 php-fpm: pool www            
www        4057  0.1  0.8 500824 16636 ?        S    11:43   0:00 php-fpm: pool www            
www        4058  0.3  0.8 501332 18020 ?        S    11:43   0:00 php-fpm: pool www            
root       4063  0.0  0.0 103320   888 pts/1    S+   11:44   0:00 grep php-fpm
php-fpm已经在nobody用户下运行。
给虚拟主机server中的路径(root)修改权限

用yum安装的情况下:
查看相关安装文件:
rpm -ql 程序名
以php为例:
rpm -qa | grep php-fpm
rpm -ql php-fpm-5.6.32-1.el6.remi.x86_64
rpm默认安装路径
/etc        一些设置文件放置的目录比如/etc/crontab
/usr/bin    一些可执行文件
/usr/lib     一些程序使用的动态函数库
/usr/share/doc    一些基本的软件使用手册和帮助文档
/usr/share/man/    一些man page文件

如果用源码安装情况下:
不清楚文件安装在哪些地方,放在哪些文件里,查看所有文件路径。
相关程序:whereis 程序名

php:
php -i | grep configure                查看编译安装的内容可以找到配置文件。

php主要的配置文件:

/etc/php-fpm.conf
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
/usr/share/doc/php-fpm-5.6.32/php-fpm.conf.default

在/etc/php-fpm.conf和php-fpm.conf.default中都可以定义include
在www.conf中定义php-fpm要监听的地址和端口,运行php-fpm进程时的用户和用户组。
listen=127.0.0.1
listen.allowed_clients=127.0.0.1
user=www
group=www
进一步优化可以使用php-fpm.conf.default
more /usr/share/doc/php-fpm-5.3.3/php-fpm.conf.default
include=/etc/fpm.d/*.conf

生产环境下lnmp的权限说明的更多相关文章

  1. centos7生产环境下openssh升级

    由于生产环境ssh版本太低,导致使用安全软件扫描时提示系统处于异常不安全的状态,主要原因是ssh漏洞.推荐通过升级ssh版本修复漏洞 因为是生产环境,所以有很多问题需要注意.为了保险起见,在生产环境下 ...

  2. 生产环境下,oracle不同用户间的数据迁移。第三部分

    任务名称:生产环境下schema ELON数据迁移至schema TIAN########################################前期准备:1:确认ELON用户下的对象状态se ...

  3. Python开发程序:生产环境下实时统计网站访问日志信息

    日志实时分析系统 生产环境下有需求:要每搁五分钟统计下这段时间内的网站访问量.UV.独立IP等信息,用直观的数据表格表现出来 环境描述: 网站为Nginx服务,系统每日凌晨会对日志进行分割,拷贝到其他 ...

  4. 生产环境下一定要开启mysqlbinlog

    在没有备份数据库的情况下,可以用binlog进行恢复 在生产环境下安全第一,损失一点点效率换来的安全还是值得的. http://www.cnblogs.com/zc22/archive/2013/06 ...

  5. mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法

    mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法 满头大汗的宅鸟该怎么办呢? mysql -u root -e "show processlist"|grep -i ...

  6. Mysql迁移工具在生产环境下的使用

    在产品迭代开发发布过程中,由于业务需求的增加,数据库难免会有结构调整等操作. 在每个版本发布过程中怎么控制每个版本server端程序与数据库版本保持一致,以及数 据库升级.回滚等操作. 本博文宅鸟将向 ...

  7. [原]生产环境下的nginx.conf配置文件(多虚拟主机)

    [原]生产环境下的nginx.conf配置文件(多虚拟主机) 2013-12-27阅读110 评论0 我的生产环境下的nginx.conf配置文件,做了虚拟主机设置的,大家可以根据需求更改,下载即可在 ...

  8. 生产环境下JAVA进程高CPU占用故障排查

    问题描述:生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析:1,程序属于CPU密集型,和开发沟通过, ...

  9. 一次生产环境下MongoDB备份还原数据

    最近开发一个版本的功能当中用到了MongoDB分页,懒于造数据,于是就研究了下从生产环境上导出数据到本地来进行测试. 研究了一下,发现MongoDB的备份还原和MySQL语法还挺类似,下面请看详细介绍 ...

随机推荐

  1. 使用Appache部署WEB服务器

    Apache的起源(这个就不说了,百度下就都有了) 简介:Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行, ...

  2. pscp多线程传输文件

    前面说过pscp不支持多线程,所以在此特地实现了一个 程序分三个部分: 1.初始化各种参数,涉及getopt函数的使用 2.重新定义scp,实现传递IP然后远程拷贝 3.启动多线程调用scp,涉及多线 ...

  3. php服务端接收post的json数据

    最近用到ext与PHP交互,ext把json数据post给PHP,但在PHP里面$_post获取不到,$_REQUEST也获取不到,但是通过firedebug看到的请求信息确实是把JSON数据post ...

  4. android开发学习 ------- git - 将代码回滚到任意版本

    不小心将一个东西错误提交到git - 远程仓库上 参考  https://www.cnblogs.com/wancy86/p/5848024.html 你的git可能关联了多个远程仓库,每个关联的代码 ...

  5. Windows API函数大全三

    7. API之位图.图标和光栅运算函数 BitBlt 将一幅位图从一个设备场景复制到另一个 CopyIcon 制作指定图标或鼠标指针的一个副本.这个副本从属于发出调用的应用程序 CopyImage 复 ...

  6. [ POI 2017 ] Sabota?

    Description 题目链接 Solution 因为一个节点染黑了子树就都被染黑了,所以最后染黑的点集必然是一棵子树. 可以得出的结论是,如果被染黑的节点在节点 \(a\) 的子树中,而 \(a\ ...

  7. Array(数组)的基本方法

    1.定义:var   arr=new  Array ("12" , "zhang") 2.简写:var   arr=[ 12 , "zhang&quo ...

  8. 02全志r58平台Android4.4.4下关闭内核中的CPU的开启关闭提示

    02全志r58平台Android4.4.4下关闭内核中的CPU的开启关闭提示 2017/8/18 13:53 版本:V1.0 开发板:SC5806(全志R58平台) SDK:android4.4.4 ...

  9. xutils3批量上传文件

    前几天开发安卓要用到文件批量上传,就是上传图片,视频,文件之类的用到Xutil3框架,用 RequestParams params = new RequestParams(url); params.a ...

  10. Struts2 前端与后台之间传值问题

    老是被前端与后台之间的传值给弄糊涂了,特此写一篇blog进行总结. 一. 前端向后台传值 (1)属性驱动 属性驱动是指在Action类里,包含表单里对应的字段(字段名称一样),同时设置对应的gette ...