導航:首頁 > 編程語言 > 動態裝載php模塊

動態裝載php模塊

發布時間:2022-08-20 14:58:19

php如何安裝及配置

將下載的壓縮解壓到純英文目錄下;

2.因為PHP是被動型的服務,目的就是為apache提供了處理php代碼的服務。因此我們要做的配置就是告訴apache,PHP在哪?需要它處理什麼樣的文件。

所以,打開apache的配置文件,httpd.conf。

搜索LoadMole,找到之後按照相同的格式載入php模塊,輸入:

接著搜索mime_mole,找到後按照相同格式在該標簽內,輸入:

放的位置是沒什麼要求,最好是能跟好隊形,好修改。

上面添加的配置,分別是告訴php的位置,然後告訴伺服器.php的文件會被當作「application/x-httpd-php」格式處理,而伺服器里處理application/x-httpd-php格式的就是php。這樣配置之後,一旦是.php的文件伺服器都會調用我們的php來處理。

到這里php代碼就可以正常使用了。

3.php的配置以及添加擴展

php本身的配置是要自己創建的。

首先,在解壓的php目錄下找到php.ini-development文件,這是php提供的配置模版,復制並修改文件名為php.ini。

由於php是被動服務,它的配置文件也一樣是apache來調用,所以還是要到apache的配置文件httpd.conf里添加:

接著,如果要添加擴展,可以在php的配置文件php.ini里搜索extension_dir,找到下圖:

php配置文件的注釋是靠「;」,這項配置是說明擴展文件的所在目錄。

按格式加上:extension_dir = "你的擴展文件目錄"

你的擴展文件目錄就是php解壓目錄下的ext文件夾,即:"解壓目錄/ext"。

接著需要告訴php載入哪些擴展:

在php.ini里添加:extension=你要添加的擴展名字

㈡ Apache2.2.16 如何配置載入PHP 模塊急,感謝!!

1、讓你的PHP支持資料庫,把php5文件夾里的「libmysql.dll」和ext文件夾正的「php_mysqli.dll」復制到C:/WIDNWOS下;
2、然後在「PHP.ini」裡面打開相應的資料庫擴展找到「Extension=php_mysql.dll,Extension=php_mysqli.dll,Extension=php_pdo.dll,Extension=php_pdo mysql.dll」把前面的分號去掉就相當於開啟了擴展了,以後需要什麼擴展都相以通過相應的方法來開啟,在下面加入擴展的路徑」Extension_dir="X:/X/php5/ext",這樣你的PHP就支持資料庫了,還有最重要的一部就是開啟記得重新啟動Apache。

㈢ php fpm如何增加拓展

當伺服器上PHP已經安裝好,需要額外添加PHP擴展時怎麼辦?不需要重新安裝PHP,有了phpize我們可以在原有的PHP基礎之上直接安裝擴展庫。
這次編譯僅僅只是單獨編譯PHP的擴展庫,接下來將編譯好的擴展庫加入到現在運行的php中,不對現在運行的php重新編譯,所以沒有一點的影響。

下面我們演示安裝xsl的擴展(不一定常用,僅做為一個範例)
做法一:
1.找到當前運行的php版本的源代碼目錄,如php-5.2.3。進入xsl擴展庫目錄。
$cd /home/pkgs/php-5.3.3/ext/xsl

2.調用phpize程序生成編譯配置文件。
$/home/app/php5.3.3/bin/phpize

3.編譯擴展庫,分別執行下面的configure和make命令
$./configure-with-php-config=/home/app/php5.3.3/bin/php-config
這一步執行通過後,再執行make命令,如果configure執行不通過,則查找錯誤原因。
$make
#make成功執行後,生成的擴展庫文件在當前目錄的 moles子目錄下,
如/home/php-5.3.3/ext/curl/moles/xsl.so

4.配置php.ini文件
#將編譯好的擴展庫文件復制到PHP的擴展目錄下,可通過查看phpinfo信息。。
$ cp /home/pkg/php-5.3.3/ext/xsl/moles/xsl.so /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626

