當(dāng)前位置: 首頁編程開發(fā)PHP → Unix 平臺的 Apache 下安裝 PHP 的說明和提示

Unix 平臺的 Apache 下安裝 PHP 的說明和提示

更多

可以從核心配置選項列表以及位于手冊對應(yīng)部分的特定擴(kuò)展配置選項中選擇參數(shù)并在安裝步驟第 10 步將它們添加到 configure 命令中。版本號在這里被省略了以保證此說明的正確性。需要將這里的“xxx”替換為自己使用的文件的正確值。

Example #1 PHP 的 Apache 共享模塊版本安裝說明

1.  gunzip apache_xxx.tar.gz 2.  tar -xvf apache_xxx.tar 3.  gunzip php-xxx.tar.gz 4.  tar -xvf php-xxx.tar 5.  cd apache_xxx 6.  ./configure --prefix=/www --enable-module=so 7.  make 8.  make install 9.  cd ../php-xxx 10. 現(xiàn)在,配置 PHP。這是定制 PHP 的不同選項的時候,例如要加載哪些擴(kuò)展庫。使用       ./configure --help     來列出可用的選項。在下面的示例中只是簡單地配置 Apache 1 和 MySQL 支持。     用戶的 apxs 的路徑可能和此示例中的不同。       ./configure --with-mysql --with-apxs=/www/bin/apxs 11. make 12. make install     如果在安裝之后決定修改配置選項,那么只需重復(fù)以上最后三步。只須重新啟動     Apache 就可以使新模塊生效。不需要重新編譯 Apache。注意除非特別指出,     “make install”總是會安裝 PEAR,各種 PHP 工具例如 phpize,PHP CLI 以及其它。 13. 建立 php.ini 文件。       cp php.ini-dist /usr/local/lib/php.ini     可以編輯 php.ini 來設(shè)置 PHP 選項。如果想把 php.ini 放在其它目錄,在第     10 步加上以下選項:       --with-config-file-path=/path     如果選擇了 php.ini-recommended,確保閱讀一下其中的變更說明,因為這些會     影響到 PHP 的行為。 14. 編輯 httpd.conf 來加載 PHP 模塊。在 LoadModule 語句右邊的路徑必須指向系統(tǒng)中     PHP 模塊所在的路徑。上面的 make install 步驟可能已經(jīng)添加了,但還是檢查確認(rèn)一下。     對 PHP 4:       LoadModule php4_module        libexec/libphp4.so     對 PHP 5:       LoadModule php5_module        libexec/libphp5.so 15. 在 httpd.conf 中加入 AddModule 部分,在 ClearModuleList 下面的某處,加上這一句:     對 PHP 4:       AddModule mod_php4.c     對 PHP 5:       AddModule mod_php5.c 16. 告訴 Apache 將哪些后綴作為 PHP 解析。例如,讓 Apache 把 .php 后綴的文件解析為     PHP?梢詫⑷魏魏缶Y的文件解析為 PHP,只要在以下語句中加入并用空格分開。這里以     添加一個 .phtml 來示例。       AddType application/x-httpd-php .php .phtml     為了將 .phps 作為 PHP 的源文件進(jìn)行語法高亮顯示,還可以加上:       AddType application/x-httpd-php-source .phps 17. 用通常的過程啟動 Apache(必須完全停止 Apache 再重新啟動,而不是用 HUP 或者     USR1 信號使 Apache 重新加載)。 

也可以將 PHP 作為靜態(tài)對象來安裝:

Example #2 PHP 的 Apache 靜態(tài)模塊版本安裝說明

1.  gunzip -c apache_1.3.x.tar.gz | tar xf - 2.  cd apache_1.3.x 3.  ./configure 4.  cd ..  5.  gunzip -c php-5.x.y.tar.gz | tar xf - 6.  cd php-5.x.y 7.  ./configure --with-mysql --with-apache=../apache_1.3.x 8.  make 9.  make install  10. cd ../apache_1.3.x  11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a     (上面一行是正確的!是的,我們知道 libphp5.a 尚不存在,還不到時候,       它會在之后被創(chuàng)建。)  12. make     (現(xiàn)在應(yīng)該有一個 httpd 二進(jìn)制文件,可以將它復(fù)制到 Apache bin 目錄。如果這是       第一次安裝,還要“make install”。)  13. cd ../php-5.x.y 14. cp php.ini-dist /usr/local/lib/php.ini  15. 可以編輯 /usr/local/lib/php.ini 文件以設(shè)置 PHP 選項。編輯 httpd.conf 或     srm.conf 文件,添加:     AddType application/x-httpd-php .php 

