php的cgi的设置,apache中配置php支持模块模式、cgi模式和fastcgi模式
首先安裝apache、mysql和php,依次順序安裝。
1.apache、mysql的安裝比較簡單,略過
2. php的安裝,我安裝的是php5.3.6內置了php-fpm,所以不需要再單獨下補丁了。
./configure –prefix=/usr/local/php5 /? --with-mysql=/usr/local/mysql /? --enable-fpm?? --with-apxs2=/usr/local/apache/bin/apxs
注意:
--enable-fastcgi
--enable-force-cgi-redirect
這2個php新版本已經內置支持,所以如果加上這2個參數,make完畢會提示這2個參數找不到,所以不需要加這2個參數了。
--with-apxs2
這個參數看到有的文章說需要fastcgi模式的話,就不能配置這個,其實也不完全是這樣,這個參數的用途只不過是把php的解釋模塊編譯成so文件添加到apache的modules中,并且自動添加到conf文件。如果我們不想用模塊模式的話,在httpd.conf中把:LoadModule php5_module?modules/libphp5.so這行注釋掉就可以了。
3.mod_fastcgi的安裝
# 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
即可。然后在
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這行貌似沒什么關系,只要配置了以下模塊
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
就會自動走到fastcgi模式。
然后重啟apache,這個時候用 ps aux|grep php就會發現有很多php-cgi進程在運行。說明配置生效
4.FastCgi模式,用php-fpm進程管理器
首先要添加fastcgi模塊到httpd.conf配置文件:
LoadModule fastcgi_module modules/mod_fastcgi.so
接著修改配置文件成:
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
注意,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 www
nobody??? 7004? 0.0? 1.3? 13052? 1660 ???????? S??? 15:20?? 0:00 php-fpm: pool www
nobody??? 7005? 0.0? 1.3? 13052? 1660 ???????? S??? 15:20?? 0:00 php-fpm: pool www
nobody??? 7006? 0.0? 1.3? 13052? 1660 ???????? S??? 15:20?? 0:00 php-fpm: pool www
nobody??? 7007? 0.0? 1.3? 13052? 1660 ???????? S??? 15:20?? 0:00 php-fpm: pool www
nobody??? 7008? 0.0? 1.3? 13052? 1660 ???????? S??? 15:20?? 0:00 php-fpm: pool www
nobody??? 7019? 0.0? 1.3? 13052? 1672 ???????? S??? 15:20?? 0:00 php-fpm: pool www
nobody??? 7020? 0.0? 1.3? 13052? 1676 ???????? S??? 15:20?? 0:00 php-fpm: pool www
nobody??? 7021? 0.0? 1.3? 13052? 1672 ???????? S??? 15:20?? 0:00 php-fpm: pool www
nobody??? 7022? 0.0? 1.3? 13052? 1676 ???????? S??? 15:20?? 0:00 php-fpm: pool www
總結
以上是生活随笔為你收集整理的php的cgi的设置,apache中配置php支持模块模式、cgi模式和fastcgi模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php七牛云储存图片,wordpress
- 下一篇: Java 中JProgressBar,J