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