首先安裝apache、mysql和php,依次順序安裝。php
1.apache、mysql的安裝比較簡單,略過mysql
2. php的安裝,我安裝的是php5.3.6內置了php-fpm,因此不須要再單獨下補丁了。sql
./configure –prefix=/usr/local/php5 / --with-mysql=/usr/local/mysql / --enable-fpm --with-apxs2=/usr/local/apache/bin/apxs
apache
注意:vim
--enable-fastcgiapp
--enable-force-cgi-redirectphp-fpm
這2個php新版本已經內置支持,因此若是加上這2個參數,make完畢會提示這2個參數找不到,因此不須要加這2個參數了。 測試
--with-apxs2進程
這個參數看到有的文章說須要fastcgi模式的話,就不能配置這個,其實也不徹底是這樣,這個參數的用途只不過是把php的解釋模塊編譯成so文件添加到apache的modules中,而且自動添加到conf文件。若是咱們不想用模塊模式的話,在httpd.conf中把:LoadModule php5_module modules/libphp5.so這行註釋掉就能夠了。get
3.mod_fastcgi的安裝
#wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
# tar -zxvf mod_fastcgi-2.4.6.tar.gz
# cd mod_fastcgi-2.4.6
# cp Makefile.AP2 Makefile
# vim Makefile 將Makefile中的路徑改爲你的apache的安裝路徑
# make install 安裝成功
安裝成功後,會自動把mod_fastcgi.so複製到/usr/local/apache/modules目錄
接下來是如何配置這4種模式:
1.模塊模式
這種模式最簡單,在http.conf中增長
LoadModule php5_module modules/libphp5.so
便可。而後在
<IfModule mime_module>
AddType application/x-httpd-php .php
AddType applicaiton/x-httpd-php-source .phps
2.CGI模式
這種模式須要註釋掉
LoadModule php5_module modules/libphp5.so 這行。若是不註釋這行會一直走到handler模式。也就是模塊模式。
而後在httpd.conf增長action:
Action application/x-httpd-php /cgi-bin/php-cgi
若是在/cgi-bin/目錄找不到php-cgi.可自行從php的bin裏面cp一個。
而後重啓apache,再打開測試頁面發現Server API變成:CGI/FastCGI。說明成功切換爲cgi模式。
3.FastCgi模式,用apche內置進程管理器
首先要添加fastcgi模塊到httpd.conf配置文件:
LoadModule fastcgi_module modules/mod_fastcgi.so
這種模式註釋不註釋LoadModule php5_module modules/libphp5.so這行貌似沒什麼關係,只要配置瞭如下模塊
<IfModule fastcgi_module>
FastCgiServer /usr/local/apache/cgi-bin/php-cgi -processes 20
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php-cgi
</IfModule>
就會自動走到fastcgi模式。
而後重啓apache,這個時候用 ps aux|grep php就會發現有不少php-cgi進程在運行。說明配置生效
4.FastCgi模式,用php-fpm進程管理器
首先要添加fastcgi模塊到httpd.conf配置文件:
LoadModule fastcgi_module modules/mod_fastcgi.so
接着修改配置文件成:
<IfModule fastcgi_module>
FastCgiExternalServer /usr/local/apache/cgi-bin/php-cgi -host 127.0.0.1:9000
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php-cgi
</IfModule>
注意,127.0.0.1:9000是php-fpm的開啓端口,因此咱們還須要把php-fpm打開。
/usr/local/php/sbin/php-fpm
打開後再ps aux|grep php,會發現不少php-fpm的進程:
root 7002 0.4 1.5 13060 1912 ? Ss 15:20 0:00 php-fpm: master process (/usr/local/php5/etc/php-fpm.conf)nobody 7003 0.0 1.3 13052 1656 ? S 15:20 0:00 php-fpm: pool wwwnobody 7004 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool wwwnobody 7005 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool wwwnobody 7006 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool wwwnobody 7007 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool wwwnobody 7008 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool wwwnobody 7019 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool wwwnobody 7020 0.0 1.3 13052 1676 ? S 15:20 0:00 php-fpm: pool wwwnobody 7021 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool wwwnobody 7022 0.0 1.3 13052 1676 ? S 15:20 0:00 php-fpm: pool www