熟女少妇中出一区二区三区-亚洲欧洲人妻中文字幕-日韩黄片一级免费观看-人妻少妇一区二区三区在线

歡迎訪問世紀(jì)網(wǎng)絡(luò)官網(wǎng),寶雞網(wǎng)站建設(shè)SEO優(yōu)化已累計服務(wù)超過900家企業(yè)!     咨詢熱線:13619273150

15年網(wǎng)站建設(shè)優(yōu)化經(jīng)驗,900家客戶的選擇,值得信賴!


網(wǎng)站程序開發(fā)php網(wǎng)頁設(shè)計安裝前需要考慮的事項

作者:佚名      發(fā)布時間:2011-11-02      瀏覽:2815

62.9K


安裝前需要考慮的事項
安裝前,首先需要知道想用 PHP 來做什么。PHP 主要用在三個領(lǐng)域,分別在“ PHP 能做什么”一節(jié)中進(jìn)行了描述:
網(wǎng)站和 web 應(yīng)用程序(服務(wù)器端腳本)
命令行腳本
桌面(GUI)應(yīng)用程序
在通常情況下,需要三樣?xùn)|西:PHP 自身、一個 web 服務(wù)器和一個 web 瀏覽器。可能已經(jīng)有了一個 web 瀏覽器,并且根據(jù)操作系統(tǒng)的配置,也很可能已經(jīng)有了一個 web 服務(wù)器(例如 Linux 和 MacOS 下的 Apache;Windows 下的 IIS)。也許在某個公司租用了 web 空間,這樣,自己無需設(shè)置任何東西,僅需要編寫 PHP 腳本,并上傳到租用的空間中,然后在瀏覽器中查看結(jié)果。
如果需要自己配置服務(wù)器和 PHP,有兩個方法將 PHP 連接到服務(wù)器上。對于很多服務(wù)器,PHP 均有一個直接的模塊接口(也叫做 SAPI)。這些服務(wù)器包括 Apache、Microsoft Internet Information Server、Netscape 和 iPlanet 等服務(wù)器。其它很多服務(wù)器支持 ISAPI,即微軟的模塊接口(OmniHTTPd 就是個例子)。如果 PHP 不能作為模塊支持 web 服務(wù)器,總是可以將其作為 CGI 或 FastCGI 處理器來使用。這意味著可以使用 PHP 的 CGI 可執(zhí)行程序來處理所有服務(wù)器上的 PHP 文件請求。
如果對 PHP 命令行腳本感興趣(例如在離線狀態(tài)下,根據(jù)傳遞給腳本的參數(shù),自動生成一些圖片,或處理一些文本文件),總是需要命令行可執(zhí)行程序。更多信息可以參考 PHP 的命令行模式。如果是這種情況,不需要服務(wù)器和瀏覽器。
還可以用 PHP 的 PHP-GTK 擴(kuò)展來編寫桌面圖形界面應(yīng)用程序。這與編寫 web 頁面完全不同,因為無需輸出任何 HTML,而要管理窗口和窗口中的對象。關(guān)于 PHP-GTK 的更多信息,請 » 訪問專門為該擴(kuò)展建立的網(wǎng)站。PHP-GTK 沒有包含在官方發(fā)布的 PHP 中。
現(xiàn)在,本節(jié)開始說明如何在 Unix 和 Windows 的 web 服務(wù)器中配置服務(wù)器模塊接口和 CGI 可執(zhí)行程序。也將在下面幾節(jié)中了解到有關(guān)命令行可執(zhí)行程序安裝的信息。
PHP 源代碼包和二進(jìn)制包可以在 » http://www.php.net/downloads.php 找到。建議選擇一個最近的 » 鏡象服務(wù)器下載。


