Apache下PHP的幾種工作方式

Web開發者發表於2011-12-30

PHP在Apache中一共有三種工作方式:CGI模式、Apache模組DLL、FastCGI模式、

一、CGI模式

PHP 在 Apache 2中的 CGI模式。編輯Apache 配置檔案httpd.conf 如下:

# PHP4 版寫法
ScriptAlias /php/ "D:/php/"
AddType application/x-httpd-php  .php
Action application/x-httpd-php  "/php/php.exe"
# PHP5 版寫法
ScriptAlias /php/ "D:/php/"
AddType application/x-httpd-php  .php
Action application/x-httpd-php  "/php/php-cgi.exe"

二、Apache模組模式

PHP 在 Apache 2中的 模組模式。編輯Apache 配置檔案httpd.conf 如下:

# PHP4 版寫法
LoadModule php4_module  "D:/php/php4apache2.dll"
AddType application/x-httpd-php .php
# 別忘了從 sapi 目錄中把 php4apache2.dll 拷貝出來!
# PHP5 版寫法
LoadModule php5_module  "D:/php/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/php"
# PHPIniDir 是用來指明php配置檔案 php.ini 的路徑

三、FastCGI模式

Apache下的FastCGI模組目前網上有兩個版本 mod_fastcgi 和 mod_fcgid。 推薦用 mod_fcgid。

使用 mod_fcgid 配置fastCGI模式

下載的 mod_fcgid,將壓縮包中的“mod_fcgid.so”檔案複製到apache的“modules”目錄。開啟Apache的httpd.conf 檔案,在最後加入如下配置:

LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c>
    AddHandler fcgid-script .fcgi .php
    #php.ini的存放目錄
    FcgidInitialEnv PHPRC "D:/PHP"
    # 設定PHP_FCGI_MAX_REQUESTS大於或等於FcgidMaxRequestsPerProcess,防止php-cgi程式在處理完所有請求前退出
    FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
    #php-cgi每個程式的最大請求數
    FcgidMaxRequestsPerProcess 1000
    #php-cgi最大的程式數
    FcgidMaxProcesses 5
    #最大執行時間
    FcgidIOTimeout 120
    FcgidIdleTimeout 120
    #php-cgi的路徑
    FcgidWrapper "D:/PHP/php-cgi.exe" .php
    AddType application/x-httpd-php .php
</IfModule>

修改DocumentRoot 路徑的配置為:

<Directory "D:/WWW">  
    Options Indexes FollowSymLinks ExecCGI
    Order allow,deny  
    Allow from all
    AllowOverride All
</Directory>

相關文章