• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • PHP超級配置模塊--PHP4,PHP5,module,cgi任你玩轉--應用于Apache

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    [color=green:bf630625c9]在Apache之中調用PHP是個經久不衰的話題,目前的PHP存在PHP4和PHP5的版本,而且在Apache之中調用PHP還存在module(模塊)方式和CGI方式,同時Apache還存在Apache1和Apache2兩個版本. 在Apache之中調用PHP存在以下[/color:bf630625c9][siz

    [color=green:bf630625c9]在Apache之中調用PHP是個經久不衰的話題,目前的PHP存在PHP4和PHP5的版本,而且在Apache之中調用PHP還存在module(模塊)方式和CGI方式,同時Apache還存在Apache1和Apache2兩個版本.
               在Apache之中調用PHP存在以下[/color:bf630625c9][size=24:bf630625c9][color=red:bf630625c9]八[/color:bf630625c9][/size:bf630625c9][color=green:bf630625c9]種模式:[/color:bf630625c9]
    1,[color=red:bf630625c9]PHP4在Apache1的module模式[/color:bf630625c9]
    2,[color=orange:bf630625c9]PHP4在Apache1的cgi模式[/color:bf630625c9]
    3,[color=yellow:bf630625c9]PHP5在Apache1的[/color:bf630625c9]module[color=yellow:bf630625c9]模式[/color:bf630625c9]
    4,[color=green:bf630625c9]PHP5在Apache1的cgi模式[/color:bf630625c9]
    5,[color=blue:bf630625c9]PHP4在Apache2的module模式[/color:bf630625c9]
    6,[color=indigo:bf630625c9]PHP4在Apache2的cgi模式[/color:bf630625c9]
    7,[color=violet:bf630625c9]PHP5在Apache2的module模式[/color:bf630625c9]
    8,[color=darkred:bf630625c9]PHP5在Apache2的cgi模式[/color:bf630625c9]
      [color=green:bf630625c9]你有沒有想過,把這[/color:bf630625c9][size=24:bf630625c9][color=red:bf630625c9]八[/color:bf630625c9][/size:bf630625c9][color=green:bf630625c9]種調用模式,就在一個配置文件之中給配置出來呢?
       也許你作過,但是沒有完全成功,因為這[/color:bf630625c9][size=24:bf630625c9][color=red:bf630625c9]八[/color:bf630625c9][/size:bf630625c9][color=green:bf630625c9]種模式之間,是不能相互兼容的哦.
       然而,靈活運用Apache的一條指令,將這[/color:bf630625c9][size=24:bf630625c9][color=red:bf630625c9]八[/color:bf630625c9][/size:bf630625c9][color=green:bf630625c9]種模式乖乖的馴服,收容在一起,就易如反掌了.
       哪一條指令?原來就是:[/color:bf630625c9]
        在[url]http://w.yi.org/ftp/FAPM/apache/Apache2/zh/mod/core.html#ifdefine[/url][color=green:bf630625c9]有對這條指令的完整介紹.[/color:bf630625c9]
    [url=http://w.yi.org/ftp/FAPM/apache/Apache2/zh/mod/core.html#ifdefine][size=24:bf630625c9][u:bf630625c9][color=green:bf630625c9]<IfDefine>指令[/color:bf630625c9][/u:bf630625c9] [/size:bf630625c9][/url]
    [code:1:bf630625c9]
    說明: 只有在啟動時進行了一個成功的測試后才進行的一個封裝指令 
    語法: <IfDefine [!]參數名> ... </IfDefine> 
    上下文: 服務器配置, 虛擬主機, 目錄, .htaclearcase/" target="_blank" >ccess 
    覆蓋項: All 
    狀態: 核心 
    模塊: core 

    <IfDefine測試>...</IfDefine>配置段用于標識附加施用條件的指令。<IfDefine>配置段中的指令僅當測試結果為真時才進行處理。如果測試失敗。此配置段中的指令將會被忽略。

    <IfDefine>配置段中的測試可以為以下兩種形式之一:

    參數名 
    !參數名 
    在第一種情況下,僅當符合參數名的參數已經定義的情況下才對開始和結束標記之間的指令進行處理。第二種情況則截然相反。僅當參數名沒有定義的情況下才進行指令的處理。

    參數名變量是在服務啟動時,通過httpd命令行的-D參數-這樣的形式指定的。

    <IfDefine>配置段是可以嵌套的,從而可以實現簡單的多參數測試。比如說:

      $ httpd -DReverseProxy ...

      # httpd.conf
      <IfDefine ReverseProxy>
      LoadModule rewrite_module modules/mod_rewrite.so
      LoadModule proxy_module   modules/libproxy.so
      </IfDefine>[/code:1:bf630625c9]

    [color=red:bf630625c9][size=24:bf630625c9]PHP超級配置模塊如下所示↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]__________________↓↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]_________________↓↓↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]________________↓↓↓↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]_______________↓↓↓↓↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]______________↓↓↓↓↓↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]_______________↓↓↓↓↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]________________↓↓↓↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]_________________↓↓↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]__________________↓↓[/size:bf630625c9][/color:bf630625c9]
    [color=red:bf630625c9][size=24:bf630625c9]PHP超級配置模塊如下所示↓[/size:bf630625c9][/color:bf630625c9]

     HonestQiao 回復于:2004-05-29 16:54:19
    [code:1:72b49e9f07]##################################################################
    #  PHP超級配置模塊--PHP4,PHP5,module,cgi任你玩轉--應用于Apache   #
    ##################################################################
    #   配置版本 通用版v1.01                                               #
    #   配置編寫 喬楚/HonestQiao                                     #
    #   編寫日期 2004年5月29日                                       #
    #   聯系方式 QQ:5601680 MSN:honestqiao@hotmail.com               #
    ##################################################################
    #  主頁地址: http://w.yi.org/                                   #
    #  論壇地址: http://bbs.chinaunix.net/forum/viewforum.php?f=13  #
    ##################################################################
    ##################################################################
    #    版權聲明                                                    #
    #    本PHP超級配置模塊系喬楚(HonestQiao)所寫,你可以任意使用和傳播#
    #本PHP超級配置模塊,但是請保留配置內容以上的聲明部分(因為本聲明不 #
    #會對你的實際配置造成任何影響),并且不得以任何方式表明是你寫了本  #
    #PHP超級配置模塊.                                                #
    #    謝謝你的使用,歡迎批評建議和報告錯誤.                        #
    ##################################################################
    SetEnv php_control_status not_php_control_status
    <IfDefine Apache=Apache>
    SetEnv php_control_status Apache
    <IfDefine php=php4>
    SetEnv php_control_status Apache_php4
    <IfDefine type=mod>
    SetEnv php_control_status Apache_php4_mod
    LoadModule php4_module /usr/local/php-4.3.6/sapi/php4apache.dll    #請修改為實際的路徑
    #AddModule mod_php4.c
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php4
    #PHPINIDir /usr/local/etc/php/php4.ini
    #請將php.ini放置到Apache的安裝目錄
    AddType application/x-httpd-php-source .phps
    Alias "/server-php" "/usr/local/etc/php/phpinfo.php4"    #請修改為實際的路徑
    Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/"    #請修改為實際的路徑
    </IfDefine>

    <IfDefine !type=mod>
    SetEnv php_control_status Apache_php4_not_mod
    <IfDefine type=cgi>
    SetEnv php_control_status Apache_php4_cgi
    ScriptAlias /php/ "/usr/local/php-4.3.6/"    #請修改為實際的路徑
    Action application/x-httpd-php "/php/php.exe"    #修改為實際的路徑
    #請將php.ini放置到Apache的安裝目錄
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php4
    AddType application/x-httpd-php-source .phps
    Alias "/server-php" "/usr/local/etc/php/phpinfo.php4"    #請修改為實際的路徑
    Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/"    #請修改為實際的路徑
    </IfDefine>
    </IfDefine>
    </IfDefine>

    <IfDefine !php=php4>
    SetEnv php_control_status Apache_not_php4
    <IfDefine php=php5>
    SetEnv php_control_status Apache_php5
    <IfDefine type=mod>
    SetEnv php_control_status Apache_php5_mod
    LoadModule php5_module /usr/local/php-5.0.0RC2/php5apache.dll    #請修改為實際的路徑
    #AddModule mod_php5.c
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php4
    AddType application/x-httpd-php .php5
    AddType application/x-httpd-php-source .phps
    #PHPINIDir /usr/local/etc/php/php5.ini
    #請將php.ini放置到Apache的安裝目錄
    Alias "/server-php" "/usr/local/etc/php/phpinfo.php5"    #請修改為實際的路徑
    Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/"    #請修改為實際的路徑
    </IfDefine>

    <IfDefine !type=mod>
    SetEnv php_control_status Apache_php5_not_mod
    <IfDefine type=cgi>
    SetEnv php_control_status Apache_php5_cgi
    ScriptAlias /php/ "/usr/local/php-5.0.0RC2/"    #請修改為實際的路徑
    Action application/x-httpd-php "/php/php-cgi.exe"    #修改為實際的路徑
    #請將php.ini放置到Apache的安裝目錄
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php4
    AddType application/x-httpd-php .php5
    AddType application/x-httpd-php-source .phps
    Alias "/server-php" "/usr/local/etc/php/phpinfo.php5"    #請修改為實際的路徑
    Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/"    #請修改為實際的路徑
    </IfDefine>
    </IfDefine>
    </IfDefine>
    </IfDefine>
    </IfDefine>

    <IfDefine !Apache=Apache>
    SetEnv php_control_status not_Apache
    <IfDefine Apache=Apache2>
    SetEnv php_control_status Apache2
    <IfDefine php=php4>
    SetEnv php_control_status Apache2_php4
    <IfDefine type=mod>
    SetEnv php_control_status Apache2_php4_mod
    LoadModule php4_module /usr/local/php-4.3.6/sapi/php4apache2.dll    #請修改為實際的路徑
    #AddModule mod_php4.c
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php4
    PHPINIDir /usr/local/etc/php/php4.ini    #請修改為實際的路徑
    AddType application/x-httpd-php-source .phps
    Alias "/server-php" "/usr/local/etc/php/phpinfo.php4"    #請修改為實際的路徑
    Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/"    #請修改為實際的路徑
    </IfDefine>

    <IfDefine !type=mod>
    SetEnv php_control_status Apache2_php4_not_mod
    <IfDefine type=cgi>
    SetEnv php_control_status Apache2_php4_cgi
    ScriptAlias /php/ "/usr/local/php-4.3.6/"    #請修改為實際的路徑
    Action application/x-httpd-php "/php/php.exe"    #修改為實際的路徑
    #請將php.ini放置到Apache的安裝目錄
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php4
    AddType application/x-httpd-php-source .phps
    Alias "/server-php" "/usr/local/etc/php/phpinfo.php4"    #請修改為實際的路徑
    Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/"    #請修改為實際的路徑
    </IfDefine>
    </IfDefine>
    </IfDefine>

    <IfDefine !php=php4>
    SetEnv php_control_status Apache2_not_php4
    <IfDefine php=php5>
    SetEnv php_control_status Apache2_php5
    <IfDefine type=mod>
    SetEnv php_control_status Apache2_php5_mod
    LoadModule php5_module /usr/local/php-5.0.0RC2/php5apache2.dll    #請修改為實際的路徑
    #AddModule mod_php5.c
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php4
    AddType application/x-httpd-php .php5
    AddType application/x-httpd-php-source .phps
    PHPINIDir /usr/local/etc/php/php5.ini    #請修改為實際的路徑
    Alias "/server-php" "/usr/local/etc/php/phpinfo.php5"    #請修改為實際的路徑
    Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/"    #請修改為實際的路徑
    </IfDefine>

    <IfDefine !type=mod>
    SetEnv php_control_status Apache2_php5_not_mod
    <IfDefine type=cgi>
    SetEnv php_control_status Apache2_php5_cgi
    ScriptAlias /php/ "/usr/local/php-5.0.0RC2/"    #請修改為實際的路徑
    Action application/x-httpd-php "/php/php-cgi.exe"    #修改為實際的路徑
    #請將php.ini放置到Apache的安裝目錄
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php4
    AddType application/x-httpd-php .php5
    AddType application/x-httpd-php-source .phps
    Alias "/server-php" "/usr/local/etc/php/phpinfo.php5"    #請修改為實際的路徑
    Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/"    #請修改為實際的路徑
    </IfDefine>
    </IfDefine>
    </IfDefine>
    </IfDefine>
    </IfDefine>
    </IfDefine>[/code:1:72b49e9f07]

     HonestQiao 回復于:2004-05-29 16:55:43
    [code:1:33da9eb370]#使用方法:
    # 設備命令:
    # 連接配置:
    # 將以上PHP超級配置模塊保存為一個文件,名稱為php.conf,然后在Apache的配置文件之中,使用Include "/path/to/php.conf"來引用PHP超級配置模塊;
    # 修改PHP超級配置模塊之中提示需要修改的部分,一般是修改為你的文件所在的實際路徑.
    #
    # 啟動命令:
    # ApacheControl -k start -D Apache=ApacheVersion php=phpVersion type=RunType
    # 假設啟動apache的文件名為httpd,執行指令如下:
    # httpd -k start -D Apache=ApacheVersion php=phpVersion type=RunType
    # ApacheVersion:表示Apache的版本Apache,Apache--表示Apache1;Apache2--表示Apache2;
    # phpVersion:表示PHP的版本,php4--表示PHP4;php5--表示PHP5;
    # RunType:表示運行模式,mod--表示以module(模塊)方式運行;cgi--表示以CGI方式運行
    #
    # 通道信息:
    # PHP超級配置模塊狀態:表示環境變量之中PHP超級配置的狀態,可以通過CGI探針或者phpinfo()來查看.
    # 說明:狀態名稱:php_control_status
    #      狀態值:  not_php_control_status: 表示沒有處于PHP超級配置模塊
    #         Apache : 表示進入Apache1配置區域
    #         Apache_php4 : 表示進入Apache1的PHP4配置區域
    #         Apache_php4_mod : 表示進入Apache1的PHP4的module(模塊)方式配置區域
    #         Apache_php4_not_mod : 表示進入Apache1的PHP4的非module(模塊)方式配置區域
    #         Apache_php4_cgi : 表示進入Apache1的PHP4的CGI方式配置區域
    #         Apache_not_php4 : 表示進入Apache1的非PHP4配置區域
    #         Apache_php5 : 表示進入Apache1的PHP5配置區域
    #         Apache_php5_mod : 表示進入Apache1的PHP5的module(模塊)方式配置區域
    #         Apache_php5_not_mod : 表示進入Apache1的PHP5的非module(模塊)方式配置區域
    #         Apache_php5_cgi : 表示進入Apache1的PHP5的CGI方式配置區域
    #         
    #         not_Apache : 表示進入非Apache1配置區域
    #         Apache2_php4 : 表示進入Apache2的PHP4配置區域
    #         Apache2_php4_mod : 表示進入Apache2的PHP4的module(模塊)方式配置區域
    #         Apache2_php4_not_mod : 表示進入Apache2的PHP4的非module(模塊)方式配置區域
    #         Apache2_php4_cgi : 表示進入Apache2的PHP4的CGI方式配置區域
    #         Apache2_not_php4 : 表示進入Apache2的非PHP4配置區域
    #         Apache2_php5 : 表示進入Apache2的PHP5配置區域
    #         Apache2_php5_mod : 表示進入Apache2的PHP5的module(模塊)方式配置區域
    #         Apache2_php5_not_mod : 表示進入Apache2的PHP5的非module(模塊)方式配置區域
    #         Apache2_php5_cgi : 表示進入Apache2的PHP5的CGI方式配置區域
    #[/code:1:33da9eb370]

     HonestQiao 回復于:2004-05-29 17:17:42
    [code:1:284d7d5052]#測試工程:
    # 例如在Window2000環境下,執行以下設備命令:
    # cd /path/to/apache/
    # apache -k start -D Apache=Apache php=php4 type=mod
    # 執行被設備命令之后,php_control_status的值變為Apache_php4_mod,表示處于Apache1的PHP4的Module模式之下;
    #
    # cd /path/to/apache/
    # apache -k start -D Apache=Apache php=php5 type=cgi
    # 執行被設備命令之后,php_control_status的值變為Apache_php5_cgi,表示處于Apache1的PHP5的CGI模式之下;
    #
    # cd /path/to/apache2/bin/
    # apache -k start -D Apache=Apache2 php=php4 type=cgi
    # 執行被設備命令之后,php_control_status的值變為Apache2_php4_cgi,表示處于Apache2的PHP4的CGI模式之下;
    #
    # cd /path/to/apache2/bin/
    # apache -k start -D Apache=Apache2 php=php5 type=mod
    # 執行被設備命令之后,php_control_status的值變為Apache2_php5_mod,表示處于Apache2的PHP5的Module模式之下;
    #
    #
    #常見問題:
    # 1.啟動時提示錯誤,且錯誤出在PHP超級配置模塊的相關行,一般表示相關的設置路徑不正確
    # 2.啟動成功但是沒有調用PHP,你可以查看php_control_status的狀態值,以確定問題所在,可能執行設備明令時所給的參數不正確
    # 3.啟動正確,也可以調用PHP了,那你還說什么問題啊,要恭喜你可以正常使用了啊.
    # 4.如果問題還不能解決,請和本PHP超級配置模塊的開發者取得聯系.
    #
    #
    #附加說明:
    # 本PHP超級配置模塊,只是給出了一個通用的PHP在Apache之下調用的控制方式,使用本PHP超級配置模塊的相關行,需要你對Apache和PHP有一定了解.
    # 如果你需要更為具體的配置,請和我聯系,我將根據您的實際運行環境,作出適合您的實際運行環境的PHP超級配置模塊的定制版本.
    #[/code:1:284d7d5052]

     深空 回復于:2004-05-29 18:42:22
    除了支持,我不知道說什么了-________-!!

     haohaoo 回復于:2004-05-29 19:21:07
    看了有點了解,不過里面都是windows的啊,linux下面沒有那些文件啊

     HonestQiao 回復于:2004-05-29 19:42:40
    不是提示了,你把那些地方修改成為你實際的么

     網絡混混 回復于:2004-05-29 20:37:31
    除了說支持和閱

    我沒有話說了。

     cceon 回復于:2004-05-29 20:42:43
    PHP4在Apache1的module模式下運行的好?
    還是在CGI模式下運行的好?

     khj99 回復于:2004-05-30 09:10:01
    根本就不止8種。
    還存在php以靜態模式編譯進apache中.

     xiaohua 回復于:2004-05-30 09:13:02
    好長的代碼 :em06:

     HonestQiao 回復于:2004-05-30 14:02:29
    [quote:7adc6b0a08="khj99"]根本就不止8種。
    還存在php以靜態模式編譯進apache中.[/quote:7adc6b0a08]

    [code:1:7adc6b0a08]Apache有兩種使用模塊的方法,其一是永久性包含進核心;如果操作系統支持動態共享對象(DSO),而且能為autoconf所檢測,則模塊還可以被動態編譯。[/code:1:7adc6b0a08]

    我這里說的是module模式,沒有說是動態還是靜態的,動態靜態變異方式不同,使用起來基本上相同

     HonestQiao 回復于:2004-06-01 18:53:23
    http://bbs.chinaunix.net/forum/3/20040601/337646.html

    嘿嘿,打算把這個做一課件,希望大家先提提意見哦,多多益善

     sports98 回復于:2004-06-11 14:05:21
    :shock: 在中國可能只有在中國才會這樣?

    敢問樓上了此舉在國內服務器上能有幾臺服務器這樣配置?

     :em06:  :em06:  :em06:  :em06:  :em06:

     sports98 回復于:2004-06-11 14:07:11
    另外我覺得你這個文章其實最主要的僅僅是介紹了apache里配置文件中的

    <IfDefine>功能啊

     Ecore 回復于:2004-12-19 18:29:10
    人家是技術挑戰!
    不是和你論國情!
    談個技術問題,動不動搬國情搬出來干嘛??

     bqsc 回復于:2005-03-16 10:33:48
    真是技術無極限啊。

     ttianxhtu 回復于:2005-03-16 13:15:02
    學習一下

    不過還是不怎么懂

     yxg0512 回復于:2005-04-19 13:06:19
    除了佩服  只剩敬仰了!

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>