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