PHP能不能成功的在Apache服務器上運行,就看咱們如何去配置PHP的運行方式。PHP運行目前爲止主要有三種方式:php
a、以模塊加載的方式運行,初學者可能不容易理解,其實就是將PHP集成到Apache服務器,以同一個進程運行。html
b、以CGI的方式運行,CGI英文叫作公共網關接口,就是Apache在遇到PHP腳本的時候會將PHP程序提交給CGI應用程序(php-cgi.exe)解釋,解釋以後的結果返回給Apache,而後再返回給相應的請求用戶。程序員
c、以FastCGI的方式運行。這種形式是CGI的增強版本,CGI是單進程,多線程的運行方式,程序執行完成以後就會銷燬,因此每次都須要加載配置和環境變量fork-and-execute(建立-執行)。而FastCGI則不一樣,FastCGI 像是一個常駐 (long-live) 型的 CGI,它能夠一直執行着,只要激活後,不會每次都要花費時間去 fork 一次。FastCGI進程管理器自身初始化,啓動多個CGI解釋器進程 (在任務管理器中可見多個php-cgi.exe)並等待來自Web Server的鏈接。下面我就分別配置這三種運行方式:shell
一、不管上述哪一種方式運行,下面的配置一般都會加上,解壓PHP安裝包到c:/PHP5/,重命名PHP.ini-recommend文件爲PHP.ini,分別尋找以下字段編輯,去除前面的分號(注意不要去錯分號,好可能是註釋信息,仔細辨認)。apache
error_reporting = E_ALL //開啓報錯,便於程序員查錯 line 342 display_errors = On //顯示錯誤 line 373 extension_dir = "C:/php5/ext" //php的擴展選項文件所在的目錄 line 542 date.timezone = Asia/shanhai //時區配置 line 716
二、以模塊的方式運行,在Apache(C:/Program Files/Apache Software Foundation/Apache2.2/conf)的配置文件裏添加以下配置服務器
LoadModule php5_module "C:/php5/php5apache2_2.dll" //大約line 127 PHPinidir "C:/php5/php.ini" //修改配置 DirectoryIndex index.html index.php//追加index.php AddType application/x-httpd-php .php //line 408左右添加
接着咱們在apache的根目錄下面,默認C:/Program Files/Apache Software Foundation/Apache2.2/htdocs新建php文件index.php,編輯添加以下代碼:多線程
<?php phpinfo(); ?>
而後咱們在地址欄輸入http://localhost/會出現以下界面:注意紅色部分和配置的關係app
三、cgi的方式運行,須要作以下的配置php配置文件spa
cgi.force_redirect = 0 //原本是 1 而且去掉註釋符號;
修改apache的配置,去掉原來的模塊配置線程
AddType application/x-httpd-php .php LoadModule php5_module "C:/php5/php5apache2_2.dll" PHPinidir "C:/php5/php.ini"
=>加入如下配置
AddHandler cgi-script .cgi // line 396
而後咱們在目錄C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin新建一個cgi文件test.cgi編寫以下代碼:
#!c:/php5/php-cgi.exe <? php php phpinfo(); ?>
最後咱們訪問http://localhost/cgi-bin/test.cgi,出現以下結果則說明配置成功了:
若是同時打開多個則會有不少php-cgi.exe,而且在執行完成以後消失:
四、PHP的fastcig方式運行,首先須要去下載fastcgi模塊,默認是沒有帶這個模塊的,而cgi是自帶的;下載地址http://httpd.apache.org/mod_fcgid/;解壓複製其中的mod_fcgid.so和mod_fcgid.pdb,接下來作以下的配置:
LoadModule fcgid_module modules/mod_fcgid.so // line 128追加 FcgidInitialEnv PHPRC "c:/php5" //php配置文件 line 129追加 AddHandler fcgid-script .php //添加句柄 即後綴 什麼樣的文件須要fastcgi解釋 line 407追加 FcgidWrapper "c:/php5/php-cgi.exe" .php //解釋器路徑 line 408 Options Indexes FollowSymLinks ExecCGI //line 221 追加 ExecCGI 意思是目錄容許執行CGI腳本
是否成功安裝,只須要作個PHP文件檢查就能夠了,咱們就用上面的index.php文件:
終於把PHP的運行方式講完了,初學者必定要親自試驗一下,這篇教程具備必定的難度,要反覆思考才能理解其中的意思,涉及到一些專業知識,固然你暫時能夠直接使用模塊運行方式,等本身對PHP有了必定的理解以後能夠再回頭看看這篇文章,今天我花了幾個小時的時間整理PHP的運行方式,因爲做者本人的水平有限,錯誤之處在所不免!