生产环境下lnmp的权限说明
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的权限说明的更多相关文章
- centos7生产环境下openssh升级
由于生产环境ssh版本太低,导致使用安全软件扫描时提示系统处于异常不安全的状态,主要原因是ssh漏洞.推荐通过升级ssh版本修复漏洞 因为是生产环境,所以有很多问题需要注意.为了保险起见,在生产环境下 ...
- 生产环境下,oracle不同用户间的数据迁移。第三部分
任务名称:生产环境下schema ELON数据迁移至schema TIAN########################################前期准备:1:确认ELON用户下的对象状态se ...
- Python开发程序:生产环境下实时统计网站访问日志信息
日志实时分析系统 生产环境下有需求:要每搁五分钟统计下这段时间内的网站访问量.UV.独立IP等信息,用直观的数据表格表现出来 环境描述: 网站为Nginx服务,系统每日凌晨会对日志进行分割,拷贝到其他 ...
- 生产环境下一定要开启mysqlbinlog
在没有备份数据库的情况下,可以用binlog进行恢复 在生产环境下安全第一,损失一点点效率换来的安全还是值得的. http://www.cnblogs.com/zc22/archive/2013/06 ...
- mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法
mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法 满头大汗的宅鸟该怎么办呢? mysql -u root -e "show processlist"|grep -i ...
- Mysql迁移工具在生产环境下的使用
在产品迭代开发发布过程中,由于业务需求的增加,数据库难免会有结构调整等操作. 在每个版本发布过程中怎么控制每个版本server端程序与数据库版本保持一致,以及数 据库升级.回滚等操作. 本博文宅鸟将向 ...
- [原]生产环境下的nginx.conf配置文件(多虚拟主机)
[原]生产环境下的nginx.conf配置文件(多虚拟主机) 2013-12-27阅读110 评论0 我的生产环境下的nginx.conf配置文件,做了虚拟主机设置的,大家可以根据需求更改,下载即可在 ...
- 生产环境下JAVA进程高CPU占用故障排查
问题描述:生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析:1,程序属于CPU密集型,和开发沟通过, ...
- 一次生产环境下MongoDB备份还原数据
最近开发一个版本的功能当中用到了MongoDB分页,懒于造数据,于是就研究了下从生产环境上导出数据到本地来进行测试. 研究了一下,发现MongoDB的备份还原和MySQL语法还挺类似,下面请看详细介绍 ...
随机推荐
- ImageView加载长图(适用不需要缩放的情况)
此案例适用于加载网络长图且图片的宽和高已知的情况.由于ImageView加载图片有一个4096*4096的限制,所以对于巨长图的加载比较麻烦,需要我们自己去手动处理. 有两种解决方案:第一种就是比较l ...
- Tomcat+Jenkins+SonarQube+SVN+Maven 集成自动化环境搭建(Windows10环境下)
说在前面的话: 从接到任务到完成共用了7天的时间.正常人用不到这个时间. 此时的功能表现是: 登录本地JenKins对项目进行构建,能够自动从SVN读取最新代码并按照Maven项目构建,构建完成能够自 ...
- PMP项目管理学习笔记(8)——整个管理之监控项目工作、综合变更控制、结束项目或阶段
监控项目工作 输入:企业环境要素.组织过程资产.项目管理计划.绩效报告 工具:专家判断 输出:变更请求.项目管理计划更新.项目文档更新 综合变更控制 输入:企业环境要素.组织过程资产.项目管理计划.变 ...
- SPOJ COT2 Count on a tree II (树上莫队,倍增算法求LCA)
题意:给一个树图,每个点的点权(比如颜色编号),m个询问,每个询问是一个区间[a,b],图中两点之间唯一路径上有多少个不同点权(即多少种颜色).n<40000,m<100000. 思路:无 ...
- (2)Ngixn 编译安装设置开机自启
设置nginx开机自启 #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 ...
- 什么是Entitlement
Entitlement(权限),可以想象成App里用于描述该App可以调用哪些服务的字符串.苹果的操作系统(mac os或者iOS)会通过检查这个串,决定这个应用是否可以调用相关功能.比如iCloud ...
- Ubuntu 16.04 LTS下matplotlib安装出错
使用命令sudo pip3 install matplotlib已知报错,用同样的命令安装numpy和opencv却没有,因此重装linux系统两次都没有解决(我是在Vmware中创建的).报错如下: ...
- attr和prop的区别
由于prop(property的缩写)和attr(attribute的缩写)翻译成汉语,均有“特性.属性”等意思的原因,导致大家容易混淆分不清. (1)在处理自定义时属性时,用attr(),若用pro ...
- Java ArrayList中去掉相同的元素并保留相同元素中的最后一个
实现思路:将list对象循环两次,拿外层数据和里面的数据对比,一样的删除外层(外层元素肯定比内存的靠前),如果一样的话,删除外层数据,这样最后输出外层数据的list,结果就能保证唯一性,并且保留了后面 ...
- 【转载】WampServer图标显示红色后变成橙色怎么解决
WampServer就是Windows Apache Mysql PHP集成安装环境,即在window下的apache.php和mysql的服务器软件. 工具/原料 WampServer 方法/步 ...