root@localhost nginx]# yum install gd
yum install mysql*
yum -y install php-fpm
[root@localhost soft]# yum install freetype
[root@localhost php-5.4.19]#yum -y install libpng-devel
[root@localhost php-5.4.19]# yum install libxml2* -y
[root@localhost php-5.4.19]# yum install xml2-config
wget http://museum.php.net/php5/php-5.4.19.tar.gz#http://blog.sina.com.cn/s/blog_702bd5360101f8uc.html
[root@localhost soft]# tar -zxf php-5.4.19.tar.gz
[root@localhost soft]# cd php-5.4.19
nginx+php的编译
apache通常是把php当作本身的一个模块来启动的.
而nginx则是把http请求变量(如get,user_agent等)转发给 php进程,即php独立进程,与nginx进行通讯. 称为 fastcgi运行方式.
所以,为apache所编译的php,是不能用于nginx的.
注意: 咱们编译的PHP 要有以下功能:
链接mysql, gd, ttf, 以fpm(fascgi)方式运行
编译完毕后:
1:
./configure --prefix=/usr/local/fastphp \
--with-mysql=mysqlnd \
--enable-mysqlnd \
--with-gd \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-fpm
make &&make install
nginx+php的配置比较简单,核心就一句话----
把请求的信息转发给9000端口的PHP进程,
让PHP进程处理 指定目录下的PHP文件.
以下例子:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
1:碰到php文件,
2: 把根目录定位到 html,
3: 把请求上下文转交给9000端口PHP进程,
4: 并告诉PHP进程,当前的脚本是 $document_root$fastcgi_scriptname
(注:PHP会去找这个脚本并处理,因此脚本的位置要指对)
t@localhost fastphp]# cp /root/soft/php-5.4.19/php.ini-development ./lib/php.ini
[root@localhost fastphp]# ls sbin/
php-fpm#####重要
[root@localhost fastphp]# cp etc/php-fpm.conf.default etc/php-fpm.conf
[root@localhost fastphp]# ./sbin/php-fpm
[root@localhost fastphp]# ps aux|grep php
root 18790 0.0 0.2 140180 3020 ? Ss 06:09 0:00 php-fpm: master process (/usr/local/fastphp/etc/php-fpm.conf)
nobody 18791 0.0 0.2 140180 2680 ? S 06:09 0:00 php-fpm: pool www
nobody 18792 0.0 0.2 140180 2680 ? S 06:09 0:00 php-fpm: pool www
root 18796 0.0 0.0 103256 832 pts/2 S+ 06:09 0:00 grep php
alhost nginx]# ./sbin/nginx -s reload
php