135956557-小三IT自学群,任何IT问题都可以一起讨论,各种服务网络等等
---------------------------------------------------------------------------
了解PHP的工作模式,一共是三种
CGI模式:性能不是很好,安全性也不行基本已经淘汰
Apache模块:需要php跟Apache安装在同一台服务器上,正常情况都是分开的独立服务器
FastCGI:是一个独立进程,所有php都是一个php-fpm组件负责管理,
工作机制
客户端发起请求,分为两种,一种是静态,直接Apache相应回复
另一种是动态,其中php或者perl脚本解释语言则Apache服务器通过fastcgi调用php服务器执行返回给Apache然后Apache负责返回客户端
而且各种http服务是不能直接连接mysql,需要通过php进行连接,返回,响应.

centos7-php安装_php


-------------------------------------------------------------------------------------------
安装php   
解决依赖关系
 yum -y install libxml2-devel libcurl-devel openssl-devel bzip2-devel
然后安装 
libmcrypt-2.5.7.tar.gz
 
./configure --prefix=/usr/local/libmcrypt && make && make install
然后安装php

./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install
--------------------------------------------------------------------------------------------------- 

相关配置项
 --prefix=/usr/local/php5.6     //安装位置

--with-mysql=mysqlnd   //支持mysql

--with-pdo-mysql=mysqlnd  //支持pdo模块

--with-mysqli=mysqlnd   //支持mysqli模块

注:上面的三选项的作用:数据库与php不在一个服务器上,指定此种方式,安装数据库连接驱动

--with-openssl  //支持openssl模块

--enable-fpm  //支持fpm模式

--enable-sockets  //启用socket支持

--enable-sysvshm  //启用系统共享内存支持

--enable-mbstring  //多字节字串、像我们的中文就是多字节字串

--with-freetype-dir  //支持freetype、就要装freetype-devel、跟字体相关的、字体解析工具

--with-jpeg-dir

--with-png-dir

注:上面的二选项的作用:处理jpeg、png图片的、php可以动态生成jpeg图片 

--with-zlib //是个压缩库、在互联网传输时用来压缩传输的

--with-libxml-dir=/usr //这个libxml是用来解析xml的、指定/usr下

--enable-xml   //支持xml的

--with-mhash      //支持mhash

--with-mcrypt=/usr/local/libmcrypt    //libmcrypt-devel这个程序包所指定的

--with-config-file-path=/etc    //指定配置文件的存放路径的

--with-config-file-scan-dir=/etc/php.d  //配置文件扫描路径

--with-bz2    //支持BZip2

为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项

如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。
 -------------------------------------------------------------------------------------------
php 配置文件

centos7-php安装_php_02


php-fpm 脚本

centos7-php安装_php_03


修改php-fpm配置文件

cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf

修改配置
pid = run/php-fpm.pid
listen = 0.0.0.0:9000   监听IP  最好设置http的

pm.max_children = 5   子进程最大数
m.start_servers             启动时进程数  这两个最好一致
pm.min_spare_servers    空闲时最小线程数
pm.max_spare_servers    空闲时最大连接数,这俩最好也一样,活着最小一定小于最大值. 
配置完成启动fpm,查看是否开启,防火墙开启9000/tcp端口 

centos7-php安装_php_04