Unix 系統(tǒng)下安裝和配置 PHP。在開始安裝之前,請務(wù)必研究自己使用的系統(tǒng)和 web 服務(wù)器的相關(guān)章節(jié)。
在 安裝前需要考慮的事項一節(jié)提到,在本節(jié)主要以 web 為中心介紹 PHP 的設(shè)置。不過本節(jié)也會覆蓋一些 PHP 命令行用法的設(shè)置方法。
在 Unix 平臺下安裝 PHP 有幾種方法:使用配置和編譯過程,或是使用各種預(yù)編譯的包。本文主要針對配置和編譯 PHP 的過程。很多 Unix 類系統(tǒng)都有包安裝系統(tǒng),可以用它來設(shè)置一個有著標(biāo)準(zhǔn)配置的 PHP。但是若需要與標(biāo)準(zhǔn)配置不同的功能(例如一個安全服務(wù)器,或者不同的數(shù)據(jù)庫驅(qū)動擴(kuò)展模塊),可能需要編譯 PHP 和/或 web 服務(wù)器。如果不熟悉編譯軟件,可以考慮搜索一下是否有人已經(jīng)編譯了包含所需要功能的預(yù)編譯包。
編譯所需的知識和軟件:
基礎(chǔ)的 Unix 技能(有能力操作“make”和一種 C 語言編譯器)
一個 ANSI C 語言編譯器
flex:版本 2.5.4
bison:版本 1.28(推薦)、1.35 或 1.75
一個 web 服務(wù)器
模塊特別需要的組件(例如 gd、pdf 庫等)
PHP 初始的配置和安裝過程被 configure 腳本中一系列命令行選項控制。可以通過 ./configure --help 命令了解 PHP 所有可用的編譯選項及簡短解釋。本手冊是分開對這些選項編寫文檔的。可在附錄中找到核心配置選項,而擴(kuò)展模塊特定的配置選項分別在其函數(shù)參考頁面中描述。
配置好 PHP 后,便可以開始編譯模塊和/或可執(zhí)行文件。 make 命令用來做這一工作。如果該命令執(zhí)行失敗而找不到原因,請參考安裝問題一節(jié)。
Unix 系統(tǒng)下的 Apache 1.3.x
本節(jié)包括在 Unix 平臺的 Apache 下安裝 PHP 的說明和提示。我們在另外的頁面也有 Apache 2 的安裝和說明。
可以從 核心配置選項列表以及位于手冊對應(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。可以將任何后綴的文件解析為 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。

Unix 系統(tǒng)下的 Apache 2.0
本節(jié)包括在 Unix 平臺的 Apache 2.0 下安裝 PHP 的說明和提示。
Warning
不推薦將線程化 MPM 用于實際運作的 Apache 2 環(huán)境中去。用 prefork MPM 替代,或者用 Apache 1。其原因見 FAQ 中的 使用線程化 MPM 的 Apache2。
推薦閱讀 » Apache 文檔,了解一下 Apache 2.0 服務(wù)器。
Note: PHP 和 Apache 2.0.x 兼容性注意事項 已知下列版本的 PHP 可以工作于最近版本的 Apache 2.0.x 之下:
PHP 4.3.0 或更高版本,可從 » http://www.php.net/downloads.php 下載。
最新的穩(wěn)定開發(fā)版。取得源代碼 » http://snaps.php.net/php5-latest.tar.gz 或下載 Windows 可執(zhí)行程序 » http://snaps.php.net/win32/php5-win32-latest.zip
預(yù)發(fā)布版,可從 » http://qa.php.net/ 下載。
總是可以通過 » 匿名 CVS 取得 PHP。
以上版本的 PHP 與 Apache 2.0.40 或更高版本兼容。
Apache 2.0 SAPI 支持自 PHP 4.2.0 起。PHP 4.2.3 可工作于 2.0.39,不要用任何其它版本的 Apache 與 PHP 4.2.3 配合。不過推薦的設(shè)置是用 PHP 4.3.0 或更高版本與最新版的 Apache2 配合使用。
所有提及的 PHP 版本仍然能工作于 Apache 1.3.x 之下。
下載最新版本的 » Apache 2.0,并且根據(jù)上文選擇合適版本的 PHP 下載。本向?qū)H包含最基礎(chǔ)的內(nèi)容,只能讓 Apache 2.0 和 PHP 能夠正常工作。更多信息請閱讀 » Apache 文檔。這里省略所有的版本號,以保證本文的正確性。需要將本文的“NN”替換為相應(yīng)的版本號。
Example#1 安裝說明(Apache 2 共享模塊版本)
1. gzip -d httpd-2_0_NN.tar.gz
2. tar xvf httpd-2_0_NN.tar
3. gunzip php-NN.tar.gz
4. tar -xvf php-NN.tar
5. cd httpd-2_0_NN
6. ./configure --enable-so
7. make
8. make install

現(xiàn)在已經(jīng)將 Apache 2.0.NN 安裝在 /usr/local/apache。本安裝支持可裝載模塊
和標(biāo)準(zhǔn)的 MPM prefork。之后,可以使用如下命令啟動 Apache 服務(wù)器:
/usr/local/apache2/bin/apachectl start
如果成功,可以停止 Apache 服務(wù)器并繼續(xù)安裝 PHP:
/usr/local/apache2/bin/apachectl stop.

9. cd ../php4-NN

10. 現(xiàn)在需要配置 PHP。在這里可以用各種各樣的參數(shù)來自定義PHP,例如啟動哪些
擴(kuò)展功能包的支持等。用 ./configure --help 命令可以列出當(dāng)前可用的所有參
數(shù)。在此例中,將給出一個在有 MySQL 支持的 Apache 2 上進(jìn)行配置的范例。
用戶本地的 apxs 的路徑可能會不同,事實上,在用戶的系統(tǒng)中,它可能被命名為
apxs2。

./configure --with-apxs2=/usr/local/apache2/bin/apxs

11. make
12. make install

如果決定在安裝后改變配置選項,只需重復(fù)最后的三步,然后需要重新啟動 Apache
使新模塊生效。無需重新編譯。

請注意,除非明確有提示,否則“make install”命令將安裝 PEAR、各種 PHP 工具
諸如 phpize,安裝 PHP CLI 等等。

13. 配置 php.ini

cp php.ini-dist /usr/local/lib/php.ini

