Windows下圖文詳解PHP三種運行方式(php_mod、cgi、fastcgi)

PHP能不能成功的在Apache服務器上運行,就看我們如何去配置PHP的運行方式。PHP運行目前為止主要有三種方式:

a、以模塊加載的方式運行,初學者可能不容易理解,其實就是將PHP集成到Apache服務器,以同一個進程運行。

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的連接。下面我就分別配置這三種運行方式:

1、無論上述哪種方式運行,下面的配置通常都會加上,解壓PHP安裝包到c:/PHP5/,重命名PHP.ini-recommend文件為PHP.ini,分別尋找如下字段編輯,去除前面的分號(注意不要去錯分號,好多是注釋信息,仔細辨認)。

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

2、以模塊的方式運行,在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/會出現如下界面:注意紅色部分和配置的關系

3、cgi的方式運行,需要做如下的配置php配置文件

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,并且在執行完成之后消失:

4、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的運行方式,由于作者本人的水平有限,錯誤之處在所難免!

轉載于:https://www.cnblogs.com/52php/p/5668823.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271367.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271367.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271367.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡基礎:ISO/OSI網絡體系結構知識筆記?

??作者主頁&#xff1a;IT技術分享社區 ??作者簡介&#xff1a;大家好,我是IT技術分享社區的博主&#xff0c;從事C#、Java開發九年&#xff0c;對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽&#xff1a; 數據庫領域優質創作者&#x1f3c6;&#x…

mac下安裝redis

官網地址&#xff1a;https://redis.io/ 二、下載完成后解壓安裝 解壓命令 tar zxvf redis-6.0.6.tar.gz 切換到redis目錄下 cd redis-6.0.6 編譯測試 sudo make test 編譯安裝 sudo make install sudo make test sudo make install

mysql having和where_淺談Mysql中where和having的區別

一、誤區&#xff1a;不要錯誤的認為having和group by 必須配合使用.二、where和having用法解析&#xff1a;1、 where和having都可以使用的場景&#xff1a;select goods_price,goods_name from goods where goods_price > 100select goods_price,goods_name from goods ha…

ds證據理論python實現_ALI模型理論以及Python實現

https://openreview.net/forum?idB1ElR4cgg模型結構和明天要發BiGAN模型一模一樣&#xff0c;但是兩篇論文的作者都是獨立完成自己的內容的。而且從寫作的風格來看emmm完全不一樣ALI跟BiGAN的設計一模一樣&#xff0c;但是就是沒有加Latent regressor。雖然在ALI中也簡要地談到…

IO操作總結

1&#xff0c;讀取文件將文件轉換為二進制流 1 InputStream in new FileInputStream("C:/test.png"); 2 byte[] photo new byte[in.available()]; 3 in.read(photo); 4 in.close(); View Code2&#xff0c;寫文件 1 Outpu…

計算機網絡基礎:網絡標準相關知識介紹

1、常見的制定網絡標準的機構 國際標準化組織、國際電信聯盟、電子工業協會、電氣和電子工程協會、因特網活動委員會 2、常見的網絡標準 2.1 電信標準 國際電信聯盟&#xff08;ITU&#xff09;1947年成為聯合國的一個組織&#xff0c;包括ITU-R、ITU-T、ITU-D組成。 ITU-R:無線…

Long類型轉為String類型

如果java返回給前端的字段有Long類型的&#xff0c;比如主鍵id&#xff0c;那么就要把這個Long類型轉為String類型才可以&#xff0c;不然前端拿到這個字段再傳回給你后端用的時候會導致精度缺失&#xff0c;也就是這個字段的值會改變&#xff0c;原因是java的Long類型是18位&a…

1-5Tomcat 目錄結構 和 web項目目錄結構

對應我的安裝路徑&#xff1a; web項目目錄結構 轉載于:https://www.cnblogs.com/huiziz/p/5671612.html

execjs執行js出現window對象未定義時的解決_10個常見的JS語言錯誤總匯

1、 Uncaught TypeError: Cannot Read Property這是 JavaScript 開發人員最常遇到的錯誤。當你讀取一個屬性或調用一個未定義對象的方法時&#xff0c;Chrome 中就會報出這樣的錯誤。導致這個錯誤發生的原因有很多&#xff0c;常見的一種情況是在渲染 UI 組件時&#xff0c;不正…

安卓logcat工具apk_backdoorapk 安卓APK后門捆綁腳本