#在php.ini文件中找到設置擴展目錄的位置,然後將擴展路徑設置到php安裝目錄/extension/no-debug-non....目錄下,並添加擴展庫位置。
extension_dir /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626」
extension=xsl.so
5.重啟php,查看phpinfo信息,即可看到剛才添加進去的xsl擴展庫。(如果有多個php-fpm進程的話,平滑重啟主進程即可:kill -USR2 pid)

㈣ 怎樣在apache2.2.17中載入PHP模塊

打開apache官方網站 http://archive.apache.org/dist/httpd/binaries/win32/ 或者鏡像網站 http://apache.mirror.phpchina.com/httpd/binaries/win32/,下載裡面的apache_2.2.17-win32-x86-no_ssl.msi安裝文件。其中,同一版本有兩種類型:no_ssl和openssl,openssl多了個ssl安全認證模式,它的協議是HTTPS而不是HTTP,這就是帶有SSL的伺服器與一般網頁伺服器的區別了。一般情況下,我們下載no_ssl版本的就ok了。下載好apache安裝文件後,點擊安裝,在連續3次next後,將進入server information配置界面,要求輸入network domain、server domain和網站管理員的郵箱地址,普通用戶可以隨便按照格式填一下就行了。再次按Next後,出現選擇安裝路徑的界面,默認的路徑比較長,pharmar把安裝路徑修改為:「D:\Program Files\Apache\」,繼續安裝,直到完成。安裝完畢,apache就自動啟動,可以測試apache是否成功啟動。在瀏覽器地址欄里輸入: http://localhost/或 http://127.0.0.1/,如果出現「It works.」,那麼恭喜你,apache已經成功安裝了;同時在電腦右下角的任務欄里有一個綠色的apache伺服器運行圖標。apache還有一個配置文件:httpd:conf 需要配置,以便php運行。位置為:D:\Program Files\Apache\conf目錄里。打開httpd:conf:
1)、查找「DocumentRoot」,這里是指定主頁放置的目錄。默認是:「D:\Program Files\Apache\htdocs」,你可以使用默認的目錄,也可以自己定義一個,如:「D:/PHP」。注意:目錄末尾不要加「/」。
2)、查找「DirectoryIndex」,這里是默認首頁文件名,可以在index.html 的後面加入index.php等。每種類型之間都要留一個空格。
3)、查找
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
修改為:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
</Directory>
如果不改這里的話,可能會出現 You don't have permission to access / on this server. 這樣的錯誤提示,尤其在改變了默認主頁的路徑後。注意:每次修改httpd:conf文件後,都要重啟apache伺服器。另外,如果你的win32系統上同時也運行iis伺服器,那麼就要先停止iis伺服器的運行,然後再啟動apache,否則apache伺服器無法啟動。

