生产环境下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语法还挺类似,下面请看详细介绍 ...
随机推荐
- Backbone学习记录(2)
创建一个集合 1)new Backbone.Collection()方式 var user=new Backbone.Model({'name':'susan'}); var list=new Bac ...
- C#之九大视图
本节向大家介绍一下有关UML视图方面的内容,UML视图共有9种,它们之间有什么区别和联系呢,下面就让我们一起来学习吧,相信通过本节的介绍你一定会有不少收获. UML视图 UML总共提供了9种视图,这些 ...
- this的试题
1.var x=12; function test(){ console.log(this.x) } test() //主体是window 2.var x=12; function test ...
- 如何正确理解和使用 Activity的4种启动模式
关于Activity启动模式的文章已经很多,但有的文章写得过于简单,有的则过于注重细节,本文想取一个折中,只关注最重要和最常用的概念,原理和使用方法,便于读者正确应用. Activity的启动模式有4 ...
- Clean Code 第十章 : 类
最近的CleanCode读到了第十章.这一张主要讲了如何去构造一个类,感觉的CleanCode至此已经不仅仅是单纯的讲如何'写'出漂亮的代码,而是从设计方向上去构造出好的代码了. 本章节主要讲了: * ...
- Mac OSX简单使用中会用到的
选择操作系统(例如选择BootCamp分区的Windows):开机按住Option键直到磁盘图标出现后选择. 忘记本地账号密码:按着Command+R开机选择Recovered启动打开终端输入re ...
- 职业生涯手记——电视剧剧情O.O
很多电视剧.偶像剧.电影里出现过一些场景,从来没想过狗血剧情是来源于现实.. 直到上周一开始,我慢慢相信了.. 事情是这样的. 我们小组有个组员H,从上周一开始他每天都去公司的座机电话接1~2个电话, ...
- [整理] webpack+vuecli打包生成资源相对引用路径与背景图片的正确引用
webpack+vuecli打包生成资源相对引用路径与背景图片的正确引用 https://www.cnblogs.com/moqiutao/p/7496718.html
- vue 数据没有驱动视图?
Part.1 问题 数据改变,视图却没有根据数据而改变. 原因在于,数据并不在 vue 监听范围之内,vue 只对事先在 data 中声明的变量丶对象等类型数据进行监听 Part.2 例子 < ...
- redis基础一_常用指令
# Redis configuration file example. # # Note that in order to read the configuration file, Redis mus ...