可以編輯 php.ini 文件以修改 PHP 的選項。如果想要把此文件放到另外的位置,
需要在步驟 10 添加 --with-config-file-path=/path 選項。

如果選擇 php.ini -recommended,請務(wù)必閱讀其中的變更的列表,它們將影響
PHP 的執(zhí)行。

14. 編輯 httpd.conf 文件以調(diào)用 PHP 模塊。LoadModule 表達(dá)式右邊的路徑必須指向
系統(tǒng)中的 PHP。以上的 make install 命令可能已經(jīng)完成了這些,但務(wù)必要檢查。

對于 PHP 4:
LoadModule php4_module modules/libphp4.so

對于 PHP 5:
LoadModule php5_module modules/libphp5.so

15. 告知 Apache 將特定的擴(kuò)展名解析成 PHP,例如,讓 Apache 將擴(kuò)展名 .php
解析成 PHP??梢詫⑷魏螖U(kuò)展名指定為 PHP,只需添加它們,每一個用空格分隔。
例如,要添加 .phtml:

AddType application/x-httpd-php .php .phtml

通常還將 .phps 擴(kuò)展名設(shè)置成顯示高亮的 PHP 源文件,可以這樣來完成:

AddType application/x-httpd-php-source .phps

16. 啟動 Apache 服務(wù)器:
/usr/local/apache2/bin/apachectl start


按照上面的步驟便可以使 Apache 2.0 將 PHP 作為 SAPI 模塊了。當(dāng)然 Apache 和 PHP 都還有很多配置選項,可以在相應(yīng)的源代碼目錄中使用 ./configure --help 獲得更多信息。假如要編譯一個多線程版本的 Apache 2.0,必須覆蓋標(biāo)準(zhǔn)的 MPM-Module prefork,或者 worker 或者 perchild。要這樣,需要在上面的第 6 步使用 --with-mpm=worker 或者 --with-mpm=perchild 選項。之前需要了解自己在做什么。更多信息請參考 Apache 文檔中關(guān)于» MPM-Modules 的部分。
Note: 如果要使用內(nèi)容協(xié)商(content negotiation)機(jī)制,請閱讀 Apache MultiViews 常見問題。
Note: 要編譯多線程版本的 Apache,系統(tǒng)必須支持多線程。這也意味著需要將 PHP 編譯為正處在試驗階段的 Zend Thread Safety(ZTS),因此并不是所有的擴(kuò)展都可以使用了。推薦編譯 Apache 使用標(biāo)準(zhǔn)的 prefork MPM-Module。

Caudium 服務(wù)器
PHP 4 可以被編譯為 » Caudium web 服務(wù)器的一個 Pike 模塊。注意 PHP 3 中不支持。請參考下面的安裝說明以將 PHP 4 安裝到 Caudium 服務(wù)器中。
Example#1 Caudium 安裝指南
1. 在安裝 PHP 4 之前請確認(rèn)已經(jīng)正確安裝了 Caudium 服務(wù)器。
要想使 PHP 4 正確的工作,還需要 Pike 7.0.268 或更高版本。
為了方便起見,我們假定 Caudium 安裝在 /opt/caudium/server/ 中。
2. 進(jìn)入目錄 php-x.y.z (x.y.z 是 PHP 的版本號)。
3. ./configure --with-caudium=/opt/caudium/server
4. make
5. make install
6. 如果 Caudium 正在運行請重新啟動它。
7. 登錄圖形配置界面,進(jìn)入需要 PHP 4 支持的虛擬服務(wù)器。
8. 點擊 Add Module 之后點擊 locate,然后添加 PHP 4 腳本支持模塊。
9. 如果出現(xiàn)“PHP 4 interpreter isn't available”的錯誤提示,
請重新啟動 web 服務(wù)器。如果還是不行,請檢查
/opt/caudium/logs/debug/default.1 中是否有與
PHP4.so 文件相關(guān)的錯誤。也要查看
caudium/server/lib/[pike-version]/PHP4.so
這個文件是否存在。
10. 如果需要,請配置 PHP 腳本支持模塊。


當(dāng)然可以將各種 PHP 4 的擴(kuò)展模塊編譯到 Caudium 服務(wù)器中。請參考擴(kuò)展庫各自配置選項的說明。
Note: 當(dāng)編譯 PHP 4 的 MySQL 的支持時,必須確認(rèn)使用了正常的 MySQL 客戶端代碼。否則如果 Pike 已經(jīng)支持 MySQL,就會產(chǎn)生沖突。應(yīng)該在編譯的時候使用 --with-mysql 選項指定 MySQL 的安裝目錄。


fhttpd 服務(wù)器
要將 PHP 作為 fhttpd 的模塊來編譯,在提示“Build as an fhttpd module?”時,回答“yes”(用 --with-fhttpd= DIR來配置)并且指定 fhttpd 源代碼的基本目錄。默認(rèn)的目錄是 /usr/local/src/fhttpd。如果正在使用 fhttpd 服務(wù)器,將 PHP 編譯成模塊方式將提供更好的性能,更多的可控性以及遠(yuǎn)程執(zhí)行能力。
Note: PHP 4.3.0 以后的版本已經(jīng)不再提供對 fhttpd 的支持。