項目地址https://github.com/dana-at-cp/backdoor-apk項目介紹backdoor-apk是一個bash寫的腳本&#xff0c;通過msfvenom生成一個android的payload&#xff0c;然后再使用apktools將payload捆綁到正常的apk文件中。使用方法rootkali:~/Android/evol-lab/BaiduBrowserRat# ./bac…

java8 supplier 接口

Supplier 接口 Supplier 接口是一個供給型的接口&#xff0c;其實&#xff0c;說白了就是一個容器&#xff0c;可以用來存儲數據&#xff0c;然后可以供其他方法使用的這么一個接口 *** Supplier接口測試&#xff0c;supplier相當一個容器或者變量&#xff0c;可以存儲值*/Tes…

mantis apache mysql_軟件測試(軟件安裝:php+mysql+apache+mantis過程遇到的問題以及解決方法)...

實驗環境&#xff1a; Windows 7 64位操作系統瀏覽器版本: Mozilla Firefox 41.0.0.5378一&#xff0e;PHP的安裝① 版本: php-5.4.45-Win32-VC9-x86安裝步驟&#xff1a;安裝將PHP安裝到 D:\PHP下(目錄可以自行更改)配置找到PHP目錄里的類似 php.ini-dist &#xff0c;…

c#程序中使用like“查詢access數據庫查詢為空的問題

今天&#xff0c;在開發的過程中發現了一個特別奇怪的問題&#xff1a;access中like查詢時候&#xff0c;在Access數據庫中執行&#xff0c;發現可以查詢出結果&#xff0c;這是在數據庫上執行&#xff0c;select * from KPProj where KpName like *測試*&#xff0c;但是同樣的…

html登錄界面_使用數據庫制作一套注冊登錄系統

經過了那么多個星期的學習&#xff0c;終于到了使用數據庫的階段了&#xff0c;最基本的也就是制作注冊登錄與數據庫連接。首先要制作一個注冊窗口先是html界面<效果如圖&#xff1a;&#xff08;樣子怎么樣不重要&#xff0c;重要的是測試&#xff09;這主要是將form數值發…

java8中Predicate用法

Predicate是個斷言式接口其參數是<T,boolean>&#xff0c;也就是給一個參數T&#xff0c;返回boolean類型的結果。跟Function一樣&#xff0c;Predicate的具體實現也是根據傳入的lambda表達式來決定的。 Testpublic void predicate(){/*** Predicate謂詞測試&#xff0c…

計算機網絡基礎:局域網協議相關知識

1、局域網協議的概念 局域網絡中的通信被限制在中等規模的地理范圍內&#xff0c;比如一所學校&#xff1b;能夠使用具體中等或較高數據速率的物理信道&#xff0c;并且具有較低的誤碼率&#xff1b;局域網絡是專用的&#xff0c; 由單一組織機構所使用。 局域網特點&#xff1…

mysql數據庫交叉連接_【數據庫】內連接、外連接、交叉連接

基本概念關系模型(表)關系模型由關系數據結構、關系操作集合和關系完整性約束三部分組成。關系模型的數據結構非常簡單&#xff1a;一張扁平的二維表。元組&#xff1a;二維表中的具有相同數據類型的某一行屬性&#xff1a;二維表中的具有相同數據類型的某一列笛卡爾積(Cartesi…

C#實現GDI+基本圖的縮放、拖拽、移動

C#實現GDI基本圖的縮放、拖拽、移動示例代碼如下&#xff1a; using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms; namespace ResizableControls{ public …

網絡資產管理系統_固定資產管理系統的三種網絡架構方式

隨著互聯網技術的發展和信息技術的廣泛使用&#xff0c;固定資產管理系統在各行業的應用越來越普及&#xff0c;固定資產管理系統作為當今主流的企業固定資產信息化管理模式&#xff0c;能夠對企業固定資產進行有效管理并提升企業的管理水平。對于固定資產管理系統的網絡結構方…

計算機網絡基礎:廣域網協議相關知識筆記

廣域網常指覆蓋范圍廣、數據傳輸速率較低&#xff0c;以數據通信為目的的數據通信網。廣域網主要是通過專用的或交換式的連接把計算機連接起來。廣域網傳輸協議主要包括&#xff1a;PPP&#xff08;點對點協議&#xff09;、DDN、ISDN&#xff08;綜合業務數字網&#xff09;、…