Php的安裝與配置方法首先從php的官方網站 http://www.php.net/downloads.php 下載windows版本的,有兩種版本:PHP 5.3.4 zip package和PHP 5.3.4 installer,目前最新版本就是5.3.4,pharmar使用的是5.3.4版本。PHP 5.3.4installer為自動安裝方式,雖然比較自動化,但在很多方面受到限制,因此pharmar不推薦使用這種方式,下面介紹PHP 5.3.4zip package壓縮包方式下的手動安裝。1)、將PHP的壓縮包zip解壓到一個目錄下,推薦:「C:/PHP」,pharmar的是D:\Program Files\Php。
2)、將PHP目錄(D:\Program Files\Php)下的 php.ini-dist 文件重命名為 php.ini,PHP的配置文件就是它,修改以下幾個地方,修改好後把 php.ini 文件復制到 C:\WINDOWS\ 目錄里:
extension_dir="D:\Program Files\Php\ext" ,指向php文件夾下放置「php_*.dll」文件的路徑。PHP4和PHP5的路徑在這里有所區別。
doc_root="D:\PHP" ,指向前面apache設置的首頁位置;
default_charset="gb2312" ,修改默認字元集,這里,如果前面有分號「;」,去掉這個分號;
register_globals=Off 改為 register_globals=On ,使傳遞全局變數有效;
extension=php_dba.dll 如果前面有分號,取消分號,以下同;
extension=php_dbase.dll
extension=php_gd2.dll GD庫做圖,一般用於圖形驗證碼;
extension=php_mysql.dll 用於連接MYSQL資料庫;
3)、將PHP目錄下的 php5ts.dll 文件拷貝到 C:\WINDOWS\system32 目錄。
4)、最後修改 Apache 的 httpd.conf 文件。在該文件的末尾添加如下2行,表示以模塊方式安裝PHP進入Apache:
LoadMole php5_mole D:/Program Files/Php/php5apache2_2.dll
AddType application/x-httpd-php .php注意:第一行的目錄路徑要更新為當前版本的apache動態鏈接庫,比如這里我使用的是apache2.2.17版本和php5.3.4,那這個文件必須是php5apache2_2.dll,而不能是php5apache.dll、php5apache2.dll等。第二行為php腳步的後綴。
php4版中,需要添加一行 AddType mod_php4.c,而在php5中,就不需要這樣的一行 AddType mod_php5.c了,php5已經集成,否則 apache 啟動不了。以上就完成了apache和php的配置過程了,重啟apache。在伺服器的默認目錄「D:\Program Files\Apache\htdocs」里新建文件index.php,寫上如下代碼:
<?php
phpinfo();
?>
在瀏覽器地址欄里輸入 http://127.0.0.1/ 或 http://localhost/ ,你就會看到php版本信息了。到此為止,php和apache就已經成功的安裝了。這里有個細節:apache的配置文件 httpd.conf 中的目錄分割符號是「/」,而 PHP 的配置文件 php.ini 里的目錄則要求是反斜線 「 \」,不要搞混了哦。MYSQL的安裝就簡單了。到官方網站 http://dev.mysql.com/downloads/mysql/5.0.html,下載windows平台下的 mysql ,選擇 Windows ZIP/Setup.EXE (x86) 最新版本是 5.1.51 ,下載即可。直接安裝,安裝完成後,可以進入配置向導,設置mysql資料庫密碼。一切OK。
關於mysql的安裝與配置見:phpMyAdmin安裝配置方法和問題解決

pharmar安裝過程中遇到的錯誤:
在 Windows 下安裝 PHP 後 Apache 出現 LoadMole takes two arguments 的錯誤,這個主要原因就是httpd.conf中的這句:
LoadMole php5_mole D:\Program Files\PHP\php5apache2_2.dll
解釋程序把Program Files中的空格當成了兩個參數的分隔符號,因此語句中不能出現空格。在網上找了半天也沒找到解決方法,最後用一級目錄符號才解決問題,改成如下:
LoadMole php5_mole ../php/php5apache2_2.dll
因為apache安裝在D:\Program Files\Apache\目錄下,PHP安裝在D:\Program Files\php\,因此../就表示D:\Program Files\目錄,這個終於搞定了,希望大家在安裝與配置過程中多動動腦筋總會有辦法的。

㈤ 如何安裝PHP模塊

php模塊安裝的方式
1、靜態安裝
將先將在安裝php之前先將需要安裝的程序裝上,如ftp、mhash、mcrypt……安裝完成後,解壓php安裝包,執行./configure --with-ftp --with-mhash --wth-mcrypt等等。後面具體跟的參數可以參看./configure --help查看。編譯好後,執行make && make install 就行了。
2、動態安裝
而在往往我們進行編譯php時經常會忘記添加某擴展,後來想添加擴展,但是因為安裝php後又裝了一些東西如PEAR等,不想再重新裝php,於是可以採用phpize來動態載入需要安裝的模塊。
具體實現方法如下(這里以忘記安裝pdo_mysql模塊為例):
cd /root/source/php-5.3.10/ext/pdo_mysql
/usr/local/php/bin/phpize

在安裝完mysql後,並不是進入/root/source/mysql-5.5.21目錄運行phpize,而是進入php的源文件中要增加的擴展模塊的文件目錄---也就是/root/source/php-5.3.10/ext/pdo_mysql目錄執行phpize。如果不是這樣操作的話就會提示下面的錯誤:
Cannot find config.m4.
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the mole

關於上面的這個錯誤,我不得不鄙視下網上有些自以為是的傢伙,自認為對所有的安裝操作很懂,報上面的錯誤的時候,去修改源代碼,搞的亂七八糟,誤人子弟。根本不按php官方的文檔操作。

