apache中配置php支持模塊模式、cgi模式和fastcgi模式

首先安裝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

相關文章
相關標籤/搜索