新(LNMP)

MySQL安装php

卸载原来的mysql步骤css

先查看mysql服务有没有启动:ps aux |grep mysql  若是启动把它关掉html

先进入到src下删除mysql:mysql

cd /usr/local/src/
linux

删除目录:rm -rf /usr/local/mysql nginx

删除启动脚本:rm -rf /etc/init.d/mysqldgit

安装mysqlweb

cd /usr/local/src正则表达式

 1.下载wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 算法

 2.解压tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

 3.挪动目录并更名:mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql  (前提是以前没有建立过mysql目录,否则他不会更名为mysql,他会移动到这个目录下,因此要查看一下)

4. 进入到目录下:cd /usr/local/mysql

 建立一个mysql用户:useradd mysql

 建立一个data目录:mkdir /data/  (要是之前安装过musql的话他会有这个目录,须要把删掉)

 5.初始化:出现两个OK才对

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

6.拷贝配置文件并更名

下面这一步,若是以前装过mysql而且拷贝编辑配置文件过就不用作了

cp support-files/my-default.cnf  /etc/my.cnf

vim /etc/my.cnf  把下边这两个地方的路径定义对

image.png

 7.拷贝一个启动脚本更名为mysqld

cp support-files/mysql.server /etc/init.d/mysqld

 编辑一下:vim /etc/init.d/mysqld 定义basedir和datadir

image.png

8.启动mysql

/etc/init.d/mysqld start

image.png

9.查看mysql服务有没有启动:ps aux |grep mysql

image.png

10.把mysqld服务加入到服务列表里:

chkconfig --add mysqld

11.设置开机启动:

chkconfig mysqld on

12.这时候就能够用service命令来开启关闭它了

service mysqld stop 关闭

service mysqld start 开启



PHP安装

它在lnmp架构里不须要依赖nginx,它是一个独立的服务

而在apache里边它是apache的一个服务模块必须依赖apache

和LAMP安装PHP方法有差异,须要开启php-fpm服务

 cd /usr/local/src/

假如说你已经安装过php了能够进行如下操做

进入到:cd php-5.6.30  (make clean能够吧之前的配置信息所有删掉,让他回到刚解压完的状态)

image.png

若是第一次安装则进行如下操做 

下载:wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

解压:tar zxf php-5.6.30.tar.gz

添加php-fpm用户:useradd -s /sbin/nologin php-fpm

由于已经有php目录了,咱们给它叫php-fpm

image.png

编译:./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl  --with-openssl

make && make install

拷贝配置文件:cp php.ini-production /usr/local/php-fpm/etc/php.ini  能够查看下etc下边是没有php.ni的

image.png

进入到cd /usr/local/php-fpm/etc/ 目录下

编辑配置文件:vi /usr/local/php-fpm/etc/php-fpm.conf //写入以下内容(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/php-fpm.conf复制到下边)

image.png

再回到php目录里:cd /usr/local/src/php-5.6.30

拷贝启动脚本:cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

更改权限:chmod 755 /etc/init.d/php-fpm

加入到服务列表:chkconfig --add php-fpm

开机自启:chkconfig php-fpm on

启动php服务:service php-fpm start

image.png

能够检测一下配置文件有没有错误错误   -t

/usr/local/php-fpm/sbin/php-fpm -t

image.png

查看进程:ps aux |grep php-fpm

image.png


nginx介绍

Nginx官网 nginx.org,最新版1.15.0,最新稳定版1.14.0 

 Nginx应用场景:web服务、反向代理、负载均衡

 Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都同样,和Nginx的最大区别在于Tenging增长了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并

 Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928


Nginx安装

 cd /usr/local/src

 wget http://nginx.org/download/nginx-1.14.0.tar.gz

 tar zxf nginx-1.14.0.tar.gz

进到解压包内:cd /usr/local/src/nginx-1.14.0/

编译:./configure --prefix=/usr/local/nginx

 make &&  make install

 编辑启动脚本:vim /etc/init.d/nginx //复制以下内容(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx复制到里边)

