0 Comments

PHP与PHP-FPM的安装及优化(1)

发布于:2013-03-01  |   作者:广州网站建设  |   已聚集:人围观
PHP与PHP-FPM的安装及优化(1)

1.下载安装包

www.php.net官方网站下载PHP源码包,这里下载的是稳定版php-5.2.13.tar.gz。

http://php-fpm.org/downloads/下载对应的PHP-FPM源码包,这里下载的是php-5.2.13-fpm-0.5.13.diff.gz。

需要注意,在下载软件包版本时,尽量使PHP和PHP-FPM版本一致,如果版本之间相差太大,可能会出现兼容的问题。

2.配置安装环境

安装PHP需要下面软件包的支持,如果没有安装,请自行安装。


  1. gcc gcc-c++ libxml2 libxml2-devel autoconf  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel 

由于各个Linux系统版本有不确定性,读者也可以在安装PHP过程中,根据错误提示信息,安装对应的软件库。

3.开始编译安装PHP和PHP-FPM

编译安装PHP和PHP-FPM很简单,下面是安装过程:


  1. [root@localhost local]#tar zxvf php-5.2.13.tar.gz  
  2. [root@localhost local]#gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1  
  3. [root@localhost local]#cd php-5.2.13  
  4. [root@localhost php-5.2.13]#./configure  --prefix=/usr/local/php --enable-fastcgi --enable-fpm  
  5. [root@localhost php-5.2.13]#make  
  6. [root@localhost php-5.2.13]#make install  
  7. [root@localhost php-5.2.13]cp php.ini-dist /usr/local/php/lib/php.ini 

其中,第二步将PHP-FPM作为补丁加入PHP源码中。

在“./configure”编译选项中,指定将PHP安装到/usr/local下;“--enable-fastcgi”是启用对PHP的FastCGI支持;“--enable-fpm”是激活对FastCGI模式的fpm支持。

在编译PHP时可以加入很多编译选项,但是这里为了介绍PHP的FastCGI功能没有加入更多的编译选项。

4.配置与优化PHP-FPM

PHP的全局配置文件是php.ini,在上面的步骤中,已经将此文件复制到了/usr/local/php/lib/php.ini下。可以根据每个应用需求的不同,对php.ini进行相应的配置。

下面重点介绍PHP-FPM引擎的配置文件。

根据上面指定的安装路径,PHP-FPM的默认配置文件为/usr/local/php/etc/php-fpm.conf。

php-fpm.conf是一个XML格式的纯文本文件,其内容很容易看明白。这里重点介绍几个重要的配置标签。

标签listen_address是配置FastCGI进程监听的IP地址以及端口,默认是127.0.0.1:9000。


  1. <value name="listen_address">127.0.0.1:9000</value> 

 

标签display_errors用来设置是否显示PHP错误信息,默认是0,不显示错误信息,设置为1可以显示PHP错误信息。

  1. <value name="display_errors">0</value> 

 

标签user和group用于设置运行FastCGI进程的用户和用户组。需要注意的是,这里指定的用户和用户组要和Nginx配置文件中指定的用户和用户组一致。
广州网站建设,网站建设,广州网页设计,广州网站设计
  1. <value name="user">nobody</value> 
  2. <value name="group">nobody</value> 

 

标签max_children用于设置FastCGI的进程数。根据官方建议,小于2GB内存的服务器,可以只开启64个进程,4GB以上内存的服务器可以开启200个进程。

  1. <value name="max_children">5</value> 

 

标签request_terminate_timeout用于设置FastCGI执行脚本的时间。默认是0秒,也就是无限地执行下去,可以根据情况对其进行修改。
广州网站建设,网站建设,广州网页设计,广州网站设计
  1. <value name="request_terminate_timeout">0s</value> 
标签:
飞机