目錄/root/source/php-5.3.10/ext/pdo_mysql ,在運行phpize命令前並沒有configure文件,只有config.m4文件。運行phpize就生成了一個可執行的configure文件。此時就可以按照下的方法編譯了:
./configure --with-php-config=/usr/bin/php-config (還可以加一些其他的參數,可通過./configure --help查看)
make
make install

編譯完成後會提示擴展模塊生成在/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626目錄。
修改php.ini文件
vi /usr/local/php/etc/php.ini
在其文件結尾加入下面的內容:
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626"
extension=pdo_mysql.so

安裝完成後,重啟php-fpm和web伺服器。(因為我用的是php-fpm和tengine,如果用的是apache則也重啟相應的程序,重新載入就行了)

㈥ 如何安裝新的PHP擴展模塊

php安裝好後,可能在初次安裝時,會有些模塊會有遺漏,但是我們又不想重新編譯php,因為耗時是比較長的。我們可不可以在不重新編譯安裝php的情況下,來為php單獨添加某一個模塊呢?查找資料,發現還是有方法的,重點就是phpize了,於是寫了這篇文章.

下面我們就以單獨為php載入mysqli模塊為例,演示如何動態為php添加模塊。

1、找到php原碼安裝文件
2、cd /home/php/ext/myslqi
3、運行 /usr/local/php/bin/phpize
4、/configure –with-php-config=/usr/local/php/bin/php-config
5、make && make install
6、安裝完成之後會在系統/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/這個目錄下面生成mysqli.so的庫文件
7、編輯php.ini文件,指定php到哪人目錄讀取模塊
vi /usr/local/php/etc/php.ini
extension_dir=」/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613″
extension=mysqli.so
8、重啟php服務 /usr/local/php/sbin/php-fpm restart
7、/usr/local/php/bin/php -m|grep mysqli 查看mysqli.so是否存在

如果步驟正確,你的人口也不差的情況下,應該這樣php的動態模塊載入就完成了。

㈦ apache怎麼載入php

Apache對於php的解析,就是通過眾多Mole中的php Mole來完成的,載入php是通過php5這個模塊來實現的,下面通過圖來說明Apache載入php模塊的過程及代碼如何載入php。
把php最終集成到Apache系統中,還需要對Apache進行一些必要的設置。這里,我們就以php的mod_php5 SAPI運行模式為例進行講解,至於SAPI這個概念後面我們還會在其它的文章中講解。
假定我們安裝的版本是Apache2 和 Php5,那麼需要編輯Apache的主配置文件http.conf,在其中加入下面的幾行內容:
Unix/linux環境下:
LoadMole php5_mole moles/mod_php5.so
AddType application/x-httpd-php .php
註:其中moles/mod_php5.so 是X系統環境下mod_php5.so文件的安裝位置。
Windows環境下:
LoadMole php5_mole d:/php/php5apache2.dll
AddType application/x-httpd-php .php
註:其中d:/php/php5apache2.dll 是在Windows環境下php5apache2.dll文件的安裝位置。
這兩項配置就是告訴Apache Server,以後收到的Url用戶請求,凡是以php作為後綴,就需要調用php5_mole模塊(mod_php5.so/ php5apache2.dll)進行處理。

㈧ 在linux伺服器上lamp環境中怎樣安裝php的擴展模塊

安裝php的擴展模塊:
1、先進入php解壓縮後的源碼包中,找到要安裝的擴展模塊的目錄。(本例是安裝sockets擴展模塊)
[xuexiaoxu@192 php-5.4.8]$ cd /home/xuexiaoxu/software/php-5.4.8/ext/sockets
在sockets目錄下面以絕對路徑運行phpize程序,這時會自動生成sockets的configure程序,在sockets目錄下面可以看到。
[xuexiaoxu@192 sockets]$ /home/xuexiaoxu/software/php/bin/phpize
2、進行編譯安裝
[xuexiaoxu@192 sockets]$ ./configure --with-php-config=/home/xuexiaoxu/software/php/bin/php-config
[xuexiaoxu@192 sockets]$ make
[xuexiaoxu@192 sockets]$ make install
執行完make install屏幕上會提示sockets.so存放的路徑,然後把它復制到php的extensions目錄中,例如我的路徑為
/home/xuexiaoxu/software/php5.4.8/lib/php/extensions
3、修改php.ini文件
找到extension_dir = "./" 這行,修改為:
extension_dir = "/home/xuexiaoxu/software/php5.4.8/lib/php/extensions/"
然後再新增加一行:
extension=sockets.so
4、重啟apache即可生效。
其它模塊的安裝方法基本和這個一模一樣,不管是php自帶的擴展模塊還是第三方擴展模塊都照這種方法安裝即可。
PS:在編譯mysqli擴展模塊的時候,注意這樣寫:./configure --with-php-config=/home/xuexiaoxu/software/php/bin/php-config \
--with-mysqli=/home/xuexiaoxu/software/mysql/bin/mysql_config