Sun Solaris 上的 Sun、iPlanet 和 Netscape 服務(wù)器
本節(jié)包含了在 Sun Solaris 平臺的 Sun Java System web Server、Sun ONE web Server、iPlanet 和 Netscape 下安裝 PHP 的說明和提示。
從 PHP 4.3.3 起,可以使用基于 NSAPI 模塊 PHP 腳本來 生成自定義目錄列表和錯誤頁面。更多與 Apache 兼容的功能也可以使用。要了解如何在當(dāng)前的 web 服務(wù)器中支持此功能,請閱讀 關(guān)于子請求(subrequests)的注釋。
可以在下面的鏈接中了解更多關(guān)于在 Netscape Enterprise Server(NES)中設(shè)置 PHP 的信息: » http://benoit.noss.free.fr/php/install-php4.html。
要在 Sun JSWS/Sun ONE WS/iPlanet/Netscape web 服務(wù)器中編譯 PHP,請為 --with-nsapi=[DIR] 輸入合適的安裝目錄。默認(rèn)的目錄通常是 /opt/netscape/suitespot/。還可以閱讀 /php-xxx-version/sapi/nsapi/nsapi-readme.txt。
1. 從 » http://www.sunfreeware.com/ 或其它下載站點安裝下面的軟件包:
autoconf-2.13
automake-1.4
bison-1_25-sol26-sparc-local
flex-2_5_4a-sol26-sparc-local
gcc-2_95_2-sol26-sparc-local
gzip-1.2.4-sol26-sparc-local
m4-1_4-sol26-sparc-local
make-3_76_1-sol26-sparc-local
mysql-3.23.24-beta(如果想要 mysql 支持)
perl-5_005_03-sol26-sparc-local
tar-1.13 (GNU tar)
2. 請確認(rèn) PATH 變量包含適當(dāng)?shù)哪夸?PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin,并使用 export PATH 命令將其導(dǎo)出為環(huán)境變量。
3. gunzip php-x.x.x.tar.gz (如果使用 .gz 版本,否則跳到 4)
4. tar xvf php-x.x.x.tar
5. 進(jìn)入 PHP 解壓縮后的目錄: cd ../php-x.x.x
6. 在下面的步驟中,請確認(rèn) Netscape 服務(wù)器安裝在 /opt/netscape/suitespot/ 目錄中。否則,將下面命令中的該路徑修改為正確的路徑并運行:
7. ./configure --with-mysql=/usr/local/mysql
8. --with-nsapi=/opt/netscape/suitespot/
9. --enable-libgcc
10. 運行 make,然后運行 make install。
在執(zhí)行了基礎(chǔ)的安裝并閱讀相應(yīng)的 Readme 文件后,還需要執(zhí)行一些額外的配置步驟。
Sun/iPlanet/Netscape 的配置說明
首先需要為 LD_LIBRARY_PATH 環(huán)境變量添加一些路徑,以便服務(wù)器找到所需的共享庫。可以使用 web 服務(wù)器的啟動腳本很好的完成這一工作。啟動腳本通常位于: /path/to/server/https-servername/start?;蛟S需要編輯其配置文件,它位于: /path/to/server/https-servername/config/。
1. 添加下面一行到 mime.types(可以在管理服務(wù)器中添加):
2. type=magnus-internal/x-httpd-php exts=php
3.
4.
5. 編輯 magnus.conf( 若服務(wù)器 >= 6)或 obj.conf(若服務(wù)器 < 6)并添加下述內(nèi)容。shlib 的值根據(jù)系統(tǒng)的配置會有所不同。它可能類似于 /opt/netscape/suitespot/bin/libphp4.so。應(yīng)該在 mime types init 后添加如下兩行內(nèi)容:
6. Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
7. Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
(PHP >= 4.3.3) php_ini 參數(shù)是可選的。但是若使用它,便可以將 php.ini 放到 web 服務(wù)器的配置目錄中去。
8. 在 obj.conf 中配置默認(rèn)對象(對于虛擬服務(wù)器的類 [版本 6.0+] 是在 vserver.obj.conf 中):
9.
10. .
11. .
12. .
13. .#注意下面一行添加在所有“ObjectType”之后,所有“AddLog”之前
14. Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
15. .
16. .
17.

(PHP >= 4.3.3)作為附加的參數(shù),可以在 php.ini 中添加一些特別的配置選項。例如可以設(shè)置docroot="/path/to/docroot" 指向 php4_execute 被調(diào)用的上下文(context)。對于布爾 ini 鍵值,請使用 0/1 作為其值,而不是 "On"、"Off" 等(它們是無效的),例如,使用 zlib.output_compression=1,而不應(yīng)使用zlib.output_compression="On"。
18. 本步驟僅在需要配置一個由 PHP 腳本組成的目錄時由必要執(zhí)行(類似于一個 cgi-bin 目錄):
19.
20. ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
21. Service fn=php4_execute [inikey=value inikey=value ...]
22.

