1.安装前准备
yum -y install gd-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel fontconfig curl-devel libxml2-devel

2.安装php
#tar -zxvf php-5.3.8.tar.gz
#cd php-5.3.8

#./configure --prefix=/opt/modules/php/ --with-mbstring --enable-mbstring=all --with-config-file-path=/opt/modules/php/etc --with-mysql=/opt/modules/mysql/ --with-mysqli=/opt/modules/mysql/bin/mysql_config --with-libxml-dir --with-jpeg-dir --with-png-dir --with-zlib --with-curl --with-gd --with-openssl --enable-fpm

--prefix          如果不配置该选项,安装后可执行文件默认放在/usr/local/bin

--with-config-file-path  设置php.ini的搜索路径,默认是PREFIX/lib

--with-mysql       mysql的安装地址

--with-mysqli

--with-libxml-dir

--with-jpeg-dir

 --with-png-dir

--with-zlib

--with-curl

--with-gd

--with-openssl

--enable-fpm

 

 php核心配置选项列表:

http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7216695c7150888c40e8e3b081d0035bda66f780d558e99283c54e8090bfdf04121675e67f18cc8ff0887f9866d72c8713b671cf05613a30eafbd5124b165cb1cb3b81897adf04484afa2828208079106127bf0e78b2c1715ba3bab4a66f4a7e95f152907bb9d7236b903&p=9072dd16d9c107b51abd9b7e0e12c6&newp=90759a45d5c701fc57efc027504082231610db2151d2d401298ffe0cc4241a1a1a3aecbf27291100d2cf796605aa4f59e1f73071320634f1f689df08d2ecce7e6f&user=baidu&fm=sc&query=--with-config-file-path&qid=f808f9000005a102&p1=3

 

 

 

#make && make install
#cp /opt/modules/php/etc/php-fpm.conf.default /opt/modules/php/etc/php-fpm.conf#vi /opt/modules/php/etc/php-fpm.conf
----------------------更改 配置文件中的;
user = wwwgroup = www [global]pid = run/php-fpm.piderror_log = log/php-fpm.loglog_level = noticeemergency_restart_threshold = 0emergency_restart_interval = 0[www]pm.start_servers = 20pm.min_spare_servers = 5pm.max_spare_servers = 35pm.max_requests = 500-------------------------
#cd /opt/modules//php/sbin/
#cp php-fpm /etc/init.d/php-fpm
#chmod 755 /etc/init.d/php-fpm
#chkconfig php-fpm on #设置开机启动

#选择PHP.ini配置文件cp opt/modules/src/php-5.3.8/php.ini-production /opt/modules/php/etc/php.ini
#vi /opt/modules/php/etc/php.ini

(以下参考资料)
http://www.cnblogs.com/wubaiqing/archive/2011/11/08/2241195.html
http://www.jb51.net/article/26597.htm
http://www.2cto.com/os/201202/120046.html
http://wenku.it168.com/d_001085800.shtml

 


 遇到问题(1):

php-fpm在/usr/local/php/sbin/下
#/usr/local/php/sbin/php-fpm ========启动php-fpm
启动错误解决:
ALERT: [pool wwwpm.min_spare_servers(0) must be a positive value
编辑php-fpm.conf找到pm.min_spare_servers 去除;号,注意非注释内容pm.min_spare_servers
ALERT: [pool www] pm.max_spare_servers(0) must be a positive value
编辑php-fpm.conf找到pm.max_spare_servers 去除;号,同样非注释内容pm.max_spare_servers
WARNING: [pool www] pm.start_servers is not set. It's been set to 20.
编辑php-fpm.conf找到pm.start_servers 去除;号,同样非注释内容pm.start_servers
ERROR: bind() for address '127.0.0.1:9000' failed: Address already in use (98)
# netstat -ntlpps -ef|grep php查看进程,有N多进程
nobody 26152 26151 0 15:45 ? 00:00:00 php-fpm: pool www 
nobody 26153 26151 0 15:45 ? 00:00:00 php-fpm: pool www 
nobody 26154 26151 0 15:45 ? 00:00:00 php-fpm: pool www 
nobody 26155 26151 0 15:45 ? 00:00:00 php-fpm: pool www
...........................
#killall php-fpm 结束所有php-fpm进程(太好用)
再启动php-fpm
#/usr/local/php/sbin/php-fpm
成功

 


 

遇到问题(2):

使用curl命令打开php文件,文件可以打开但未执行,修改nginx的conf文件如下:

location ~ .*\.(php|php5)?$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index test.php;
include fastcgi.conf;

开始include写的fastcgi_params,一直不对,上网查询得到解释::::

很久很久以前,大家都是include fastcgi_params,而且在后面加上一句
fastcgi_param SCRIPT_FILENAME /var/www/foo$fastcgi_script_name;
因为这个指令它是数组形态的,并不会说,同名的指令,后面会替换掉前面的.
而nginx的开发者慢慢发现大家写死这个root有问题.或是不方便?
于是给了一个方案,或是说,前面的时候,那块还不能写变量?里面是硬编码写死的?
后面可以了.但是估计很多人还是旧写法,如果直接把这句加入params这个文件的前面话,就会可能跟nginx.conf中同时出现,了二次.就会导致很多莫名的问题,
有可能某些地方会用前面一个指令的路径,而另一个地方会可能用到后面一个指令.
所以,作者保留params,新加一个文件叫fastcgi.conf.
而我却刚好理解成这二个文件是相同的...但是因为没有提供这个指令,所以,导致没有文件发送到php gate中.那么.就返回了空白内容


 

遇到问题(3):

php命令找不到

解决办法:设置软连接,把安装目录的bin/php连接到根目录下得bin文件夹里,即可顺利执行~

 


 

<?php phpinfo();?>

 

第一行就可以看到 我的php版本