㈨ apache裝載php模塊出錯 httpd.conf寫入LoadMole php5_mole "D:/php/php5apache2_4.dll"就出錯

你先確定你的路徑是不是正確的,再看看這個文件是不是真的存在。都正確的話就直接雙擊Apache安裝目錄下bin目錄下的httpd.exe,看看具體是報什麼錯的

㈩ linux伺服器上運行PHP,除了PHP-FPM還有其他的方式嗎

運行模式
關於PHP目前比較常見的五大運行模式:
1)CGI(通用網關介面/ Common Gateway Interface)
2)FastCGI(常駐型CGI / Long-Live CGI)
3)CLI(命令行運行 / Command Line Interface)
4)Web模塊模式(Apache等Web伺服器運行的模式)
5)ISAPI(Internet Server Application Program Interface)

備註:在PHP5.3以後,PHP不再有ISAPI模式,安裝後也不再有php5isapi.dll這個文件。要在IIS6上使用高版本PHP,必須安裝FastCGI 擴展,然後使IIS6支持FastCGI。

1.1、CGI模式
CGI即通用網關介面(Common Gateway Interface),它是一段程序,通俗的講CGI就象是一座橋,把網頁和Web伺服器中的執行程序連接起來,它把HTML接收的指令傳遞給伺服器的執行程序,再把伺服器執行程序的結果返還給HTML頁。CGI 的跨平台性能極佳,幾乎可以在任何操作系統上實現。CGI已經是比較老的模式了,這幾年都很少用了。
每有一個用戶請求,都會先要創建CGI的子進程,然後處理請求,處理完後結束這個子進程,這就是Fork-And-Execute模式。 當用戶請求數量非常多時,會大量擠占系統的資源如內存,CPU時間等,造成效能低下。所以用CGI方式的伺服器有多少連接請求就會有多少CGI子進程,子進程反復載入是CGI性能低下的主要原因。
如果不想把 PHP 嵌入到伺服器端軟體(如 Apache)作為一個模塊安裝的話,可以選擇以 CGI 的模式安裝。或者把 PHP 用於不同的 CGI 封裝以便為代碼創建安全的 chroot 和 setuid 環境。這樣每個客戶機請求一個PHP文件,Web伺服器就調用php.exe(win下是php.exe,linux是php)去解釋這個文件,然後再把解釋的結果以網頁的形式返回給客戶機。 這種安裝方式通常會把 PHP 的可執行文件安裝到 web 伺服器的 cgi-bin 目錄。CERT 建議書 CA-96.11 建議不要把任何的解釋器放到 cgi-bin 目錄。 這種方式的好處是把Web Server和具體的程序處理獨立開來,結構清晰,可控性強,同時缺點就是如果在高訪問需求的情況下,CGI的進程Fork就會成為很大的伺服器負擔,想 象一下數百個並發請求導致伺服器Fork出數百個進程就明白了。這也是為什麼CGI一直背負性能低下,高資源消耗的惡名的原因。