Note: 對于 PHP 4,把 php-5 換成 php-4,把 php5 換成 php4。

根據(jù) Unix 系統(tǒng)和 Apache 安裝方法的不同,有很多方法停止和重啟動 Apache。以下是一些不同的 Apache/UNIX 下重啟動 Apache 的典型命令。需要把 /path/to/ 替換成自己系統(tǒng)上的確切路徑。

 

Example #3 重啟動 Apache 的示例命令

1. 在一些 Linux 和 SysV 的變種下: /etc/rc.d/init.d/httpd restart  2. 使用 apachectl 腳本: /path/to/apachectl stop /path/to/apachectl start  3. httpdctl 和 httpsdctl(使用了 OpenSSL),類似 apachectl: /path/to/httpsdctl stop /path/to/httpsdctl start  4. 使用了 mod_ssl,或其他 SSL 服務(wù)器,可能需要手工重啟動: /path/to/apachectl stop /path/to/apachectl startssl 

 

apachectl 和 http(s)dctl 程序所在的路徑在不同系統(tǒng)中通常不一樣。如果系統(tǒng)中有 locate 或者 whereis 或者 which 命令,那么可以幫助找到這些控制程序。

編譯 PHP 和 Apache 的不同例子還有:

./configure --with-apxs --with-pgsql 

 

此配置將生成在 Apache 的 httpd.conf 文件中用 LoadModule 加載的 libphp5.so 共享庫(PHP 4 是 libphp4.so)。而 PostgreSQL 支持將嵌入到此共享庫中。

 

./configure --with-apxs --with-pgsql=shared 

 

此配置將生成 Apache 的 libphp5.so 共享庫,并且還生成 pgsql.so 共享庫,可以在 php.ini 文件中用 extension 指令加載,或者在 PHP 腳本中用 dl() 函數(shù)明確地加載。

 

./configure --with-apache=/path/to/apache_source --with-pgsql 

 

此配置將生成 libmodphp5.a 庫,mod_php5.c 和一些相關(guān)的文件并且拷貝到 Apache 源程序目錄中的 src/modules/php5 目錄下。然后用 --activate-module=src/modules/php5/libphp5.a 編譯 Apache,Apache 編譯系統(tǒng)會生成 libphp5.a 并且將其靜態(tài)地連接到 httpd 程序中(在 PHP 4 中把 php5 替換成 php4)。PostgreSQL 支持也直接包括在這個 httpd 程序中了,因此最終結(jié)果是單一的一個包括了所有 Apache 和 PHP 支持的 httpd 可執(zhí)行文件。

 

./configure --with-apache=/path/to/apache_source --with-pgsql=shared 

 

此配置和上面一樣――除了沒有在最后的 httpd 可執(zhí)行文件中包括 PostgreSQL 的支持以及生成了一個 pgsql.so 共享庫以外。該共享庫可以在 php.ini 文件中或者用 dl() 函數(shù)加載。

當(dāng)選擇不同的方法編譯 PHP 時,需要考慮每種方法的優(yōu)勢和缺點。用共享對象方式編譯 PHP 意味著可以單獨編譯 Apache,并且不用在添加或修改了 PHP 的時候重新編譯所有程序。用內(nèi)置方法編譯 PHP(靜態(tài)方式)意味著 PHP 可以加載和運行得更快。更多信息見 Apache 的 » DSO 支持頁面。

Note: Apache 默認(rèn)的 httpd.conf 文件中目前包括類似如下的內(nèi)容:

User nobody Group "#-1" 

除非把它修改成“Group nogroup”或者其它類似的(“Group daemon”也很通用),PHP 將不能打開文件。

Note: 確認(rèn)在使用 --with-apxs=/path/to/apxs 時指向 Apache 安裝后的目錄中的 apxs。絕對不能用 Apache 源程序中的 apxs 而要用安裝后的 apxs。

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)