之后,可以在管理服務(wù)器中配置一個目錄,分配給它 x-httpd-php 風(fēng)格(style)。這樣在該目錄中的所有文件都會被當(dāng)作 PHP 來執(zhí)行。這樣就能很方便的將 PHP 文件更名為 .html 以隱藏 PHP。
23. 認(rèn)證的設(shè)置:PHP 認(rèn)證不能與其它任何類型的認(rèn)證一起工作。所有認(rèn)證被傳遞到 PHP 腳本。要為整個服務(wù)器配置 PHP 認(rèn)證,在默認(rèn)對象中添加下面一行:
24.
25. AuthTrans fn=php4_auth_trans
26. .
27. .
28. .
29.

30. 要在單一目錄使用 PHP 認(rèn)證,添加如下內(nèi)容:
31.
32. AuthTrans fn=php4_auth_trans
33.

Note: PHP 使用的堆棧大小取決于 web 服務(wù)器的配置。如果運行很大的 PHP 腳本時程序崩潰,推薦在 Admin Server(在“MAGNUS EDITOR”一節(jié))中增大此項。
CGI 環(huán)境和對 php.ini 推薦的修改
當(dāng)編寫 PHP 腳本時,應(yīng)特別注意 Sun JSWS/Sun ONE WS/iPlanet/Netscape 是一個多線程 web 服務(wù)器。因此,所有請求都運行在相同的進(jìn)程空間(Web 服務(wù)器自己的空間),該空間僅有一套環(huán)境變量。如果想獲得 CGI 變量,例如 PATH_INFO、 HTTP_HOST 等,使用原有的 PHP 3.x 的方式( getenv()),或使用類似的方式(注冊全局變量到環(huán)境變量, $_ENV),都是不可行的。只能獲得運行中的 web 服務(wù)器的環(huán)境變量,而不能獲得任何有效的 CGI 變量!
Note: 為什么在環(huán)境中存在(無效的)CGI 變量?
答:這是因為從管理服務(wù)器中啟動 web 服務(wù)器進(jìn)程時,運行了 web 服務(wù)器的啟動腳本,它事實上是一個 CGI 腳本(管理服務(wù)器中的一個 CGI 腳本?。?。這便是為什么啟動的 web 服務(wù)器包含一些 CGI 變量??梢試L試不從管理服務(wù)器啟動 web 服務(wù)器,用 root 用戶登錄使用命令行手動啟動它,會發(fā)現(xiàn)這些 CGI 形式的變量不復(fù)存在。
要在 PHP 4.x 中正確獲得 CGI 變量,僅需修改腳本使用超級全局變量 $_SERVER。如果老腳本中使用了$HTTP_HOST 等變量,應(yīng)該在 php.ini 中打開 register_globals,并且要修改變量順序(注意:從中刪除 "E",因為不需要這里的環(huán)境變量):
variables_order = "GPCS"
register_globals = On
錯誤頁面及自造目錄列表的特別使用 (PHP >= 4.3.3)
可以使用 PHP 為 "404 Not Found" 或類似的錯誤代碼生成錯誤頁面。將下面幾行添加到 obj.conf 中以覆蓋默認(rèn)的錯誤頁面:
Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
XXX 是 HTTP 錯誤代碼。請刪除任何可能干擾 Error 設(shè)置的指令。如果想為所有可能存在的錯誤提供一個頁面,則將code 參數(shù)刪除。腳本可以通過 $_SERVER['ERROR_TYPE'] 獲得 HTTP 狀態(tài)代碼。
另一種可能是生成自造目錄列表。只要創(chuàng)建一個 PHP 腳本,來顯示目錄列表 并在 obj.conf 中為 type="magnus-internal/directory" 將相應(yīng)的默認(rèn) Service 行替換為:
Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
錯誤和目錄列表頁面中,原始的 URI 和翻譯的 URI 均被分別儲存在 $_SERVER['PATH_INFO'] 和$_SERVER['PATH_TRANSLATED'] 變量中。
關(guān)于 nsapi_virtual() 和子請求的注意事項(PHP >= 4.3.3)
NSAPI 模塊現(xiàn)在支持 nsapi_virtual() 函數(shù)(別名: virtual()),用來在 web 服務(wù)器上創(chuàng)建子請求(subrequests)和在 web 頁面插入請求的結(jié)果。此函數(shù)使用了一些 NSAPI 中還沒有文檔說明的函數(shù)。在 Unix 下,該模塊自動查找需要的函數(shù),若它們存在則使用它們。若不存在,函數(shù) nsapi_virtual() 被禁用。
Note: 但是要注意,對 nsapi_virtual() 的支持是試驗性質(zhì)的!

CGI 和命令行設(shè)置
默認(rèn)為將 PHP 編譯為 CGI 程序。這將建立一個命令行解釋器,可用于 CGI 處理或非 web 相關(guān)的 PHP 腳本。如果用戶運行著一個 PHP 模塊支持的 web 服務(wù)器,那通常為性能考慮應(yīng)該使用模塊方式。不過,CGI 版可以使 Apache 用戶用不同的用戶 ID 運行不同的 PHP 頁面。
Warning
如果使用 CGI 方式安裝,則服務(wù)器對于某些可能的攻擊是開放的。請閱讀 CGI 安全一章以學(xué)習(xí)如何防御這些攻擊。
自 PHP 4.3.0 起,PHP 有了一些重要的新增功能。又有了一個新的 SAPI 稱為 CLI,和 CGI 程序同名。根據(jù)配置選項它安裝在 {PREFIX}/bin/php,并在手冊中 PHP 的命令行模式一章中有詳細(xì)說明。更多細(xì)節(jié)請閱讀該章節(jié)。
測試
如果將 PHP 編譯為 CGI 程序,可以通過鍵入 make test 來測試你的編譯。測試一下編譯永遠(yuǎn)是個好主意。這樣就可以在你的平臺上及早捕捉到 PHP 的問題而不是以后再費力的解決。
基準(zhǔn)測試
如果將 PHP 3 編譯為 CGI 程序,可以通過鍵入 make bench 來進(jìn)行一下性能的基準(zhǔn)測試。注意如果默認(rèn)打開了安全模式,則超過 30 秒的允許范圍測試可能不能完成。這是因為 set_time_limit() 不能用于安全模式。用max_execution_time 配置選項來為你自己的腳本控制此時間限制。 make bench 會忽略配置文件。
Note: make bench 僅能用于 PHP 3。
使用變量
某些 服務(wù)器提供的環(huán)境變量沒有定義在當(dāng)前的 » CGI/1.1 標(biāo)準(zhǔn)中。只有下列變量定義在其中: AUTH_TYPE,CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED,QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER,REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL 和SERVER_SOFTWARE。其它的變量均作為“供應(yīng)商擴(kuò)展(vendor extensions)”來對待。


在 HP-UX 系統(tǒng)下的安裝
本章節(jié)的內(nèi)容和提示僅限于將 PHP 安裝到 HP-UX 系統(tǒng)上(此文章是由 paul_mckay at clearwater-it dot co dot uk 編寫的)。
Note: 本文涉及的技巧適用于 PHP 4.0.4 和 Apache 1.3.9。
1. 安裝 PHP 需要一個 gzip,可以從如下地址得到該軟件的二進(jìn)制版本的發(fā)行包http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z,下載后解壓縮,并且使用 swinstall 安裝。
2. 安裝 PHP 需要 gcc,可以從如下地址得到該軟件的二進(jìn)制版本的發(fā)行包http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz,解壓縮這個文件,使用 swinstall 安裝 gcc。
3. 安裝 PHP 需要 GNU binutils,可以從如下地址得到該軟件的二進(jìn)制版本的發(fā)行包http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz,解壓縮這個文件,使用 swinstall 安裝 binutils。
4. 安裝 PHP 需要 bison,可以從如下地址得到該軟件的二進(jìn)制版本的發(fā)行包http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz,安裝方式同上。
5. 安裝 PHP 需要 flex,需要從 http://www.gnu.org 的鏡像站點下載一個該軟件的源代碼。它被放置于一個 非 gnu 目錄的 ftp 服務(wù)器上。下載這個文件,并且使用 gunzip 解壓縮,然后執(zhí)行 tar -xvf。進(jìn)入新創(chuàng)建的 flex 目錄并運行 ./configure,再執(zhí)行 make 以及 make install。
如果這里出現(xiàn)了錯誤,很可能是由于 gcc 等工具不在路徑中,應(yīng)將其添加到環(huán)境變量 PATH 中。
6. 下載 PHP 和 apache 的源代碼。
7. 下載后對他們分別執(zhí)行 gunzip 和 tar -xvf。在開始編譯他們之前我們需要修改一些文件。
8. 首先 configure 文件需要被修改,因為它似乎忘記自己是在 hpux 系統(tǒng)下了,有更好的方法解決此問題,但最省事的是在配置腳本的第 47286 行加入 lt_target=hpux10.20。
9. 其次是修改 Apache GuessOS 文件。在文件 apache_1.3.9/src/helpers 的第 89 行,將參數(shù) echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0 替換為 echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0。
10. 不能把 PHP 作為共享對象方式安裝到 HP-UX,因此你必須將其編譯成為一個靜態(tài)方式,參照 Apache 站點的指導(dǎo)就可以完成。
11. 這樣就完成了 PHP 和 Apache 的 安裝編譯,然而 Apache 將仍然不能啟動,必須為 Apache 配置一個新的用戶名,例如 www 或 apache。然后修改 Apache 配置文件 conf/httpd.conf 的 252 和 253 行,由原來的
12. User nobody
13. Group nogroup
14.
替換為類似如下的內(nèi)容
User www
Group sys

這是因為在 hp-ux 系統(tǒng)下, Apache 不能作為 nobody 用戶運行。按照上面的方式配置 Apache 和 PHP 就應(yīng)該可以正常工作了。

在 OpenBSD 系統(tǒng)下的安裝
本章節(jié)的內(nèi)容和提示僅限于將 PHP 安裝到 » OpenBSD 3.6 系統(tǒng)上。
使用二進(jìn)制包安裝
使用二進(jìn)制包安裝 PHP 到 OpenBSD 系統(tǒng)上是被推薦的同時也是最簡單的方法。PHP 核心包已經(jīng)從其他模塊中分離出來了并且每個模塊可以被獨立的安裝/卸載而不影響其他模塊。所有這些安裝 PHP 需要的文件可以在 OpenBSD 光盤或者在 FTP 站點上找到。
需要安裝的 PHP 核心包的文件是 php4-core-4.3.8.tgz,它包含了基本的引擎(包括 gettext 和 iconv)。其次,可能還需要安裝一些模塊包,如: php4-mysql-4.3.8.tgz 或 php4-imap-4.3.8.tgz。需要使用命令 phpxs 去激活它,并且再通過修改 php.ini 文件來屏蔽他們。
Example#1 在 OpenBSD 系統(tǒng)下的軟件包的安裝示例
# pkg_add php4-core-4.3.8.tgz
# /usr/local/sbin/phpxs -s
# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
(加入 mysql 包)
# pkg_add php4-mysql-4.3.8.tgz
# /usr/local/sbin/phpxs -a mysql
(加入 imap 包)
# pkg_add php4-imap-4.3.8.tgz
# /usr/local/sbin/phpxs -a imap
(測試一下刪除 mysql 包)
# pkg_delete php4-mysql-4.3.8
# /usr/local/sbin/phpxs -r mysql
(安裝 PEAR 庫)
# pkg_add php4-pear-4.3.8.tgz
閱讀用戶手冊中的 » packages(7) 部分,可以得到更多 OpenBSD 系統(tǒng)下有關(guān)二進(jìn)制軟件包的信息.
使用軟件包
同樣可以使用 » 軟件包目錄(ports tree)來編譯 PHP 的源代碼。然而,這樣的安裝方式僅僅是建議對 OpenBSD 非常熟悉的高級用戶去做。PHP4 的軟件包被分別分為了兩個子目錄:core 和 extensions。其中 extensions 目錄產(chǎn)生了所有 PHP 所支持的子模塊。如果不希望創(chuàng)建并且使用這些模塊中的某些模塊,請使用 FLAVOR no_* 參數(shù)。例如,如果希望跳過編譯 imap 模塊,設(shè)置 FLAVOR 為 no_imap 即可。
常見問題
默認(rèn)安裝的 Apache 運行于 » chroot(2) jail,將限制 PHP 腳本只能訪問 /var/www 下面的文件。需要建立/var/www/tmp 目錄來存放 PHP session 文件,或使用其它的 session 后端。此外,數(shù)據(jù)庫套接字需要被放入 jail 或者偵聽 localhost 接口。如果使用網(wǎng)絡(luò)函數(shù),某些 /etc 下面的文件例如 /etc/resolv.conf 和 /etc/services 需要被移動到 /var/www/etc 中去。OpenBSD PEAR 包會自動安裝到正確的 chroot 目錄中,因此不需要作特殊改動。有關(guān) OpenBSD Apache 的更多信息見 » OpenBSD FAQ。
對應(yīng)于 » gd 擴(kuò)展的 OpenBSD 3.6 包需要預(yù)先安裝 XFree86。如果不想使用那些需要 X11 的字體特性,則安裝php4-gd-4.3.8-no_x11.tgz 包來替代之。
早期發(fā)布版本
早期的 OpenBSD 系統(tǒng)使用 FLAVORS 系統(tǒng)把 PHP 連接為靜態(tài)模式。自從使用這種方法編譯就造成了問題:很難制作二進(jìn)制軟件包。仍然可以使用早期穩(wěn)定的 ports trees,但這種方式已經(jīng)不被 OpenBSD 小組所支持。如果對此有任何建議和意見,軟件包當(dāng)前的維護(hù)人是 Anil Madhavapeddy(avsm at openbsd dot org)。

在 Solaris 下的安裝
本節(jié)包含了在 Solaris 系統(tǒng)上安裝 PHP 的說明和提示。
需要的軟件
默認(rèn)安裝的 Solaris 系統(tǒng)經(jīng)常缺少 C 語言編譯器和其相關(guān)工具。部分工具必須使用該工具的 GNU 版本,原因請閱讀FAQ。下面是需要的軟件:
gcc(推薦使用,其它 C 語言編譯器也可以工作)
make
flex
bison
m4
autoconf
automake
perl
gzip
tar
GNU sed
此外,還需要安裝(或編譯)在配置時定義的所有額外軟件,比如說 Oracle 或 MySQL。
使用軟件包
可以使用 pkgadd 來安裝大部分需要的軟件來簡化 Solaris 安裝過程。

Debian GNU/Linux 安裝說明
本節(jié)包含了在 » Debian GNU/Linux 下安裝 PHP 的說明和提示。
使用 APT
當(dāng)然可以下載 PHP 源代碼并自己編譯,不過使用 Debian 的軟件包系統(tǒng)是安裝 PHP 的最簡單和最干凈利落的方法。如果不熟悉在 Linux 下編譯軟件,那最好用此方法。
首先要決定是安裝 Apache 1.3.x 還是 Apache 2.x。相對應(yīng)的 PHP 軟件包名字為 libapache-mod-php* 和 libapache2-mod-php*。以下步驟以 Apache 1.3.x 為例。注意迄今為止,還沒有 PHP 5 的正式的 Debian 軟件包。以下步驟將安裝 PHP 4。
PHP 在 Debian 下也有 CGI 和 CLI 兩種風(fēng)格,分別命名為 php4-cgi 和 php4-cli。如果需要的話,只要用正確的軟件包名稱重復(fù)以下步驟。另外需要安裝的一個特殊軟件包是 php4-pear。它包含了最小的 PEAR 安裝以及 pear 命令行工具。
如果需要比 Debian 的穩(wěn)定版本更新的 PHP 包或者一些不在 Debian 官方庫中的 PHP 模塊,那應(yīng)該看看 » http://www.apt-get.org/。其中可以找到一個 » Dotdeb。此非官方庫是由 » Guillaume Plessis 負(fù)責(zé)維護(hù),其中包含了最新版 PHP 4 和 PHP 5 的 Debian 軟件包。要使用,只需將以下兩行添加到 /etc/apt/sources.lists 并運行 apt-get update:
Example#1 Dotdeb 有關(guān)的兩行
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all
最后要考慮的是自己的軟件包列表是否是最新版。如果最近沒有更新過,那需要在做任何事之前先 apt-get update。這樣就可以使用最近穩(wěn)定版的 Apache 和 PHP 軟件包了。
所有準(zhǔn)備做好之后,就可以按照下面的例子來安裝 Apache 和 PHP:
Example#2 Debian 中在 Apache 1.3 下安裝的例子
# apt-get install libapache-mod-php4
APT 將自動安裝 Apache 1.3 的 PHP 4 模塊以及所有依賴的庫并激活之。如果在安裝過程中沒有被要求重啟動 Apache,那必須手工進(jìn)行:
Example#3 安裝完 PHP 4 后停止并啟動 Apache
# /etc/init.d/apache stop
# /etc/init.d/apache start
更好地控制配置
上一節(jié)中 PHP 僅安裝了核心模塊。但可能不夠用,用戶很快就會發(fā)現(xiàn)需要更多的激活模塊,例如 MySQL,cURL,GD 等。
當(dāng)自己從源代碼編譯 PHP 時,需要通過 configure 命令來激活模塊。用 APT 則只需安裝附加的軟件包。這些包都命名為“php4-*”(或“php5-*”,如果安裝了第三方的 PHP 5 的話)。
Example#4 取得 PHP 附加軟件包的列表
# dpkg -l 'php4-*'
從上面的輸出中可以看到,還有很多 PHP 模塊可安裝(除了 php4-cgi,php4-cli 或 php4-pear 這些特殊軟件包)。仔細(xì)察看并安裝自己所需要的。如果選擇了一個模塊而沒有相應(yīng)的庫,APT 會自動安裝所有依賴的庫。
如果選擇將 MySQL,cURL 和 GD 支持添加到 PHP 中,則其命令類似于:
Example#5 安裝 PHP 的 MySQL,cURL 和 GD 支持
# apt-get install php4-mysql php4-curl php4-gd
APT 會自動把適當(dāng)?shù)男刑砑拥讲煌?php.ini( /etc/php4/apache/php.ini, /etc/php4/cgi/php.ini 等)中去。
Example#6 在 PHP 中激活 MySQL,cURL 和 GD 的配置行
extension=mysql.so
extension=curl.so
extension=gd.so
只需像之前那樣重新啟動 Apache 來激活這些模塊。
常見問題
如果看到了 PHP 源代碼而不是腳本應(yīng)該產(chǎn)生的結(jié)果,則 APT 可能沒有 /etc/apache/conf.d/php4 包括到 Apache 1.3 配置中去。請確保下面一行出現(xiàn)在 /etc/apache/httpd.conf 文件中并重啟動 Apache:
Example#7 下面這行在 Apache 中激活了 PHP 4
# Include /etc/apache/conf.d/
如果安裝了更多模塊但其函數(shù)不能在腳本中使用,請確保相應(yīng)的配置行出現(xiàn)在 php.ini 中,如上面所說。APT 可能會由于混亂的 debconf 配置而在安裝附加模塊時失敗。

以上內(nèi)容由寶雞網(wǎng)站建設(shè)公司、寶雞網(wǎng)絡(luò)公司---寶雞世紀(jì)網(wǎng)絡(luò)公司為您轉(zhuǎn)摘!我公司是寶雞地區(qū)專業(yè)的網(wǎng)站建設(shè)服務(wù)提供商,五年建站歷程、六百家客戶的選擇,值得信賴!咨詢熱線0917-3535180 3536690




0