1.2、FastCGI模式
FastCGI是CGI的升級版本,FastCGI像是一個常駐 (long-live)型的 CGI,它可以一直執行著,只要激活後,不會每次都要花費時間去 Fork 一次 (這是 CGI 最為人詬病的 fork-and-execute 模式)。
FastCGI是一個可伸縮地、高速地在HTTP server和動態腳本語言間通信的介面。多數流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同時,FastCGI也被許多腳本語言所支持,其中就有PHP。
FastCGI介面方式採用C/S結構,可以將HTTP伺服器和腳本解析伺服器分開,同時在腳本解析伺服器上啟動一個或者多個腳本解析守護進程。當HTTP伺服器每次遇到動態程序時,可以將其直接交付給FastCGI進程來執行,然後將得到的結果返回給瀏覽器。這種方式可以讓HTTP伺服器專一地處理靜態請求或者將動態腳本伺服器的結果返回給客戶端,這在很大程度上提高了整個應用系統的性能。

【原理】
1)Web Server啟動時載入FastCGI進程管理器(IIS ISAPI或Apache Mole);
2)FastCGI進程管理器自身初始化,啟動多個CGI解釋器進程 (可見多個php-cgi.exe或php-cig)並等待來自Web Server的連接;
3)當客戶端請求到達Web Server時,FastCGI進程管理器選擇並連接到一個CGI解釋器。Web server將CGI環境變數和標准輸入發送到FastCGI子進程php-cgi;
4)FastCGI子進程完成處理後將標准輸出和錯誤信息從同一連接返回Web Server。當FastCGI子進程關閉連接時,請求便告處理完成。FastCGI子進程接著等待並處理來自FastCGI進程管理器(運行在 WebServer中)的下一個連接。在正常的CGI模式中,php-cgi.exe在此便退出了。
在CGI模式中,你可以想像 CGI通常有多慢。每一個Web請求PHP都必須重新解析php.ini、重新載入全部dll擴展並重初始化全部數據結構。使用FastCGI,所有這些都只在進程啟動時發生一次。一個額外的好處是,持續資料庫連接(Persistent database connection)可以工作。

備註:PHP的FastCGI進程管理器是PHP-FPM(PHP-FastCGI Process Manager)
【優點】
1)從穩定性上看,FastCGI是以獨立的進程池來運行CGI,單獨一個進程死掉,系統可以很輕易的丟棄,然後重新分配新的進程來運行邏輯;
2)從安全性上看,FastCGI支持分布式運算。FastCGI和宿主的Server完全獨立,FastCGI怎麼down也不會把Server搞垮;
3)從性能上看,FastCGI把動態邏輯的處理從Server中分離出來,大負荷的IO處理還是留給宿主Server,這樣宿主Server可以一心一意作IO,對於一個普通的動態網頁來說, 邏輯處理可能只有一小部分,大量的是圖片等靜態。

【缺點】
說完了好處,也來說說缺點。從我的實際使用來看,用FastCGI模式更適合生產環境的伺服器。但對於開發用機器來說就不太合適。因為當使用 Zend Studio調試程序時,由於 FastCGI會認為 PHP進程超時,從而在頁面返回 500錯誤。這一點讓人非常惱火,所以我在開發機器上還是換回了 ISAPI模式。對某些伺服器的新版本支持不好,對分布式負載均衡沒要求的模塊化安裝是否是更好的選擇。目前的FastCGI和Server溝通還不夠智能,一個FastCGI進程如果執行時間過長會被當成是死進程殺掉重起,這樣在處理長時間任務的時候很麻煩,這樣做也使得FastCGI無法允許聯機調試。因為是多進程,所以比CGI多線程消耗更多的伺服器內存,PHP-CGI解釋器每進程消耗7至25兆內存,將這個數字乘以50或100就是很大的內存數。

1.3 CLI模式
PHP-CLI是PHP Command Line Interface的簡稱,如同它名字的意思,就是PHP在命令行運行的介面,區別於在Web伺服器上運行的PHP環境(PHP-CGI,ISAPI等)。 也就是說,PHP不單可以寫前台網頁,它還可以用來寫後台的程序。 PHP的CLI Shell腳本適用於所有的PHP優勢,使創建要麼支持腳本或系統甚至與GUI應用程序的服務端,在Windows和Linux下都是支持PHP-CLI模式的。
【優點】
1)使用多進程,子進程結束以後,內核會負責回收資源;
2)使用多進程,子進程異常退出不會導致整個進程Thread退出,父進程還有機會重建流程;
3)一個常駐主進程,只負責任務分發,邏輯更清楚。
我們在Linux下經常使用"php –m"查找PHP安裝了那些擴展就是PHP命令行運行模式;有興趣的同學可以輸入"php –h"去深入研究該運行模式。

