最近php又爆出漏洞:
『當 php 以 cgi 模式執行時 (如 apache 的 mod_cgid), php-cgi 會接受處理乙個查詢字串作為命令列引數以開啟某些功能
如 -s, -d 或 -c 傳遞給 php-cgi, 此處存在的漏洞可以允許攻擊者檢視原始碼或進行任意**執行'
然後php 開發者向 php 5.3.12 和 5.4.2 發布了補丁,但很快被發現補 丁並未能真的修補該漏洞。現在php已經發布了php 5.4.3和5.3.13來解決這個漏洞
那麼怎麼檢視php的執行模式呢
可以直接使用phpinfo()函式來進行檢視
或者使用php_sapi_name()函式來檢視。
一般情況下,在apache配置檔案中使用 loadmodule
的方式都是mod_php方式執行的php
下面說明一下這兩種執行方式的區別
以cgi方式執行php,意味著apache需要知道php執行檔案的位置,然後apache才能執行php,當我們瀏覽乙個頁面時,apache會去呼叫php可執行檔案來解析,這時php需要讀取配置檔案(php.ini),載入配置檔案中啟用的所有擴充套件模組,然後開始解析php指令碼,每次瀏覽頁面都要重複上面的動作(讀取配置檔案->載入擴充套件模組->解析指令碼)。
以mod_php模式執行php,意味著php是作為apache的乙個模組來啟動的,因此只有在apache啟動的時候會讀取php.ini配置檔案並載入擴充套件模組,在apache執行期間是不會再去讀取和載入擴充套件模組的,(這也是為什麼當我們以這種模式執行php時每次修改php.ini的配置資訊都需要重啟apache來使配置生效)
顯然使用mod_php的方式執行php效率更高,因為配置檔案和擴充套件模組只會載入一次。因此我們應該優先使用這種方式執行php,只有頻繁的改動php.ini配置,而又不想重啟apache時才使用cgi模式。
C DLL匯出的兩種方式和鏈結的兩種方式
第一種 匯出方式 extern c declspec dllexport int plus int x,int y extern c declspec dllexport int sub int x,int y extern c declspec dllexport int mul int x,in...
PHP 使用soap有兩種方式。
一 用wsdl檔案 伺服器端。class service public function add a,b server new soapserver soap.wsdl array soap version soap 1 2 server setclass service server handle...
php擴充套件庫兩種安裝方式
pecl擴充套件庫是通過pear 打包系統來的 php 擴充套件庫倉庫。pecl命令類似centos的yum工具。php的擴充套件庫可以通過pecl工具進行安裝,也可進行原始碼編譯安裝。比如我們要安裝擴充套件庫solr,樣例如下 pecl install solr 2.4.0.tgz 2 原始碼安裝...