• 生产环境下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








  • 相关阅读:
    类的加载与ClassLoader的理解
    反射:获取Class 类的实例(四种方法)
    磁盘调度算法
    死锁检测算法
    银行家算法
    最低松弛度调度算法模拟
    多级反馈队列调度算法
    内存中:请求调页存储管理方式的模拟
    内存的动态分区分配方式的模拟
    “短进程优先”调度算法
  • 原文地址:https://www.cnblogs.com/fengzhongzhuzu/p/8670359.html
Copyright © 2020-2023  润新知