1.4 模塊模式
模塊模式是以mod_php5模塊的形式集成,此時mod_php5模塊的作用是接收Apache傳遞過來的PHP文件請求,並處理這些請求,然後將處理後的結果返回給Apache。如果我們在Apache啟動前在其配置文件中配置好了PHP模塊
(mod_php5), PHP模塊通過注冊apache2的ap_hook_post_config掛鉤,在Apache啟動的時候啟動此模塊以接受PHP文件的請求。
除了這種啟動時的載入方式,Apache的模塊可以在運行的時候動態裝載,這意味著對伺服器可以進行功能擴展而不需要重新對源代碼進行編譯,甚至根本不需要停止伺服器。我們所需要做的僅僅是給伺服器發送信號HUP或者AP_SIG_GRACEFUL通知伺服器重新載入模塊。但是在動態載入之前,我們需要將模塊編譯成為動態鏈接庫。此時的動態載入就是載入動態鏈接庫。 Apache中對動態鏈接庫的處理是通過模塊mod_so來完成的,因此mod_so模塊不能被動態載入,它只能被靜態編譯進Apache的核心。這意味著它是隨著Apache一起啟動的。
Apache是如何載入模塊的呢?我們以前面提到的mod_php5模塊為例。首先我們需要在Apache的配置文件httpd.conf中添加一行:
LoadMole php5_mole moles/mod_php5.so

這里我們使用了LoadMole命令,該命令的第一個參數是模塊的名稱,名稱可以在模塊實現的源碼中找到。第二個選項是該模塊所處的路徑。如果需要在伺服器運行時載入模塊,可以通過發送信號HUP或者AP_SIG_GRACEFUL給伺服器,一旦接受到該信號,Apache將重新裝載模塊,而不需要重新啟動伺服器。
該運行模式是我們以前在windows環境下使用apache伺服器經常使用的,而在模塊化(DLL)中,PHP是與Web伺服器一起啟動並運行的。(它是apache在CGI的基礎上進行的一種擴展,加快PHP的運行效率)。

1.5 ISAPI模式
ISAPI(Internet Server Application Program Interface)是微軟提供的一套面向Internet服務的API介面,一個ISAPI的DLL,可以在被用戶請求激活後長駐內存,等待用戶的另一個請求,還可以在一個DLL里設置多個用戶請求處理函數,此外,ISAPI的DLL應用程序和WWW伺服器處於同一個進程中,效率要顯著高於CGI。(由於微軟的排他性,只能運行於windows環境)
PHP作為Apache模塊,Apache伺服器在系統啟動後,預先生成多個進程副本駐留在內存中,一旦有請求出現,就立即使用這些空餘的子進程進行處理,這樣就不存在生成子進程造成的延遲了。這些伺服器副本在處理完一次HTTP請求之後並不立即退出,而是停留在計算機中等待下次請求。對於客戶瀏覽器的請求反應更快,性能較高。

閱讀全文

與動態裝載php模塊相關的資料

熱點內容
二板股票源碼 瀏覽:440
度人經pdf 瀏覽:898
怎麼配置android遠程伺服器地址 瀏覽:956
java程序員看哪些書 瀏覽:939
什麼app可以免費和外國人聊天 瀏覽:793
pdf手寫筆 瀏覽:179
別永遠傷在童年pdf 瀏覽:988
愛上北斗星男友在哪個app上看 瀏覽:419
主力散戶派發源碼 瀏覽:669
linux如何修復伺服器時間 瀏覽:59
榮縣優途網約車app叫什麼 瀏覽:477
百姓網app截圖是什麼意思 瀏覽:226
php如何嵌入html 瀏覽:815
解壓專家怎麼傳輸 瀏覽:745
如何共享伺服器的網路連接 瀏覽:134
程序員簡易表白代碼 瀏覽:168
什麼是無線加密狗 瀏覽:64
國家反詐中心app為什麼會彈出 瀏覽:69
cad壓縮圖列印 瀏覽:104
網頁打開速度與伺服器有什麼關系 瀏覽:865