chmod 755 /etc/init.d/nginx

加入服务:chkconfig --add nginx 

开机自启:chkconfig nginx on 

配置它的配置文件:先进去,cd /usr/local/nginx/conf/

image.png

咱们发现它里边已经有一个nginx.conf了,可是咱们不用它咱们用本身的

> /usr/local/nginx/conf/nginx.conf 重定向等于先清空

 vim nginx.conf //写入以下内容(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf

 检查一下有没有出错:/usr/local/nginx/sbin/nginx -t

image.png

 启动:/etc/init.d/nginx  start

service nginx start

image.png

ps aux |grep nginx  

image.png

 netstat -lntp |grep 80

测试一下curl localhost

image.png

测试php解析

建立一个测试文件:vi /usr/local/nginx/html/1.php //加入以下内容

<?php
echo "this is nginx test page.";
?>

 curl localhost/1.php   解析成功

image.png




Nginx默认虚拟主机

进到:/usr/local/nginx/conf

编辑vim /usr/local/nginx/conf/nginx.conf //把最后一段server删除

U5GLZN$%3LFPESYSW_TVCWF.png

增长:include vhost/*.conf;          而vhost目录咱们须要建立,看下边操做

image.png

建立conf子目录:mkdir /usr/local/nginx/conf/vhost

进到vhost下:cd vhost/

在建立一个好比aaa.com.conf,编辑

image.png

vim aaa.com.conf //加入以下内容

server
{
    listen 80 default_server;  // 有这个标记的就是默认虚拟主机
    server_name aaa.com;
    index index.html index.htm index.php;
    root /data/wwwroot/default;
}

image.png

建立目录(由于咱们增长的配置文件内容里有这个目录):

mkdir /data/wwwroot/default

而后进到这个目录下:cd /data/wwwroot/default/

定义一个东西:vim index.html 在里边随便写一句:this is the default site.

image.png

或者用这种定向的方式写入:echo “This is a default site.”>/data/wwwroot/default/index.html

写完检查一下有没有错误/usr/local/nginx/sbin/nginx -t

image.png

从新加载(加上选项-s reload):/usr/local/nginx/sbin/nginx -s reload

测试一下看看是否显示刚才定义的那句话:curl localhost

image.png

测试一下指定域名,例如bbb.com:curl -x127.0.0.1:80 bbb.com

image.png



Nginx用户认证

针对整个站点来设置

在这个目录下作操做:cd /usr/local/nginx/conf/vhost

编辑配置文件:建立一个虚拟主机,好比说叫test.com.conf

vim /usr/local/nginx/conf/vhost/test.com.conf//写入以下内容

server
{
    listen 80;
    server_name test.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    
      location  /
    {
        auth_basic              "Auth";自定义用户认证的名字
        auth_basic_user_file   /usr/local/nginx/conf/htpasswd;用户名密码文件
      }
}

image.png

下面是生成密码文件:

若是你上边安装过Apache能够直接用这个命令

没有就安装一个yum install -y httpd 再用上边的命令

-c是生成的意思,你要建立第二用户个就不用加了,要不他就会重置前边设置的密码

后边这个awei是指定用户名字,能够随便定义

/usr/local/apache2.4/bin/htpasswd -c /usr/local/nginx/conf/htpasswd awei

image.png

建立第二个用户的话直接加用户名字就能够,不用-c指定了,假如在建立一个user1用户

image.png

查看一下密码文件:cat /usr/local/nginx/conf/htpasswd

image.png

检查语法错误:/usr/local/nginx/sbin/nginx -t

从新加载:/usr/local/nginx/sbin/nginx -s reload

测试

curl -x127.0.0.1:80 test.com 状态码为401说明须要用户认证

image.png

咱们须要建立index.html目录(否则输入密码会显示404):

mkdir /data/wwwroot/test.com

在建立一个index.html测试文件,并写入内容:echo “test.com”>/data/wwwroot/test.com/index.html

测试指定密码用户,用-u用户加密码:假如用户为awei,密码为123456789

curl -uawei:123456789 -x127.0.0.1:80 test.com -I 访问状态码变为200

image.png

 编辑windows的hosts文件,而后在浏览器中访问test.com会有输入用户、密码的弹窗


针对指定目录的用户认证

条件:好比咱们只在访问admin的时候认证

编辑配置文件:vim /usr/local/nginx/conf/vhost/test.com.conf

在后边加admin目录名字就行,这样的话只有访问他的时候才须要验证

image.png

检查语法错误:/usr/local/nginx/sbin/nginx -t

从新加载:/usr/local/nginx/sbin/nginx -s reload

建立一个测试环境

咱们须要建立index.html目录

mkdir /data/wwwroot/test.com/admin

在建立一个index.html测试文件,并写入内容:echo “test.com admin dir”>/data/wwwroot/test.com/admin/index.html

wKiom1mNv4iS1TwwAAHSbEjLKBw574.png

假设用户名为awei,密码为123456789测试结果以下

curl -uawei:123456789 -x127.0.0.1:80 test.com/admin/

image.png


针对访问的一个URL

条件:假如说访问admin.php

编辑配置文件:vim /usr/local/nginx/conf/vhost/test.com.conf  //给它匹配就好了

image.png

检查语法错误:/usr/local/nginx/sbin/nginx -t

从新加载:/usr/local/nginx/sbin/nginx -s reload

咱们须要建立index.html目录

mkdir /data/wwwroot/test.com/admin.php

在建立一个index.html测试文件,并写入内容:echo “test.com admin dir”>/data/wwwroot/test.com/admin.php/index.html

curl -x127.0.0.1:80 test.com/admin.php

image.png



Nginx域名重定向

条件:假如说test.com是主域名,而咱们还有其余域名,例如test2.com;test3.com,等用户访问它们时让它自动跳转到test.com主域名上来

更改test.com.conf

在这个路径下:cd /usr/local/nginx/conf/vhost

server

{

    listen 80;

    server_name test.com test1.com test2.com; test3.com; 在后边在加上多个域名

    index index.html index.htm index.php;

    root /data/wwwroot/test.com;

    if ($host != 'test.com' ) {域名跳转,若是不是test.com

        rewrite  ^/(.*)$  http://test.com/$1  permanent;就让他它调转过来permanent是301的意思)

    }

}

K8Z_7Y3UDR{P1PDM4IY@6C6.png

测试配置文件:/usr/local/nginx/sbin/nginx -t

从新加载:/usr/local/nginx/sbin/nginx -s reload

测试

假如说我用test2.com去访问index.html。他会显示301而且下边显示他跳转到了test.com域名上边来

curl -x127.0.0.1:80 test2.com/index.html -I

image.png

 server_name后面支持写多个域名,这里要和httpd的作一个对比

 permanent为永久重定向,状态码为301,若是写redirect则为302



Nginx访问日志

日志格式

打开主配置文件:vim /usr/local/nginx/conf/nginx.conf //搜索log_format 这一段就是用来定义日志格式的

wKioL1mP-cPA-Q0JAABDfQYbdLQ154.png

combined_realip:这是日志个是的名字,能够随便定义,这里写成什么,后边引用他时就写成什么

nginx配置有个特色,他会认为何时候有分号;,才会结束

日志格式解释:

image.png

 wKioL1mP8M3xiv5LAAEVt9Ch8Wc689.png

除了在主配置文件nginx.conf里定义日志格式外,还须要在虚拟主机配置文件中:

vi /usr/local/nginx/conf/vhost/test.com.conf

增长:access_log /tmp/test.com.log combined_reali;意思是把日志放到一个目录下

image.png

 这里的combined_realip就是在nginx.conf中定义的日志格式名字,咱们没改就用的原来的名字

wKioL1mP-cPA-Q0JAABDfQYbdLQ154.png

测试配置文件:/usr/local/nginx/sbin/nginx -t

从新加载:/usr/local/nginx/sbin/nginx -s reload

访问一下:curl -x127.0.0.1:80 test2.com/index.html -I 

查看一下日志:cat /tmp/test.com.log



Nginx日志切割

自定义shell 脚本(好比说叫nginx_logrotate.sh)

 vim /usr/local/sbin/nginx_logrotate.sh//写入以下内容

#! /bin/bash

d=`date -d "-1 day" +%Y%m%d` #生成昨天的日期,格式为年月日

logdir="/data/logs"#日志的存放路径,假设nginx的日志存放路径为/data/logs/

nginx_pid="/usr/local/nginx/logs/nginx.pid"

cd $logdir#进入到logdir目录下

for log in `ls *.log`#进行一个for循环

do

    mv $log $log-$d

done

/bin/kill -HUP `cat $nginx_pid`生成新的日志文件

image.png

执行脚本内容:sh -x /usr/local/sbin/nginx_logrotate.sh

image.png

他如今已经生成了

image.png

写完脚本须要制定一个任务计划:天天凌晨零点执行这个脚本

crontab -e 把下边内容写进去

 0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh



静态日志不记录日志和过时时间

配置以下

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

    {

          expires      7d;

          access_log off;

    }

location ~ .*\.(js|css)$

    {

          expires      12h;#过时时间

          access_log off;

    }

image.png

模拟一下

先到这个目录下:cd /data/wwwroot/test.com/

编辑:vi 1.gif 随便写点东西

编辑:vi 2.js 随便写点东西

测试一下:

curl -x127.0.0.1:80 test.com/1.gif

curl -x127.0.0.1:80 test.com/2.js

curl -x127.0.0.1:80 test.com/index.html

访问完查看一下日志:

cat /tmp/test.com.log  你会发现他只记录了最后一条

image.png



Nginx防盗链

配置以下,能够和上面的配置结合起来

image.png

location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$

{

    expires 7d;

    valid_referers none blocked server_names  *.test.com ; 定义白名单,我这里假设白名单是test.com,若是不匹配直接403

    if ($invalid_referer) {

        return 403;

    }

    access_log off;

}

测试:

curl -e "http://baidu.com/1.txt" -x127.0.0.1:80 -I test.com/1.gif 403

curl -e "http://test.com/1.txt" -x127.0.0.1:80 -I test.com/1.gif 200



Nginx访问控制

针对目录

需求:访问/admin/目录的请求,只容许某几个IP访问,例如:192.168.232.132和127.0.0.1,其余的不容许,配置以下:

location /admin/
{
    allow 192.168.232.132;
    allow 127.0.0.1;
    deny all;
}

测试 

mkdir /data/wwwroot/test.com/admin/

 echo “test,test”>/data/wwwroot/test.com/admin/1.html

 -t && -s reload

 curl -x127.0.0.1:80 test.com/admin/1.html -I

 curl -x192.168.133.130:80 test.com/admin/1.html -I

针对正则

能够匹配正则,禁止解析php

location ~ .*(upload|image)/.*\.php$  upload是本身定义的,只要是匹配upload的以.php结尾的
{
        deny all;
}

测试 php的文件被拒绝了 txt的文件能够访问

image.png

image.png

根据user_agent限制,不让任何人任何网站知道访问到你的IP

if ($http_user_agent ~* 'Spider/3.0|YoudaoBot|Tomato')#假如说限制这三家Spider/3.0|YoudaoBot|Tomato 这三家是访问不到你的 加了*匹配时就不分大小写了
{
      return 403;
}

image.png

 deny all和return 403效果同样



Nginx解析PHP相关配置

配置以下:

location ~ \.php$

    {

        include fastcgi_params;

        fastcgi_pass unix:/tmp/php-fcgi.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;

    }

 fastcgi_pass 用来指定php-fpm监听的地址或者socket

编辑完配置文件先不要从新加载,等测试中在加载,直接测试

测试:

vi /data/wwwroot/test.com/3.php 把下面内容写进去:

<?php

phpinfo();

而后curl一下:curl -x127.0.0.1:80 test.com/3.php 这时他是解析不了的,直接把源码输出

image.png

而后从新加载一下配置文件:

/usr/local/nginx/sbin/nginx -s reload

在解析:

curl -x127.0.0.1:80 test.com/3.php




Nginx代理服务器

wKioL1mQK6njNVsSAAB1THUMbAw580.png

写一个新的配置文件:

cd /usr/local/nginx/conf/vhost

 vim proxy.conf //加入以下内容

server

{

    listen 80;

    server_name ask.apelearn.com;定义域名,要访问的域名


    location /

    {

        proxy_pass      http://121.201.9.155/;远程服务端web服务器的ip。

        proxy_set_header Host   $host;

        proxy_set_header X-Real-IP      $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

}

配置完就能够用linux虚拟机经过这个IPhttp://121.201.9.155来访问ask.apelearn.com论坛了

验证一下:curl ask.apelearn.com/robots.txt

image.png

为了测试代理是否成功,能够用虚拟机本机IP访问:curl -x127.0.0.1:80 ask.apelearn.com/robots.txt

image.png



Nginx负载均衡

vim /usr/local/nginx/conf/vhost/load.conf // 写入以下内容

upstream qq_com 这个名字表明着下边的两个IP

{

    ip_hash;

    server 61.135.157.156:80;

    server 125.39.240.113:80;

}

server

{

    listen 80;

    server_name www.qq.com;

    location /

    {

        proxy_pass      http://qq_com;写上边upstream的名字 

        proxy_set_header Host   $host;

        proxy_set_header X-Real-IP      $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

}

yum install -y bind-uitls

dig qq.com域名解析,能够反馈回来IP

image.png

upstream来指定多个web server


SSL工做原理

         wKioL1mRFErx3kL8AAI9IwRIAN4327.png

1.浏览器发送一个https的请求给服务器;

2.服务器要有一套数字证书,能够本身制做(后面的操做就是阿铭本身制做的证书),也能够向组织申请,区别就是本身颁发的证书须要客户端验证经过,才能够继续访问,而使用受信任的公司申请的证书则不会弹出>提示页面,这套证书其实就是一对公钥和私钥;

3.服务器会把公钥传输给客户端;

4.客户端(浏览器)收到公钥后,会验证其是否合法有效,无效会有警告提醒,有效则会生成一串随机数,并用收到的公钥加密;

5.客户端把加密后的随机字符串传输给服务器;

6.服务器收到加密随机字符串后,先用私钥解密(公钥加密,私钥解密),获取到这一串随机数后,再用这串随机字符串加密传输的数据(该加密为对称加密,所谓对称加密,就是将数据和私钥也就是这个随机字符串>经过某种算法混合在一块儿,这样除非知道私钥,不然没法获取数据内容);

7.服务器把加密后的数据传输给客户端;

8.客户端收到数据后,再用本身的私钥也就是那个随机字符串解密;



生成SSL密钥对

先进入到这个目录下:cd /usr/local/nginx/conf

安装openssl这个包yum install -y openssl

生成一个私钥:openssl genrsa -des3 -out tmp.key 2048//key文件为私钥,输入密码:

image.png

为了方便给它取消密码:openssl rsa -in tmp.key -out aminglinux.key //转换key,取消密码 

删掉没用的这个:rm -f tmp.key

 openssl req -new -key aminglinux.key -out aminglinux.csr//生成证书请求文件,须要拿这个文件和私钥一块儿生产公钥文件

生成公钥文件:openssl x509 -req -days 365 -in aminglinux.csr -signkey aminglinux.key -out aminglinux.crt

 这里的aminglinux.crt为公钥,aminglinux.key是私钥



Nginx配置SSL

生成一个新的配置文件:vim /usr/local/nginx/conf/vhost/ssl.conf//加入以下内容

server

{

    listen 443;

    server_name aming.com;本身定义,好比叫aming.com

    index index.html index.php;

    root /data/wwwroot/aming.com;建立一下

    ssl on;

    ssl_certificate aminglinux.crt;

    ssl_certificate_key aminglinux.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

}

建立一个路径:mkdir /data/wwwroot/aming.com 由于跑配置文件有这个路径

 -t && -s reload //若报错unknown directive “ssl” ,须要从新编译nginx,加上--with-http_ssl_module

方法:

进到这个目录下,cd /usr/local/src/nginx-1.12.1/

./configgure --help |grep -i ssl

添加一条正则表达式:

./configure --prefix=/usr/local/nginx --with-http_ssl_module

make && make install

用命令查看:/usr/local/nginx/sbin/nginx -V 会多一个参数

检查错误:/usr/local/nginx/sbin/nginx -t

重启一下:/etc/init.d/nginx restart

查一下他的监听端口:netstat -lntp 会发现多了一个443端口

image.png

建立一个测试文件

把这句话写入到配置文件去:

echo This is ssl.>/data/wwwroot/aming.com/index.html

要想直接访问IP就编辑hosts:

vi /etc/hosts 增长127.0.0.1 aming.com

curl https://aming.com/

再从你的电脑hosts里添加上你的虚拟机ip:192.168.232.132 aming

用电脑连网输入:https//aming.com 若是不能上查看防火墙

iptables -nvL

iptables -F


php-fpm的pool

vim /usr/local/php/etc/php-fpm.conf//在[global]部分增长

 include = etc/php-fpm.d/*.conf

 mkdir /usr/local/php/etc/php-fpm.d/

 cd /usr/local/php/etc/php-fpm.d/

 vim www.conf //内容以下

[www]

listen = /tmp/www.sock

listen.mode=666

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

继续编辑配置文件

 vim aming.conf //内容以下

[aming]

listen = /tmp/aming.sock

listen.mode=666

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

 检查:/usr/local/php/sbin/php-fpm –t

 重启:/etc/init.d/php-fpm restart


php-fpm慢执行日志

针对刚才上边编辑配置的www.conf进行一个配置

vim /usr/local/php-fpm/etc/php-fpm.d/www.conf//加入以下内容

request_slowlog_timeout = 1

slowlog = /usr/local/php-fpm/var/log/www-slow.log

image.png

模拟测试 

配置nginx的虚拟主机test.com.conf,把unix:/tmp/php-fcgi.sock改成unix:/tmp/www.sock

 从新加载nginx服务

 vim /data/wwwroot/test.com/sleep.php//写入以下内容,故意让它休眠两秒钟

 <?php echo “test slow log”;sleep(2);echo “done”;?>

image.png

 curl -x127.0.0.1:80 test.com/sleep.php 

 cat /usr/local/php-fpm/var/log/www-slow.log

image.png


php-fpm定义open_basedir

好比说我要在aming.com这个池子里边定义

vim /usr/local/php-fpm/etc/php-fpm.d/aming.conf//加入以下内容

php_admin_value[open_basedir]=/data/wwwroot/aming.com:/tmp/

image.png

 建立测试php脚本,进行测试

 再次更改aming.conf,修改路径,再次测试

 配置错误日志

 再次测试

 查看错误日志


php-fpm进程管理

 pm = dynamic  //动态进程管理,也能够是static,若是改为static下边的就不会生效了

 pm.max_children = 50 //最大子进程数,ps aux能够查看

 pm.start_servers = 20 //启动服务时会启动的进程数

 pm.min_spare_servers = 5 //定义在空闲时段,子进程数的最少数量,若是达到这个数值时,php-fpm服务会自动派生新的子进程。

 pm.max_spare_servers = 35 //定义在空闲时段,子进程数的最大值,若是高于这个数值就开始清理空闲的子进程。

 pm.max_requests = 500  //定义一个子进程最多处理的请求数,也就是说在一个php-fpm的子进程最多能够处理这么多请求,当达到这个数值时,它会自动退出。

相关文章
相关标签/搜索