下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、為 Linux 和 Windows 安裝 PHP 和 Oracle 10g Instant Client 作者:Christopher Jones,甲骨文公司的咨詢技術(shù)人員發(fā)布日期:2004 年 12 月 Oracle 10g Instant Client(免費(fèi)下載)是PHP 與遠(yuǎn)程 Oracle 數(shù)據(jù)庫(kù)連接的最簡(jiǎn)單方式,它只需要安裝三個(gè)庫(kù)。 PHP 訪問(wèn) Oracle 的當(dāng)前 API 所使用的 Instant Client 庫(kù)稱作 OCI8.(此 C 接口的名稱最早是在 Oracle8 中引入的。)PHP Oracle 8 函數(shù) 可以直接調(diào)用 Oracle 8.1.7、9.x 或 10.x,
2、或者也可以為了方便起見(jiàn),使用可選的抽象類,如 PEAR MDB2 和 ADOdb。 Instant Client 也可以使用老版本的 PHP“oracle”擴(kuò)展,但它調(diào)用不贊成使用的 Oracle API。PHP 界或 Oracle 建議不要使用此擴(kuò)展進(jìn)行新的開(kāi)發(fā)。 要在 Apache 上將 Instant Client 與 PHP 4 或 連用,請(qǐng)遵循以下步驟。需要一個(gè)現(xiàn)有的 Oracle 數(shù)據(jù)庫(kù);Instant Client 不提供 Oracle 數(shù)據(jù)庫(kù)。通常情況下,此數(shù)據(jù)庫(kù)將位于其他計(jì)算機(jī)上。如果數(shù)據(jù)庫(kù)位于本地,則 Oracle 組件一般早已可用,從而不需要 Instant Client
3、。軟件需求: 軟件附注Oracle Instant Client下載“Instant Client Package - Basic”。在 Linux 上,還應(yīng)下載“Instant Client Package - SDK”。Apache HTTPD ServerPHP 界仍推薦 Apache 1.3PHP PHP 超文本處理器4.3 版或更高版本在 Windows 上啟用 PHP OCI8 擴(kuò)展 Instant Client 二進(jìn)制文件是 PHP 的 Windows 預(yù)構(gòu)建二進(jìn)制文件的補(bǔ)充。 1. 下載 PHP 二進(jìn)制壓縮文件(不是安裝程序版本)和 Apache。按照 PHP 手冊(cè)中的 Win
4、dows 系統(tǒng)上的安裝安裝它們。OTN 的開(kāi)放源代碼開(kāi)發(fā)人員中心包含有用背景資料的鏈接,如“在 Windows 2000/XP 上安裝 Oracle、PHP 和 Apache”,它介紹了如何安裝傳統(tǒng)、完整的 Oracle 10g 版本(Instant Client 不需要此版本)。 繼續(xù)操作之前檢查 PHP 是否正常運(yùn)行。此階段未啟用 Oracle 支持。 2. 從 OTN 的 Instant Client 頁(yè)面下載用于 Windows 的 Instant Client Basic 程序包。此壓縮文件的大小大約為 30MB。 3. 創(chuàng)建一個(gè)子目錄(例如,c:instantclient10_1)
5、,然后從壓縮文件中復(fù)制以下庫(kù): o oraociei10.dll o orannzsbb10.dll o oci.dll 這三個(gè)文件的總大小大約為 80MB。 要使用 PHP 老版本的“oracle”擴(kuò)展(在 php.ini 中使用“extension=php_oracle.dll”啟用),則復(fù)制 ociw32.dll 而非 oci.dll。 4. 編輯此環(huán)境,將 c:instantclient10_1 添加到 PATH 中(位于其他 Oracle 目錄之前)。 例如,在 Windows 2000 上,依次單擊“開(kāi)始”->“設(shè)置”->“控制面板”->“系統(tǒng)”->“高級(jí)”
6、->“環(huán)境變量”,編輯系統(tǒng)變量列表中的 PATH。 如果使用了 tnsnames.ora 文件定義 Oracle Net 服務(wù)名稱,則將 tnsnames.ora 復(fù)制到 c:instantclient10_1,并將用戶環(huán)境變量 TNS_ADMIN 設(shè)置為 c:instantclient10_1。也可以在用戶環(huán)境變量 LOCAL 中定義默認(rèn)的服務(wù)名稱。 設(shè)置必要的 Oracle 全球化語(yǔ)言環(huán)境變量,如 NLS_LANG。如果沒(méi)有設(shè)置,則使用默認(rèn)的本地環(huán)境。有關(guān)更多詳細(xì)信息,請(qǐng)參見(jiàn) Oracle PHP 應(yīng)用程序全球化概述。 無(wú)需設(shè)置不必要的 Oracle 變量,如 ORACLE_HOME
7、 和 ORACLE_SID。 5. 編輯 php.ini,并不要將 OCI8 擴(kuò)展設(shè)為注釋: 6. extension=php_oci8.dll將 extension_dir 指令設(shè)置為完整的 PHP 擴(kuò)展 DLL 路徑。在 PHP 4 中,DLL 位于 PHP 軟件的“extensions”子目錄中。在 PHP 5 中,它們位于“ext”中。 7. 重新啟動(dòng) Apache。 要檢查是否配置了擴(kuò)展,請(qǐng)?jiān)?web 服務(wù)器可以讀取的地方創(chuàng)建一個(gè)簡(jiǎn)單的 PHP 腳本。 <?php phpinfo();?>使用“http:/”URL 將此腳本加載到瀏覽器中。瀏覽器頁(yè)面應(yīng)包含一個(gè)顯示“OCI
8、8 Support enabled”的“oci8”部分。 在 Linux 上啟用 PHP OCI8 擴(kuò)展 要在 Linux 上添加 Oracle 連接,需要重新編譯 PHP。 開(kāi)放源代碼開(kāi)發(fā)人員中心包含有用背景資料的鏈接,如在 Linux 上安裝 Oracle、PHP 和 Apache,它介紹了如何安裝傳統(tǒng)、完整的 Oracle 10g 版本(Instant Client 不需要此版本)。 1. 下載并安裝 Apache。例如,在您的主目錄中安裝它: 2. cd apache_1.3.313. ./configure -enable-module=so -prefix=$HOME/apache
9、 -with-port=88884. make5. make install編輯 $HOME/apache/conf/httpd.conf 并添加: AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps6. 下載并解壓縮 PHP。7. 從 OTN 上的 Instant Client 頁(yè)面下載 Basic 和 SDK Instant Client 程序包。這兩個(gè) RPM 的總大小大約為 30MB。 8. 以 root 用戶的身份安裝 RPM。9. rpm -Uvh oracle-insta
10、ntclient-basic--1.i386.rpm10. rpm -Uvh oracle-instantclient-devel--1.i386.rpm第一個(gè) RPM 將 Oracle 庫(kù)置于 /usr/lib/oracle//client/lib 中,第二個(gè) RPM 在 /usr/include/oracle//client 中創(chuàng)建頭 (header)。11. 備份此補(bǔ)丁,然后將它應(yīng)用于 PHP 的 ext/oci8/config.m4。該補(bǔ)丁的行號(hào)是基于 PHP 4.3.9 的。如果已修復(fù)了 PHP 錯(cuò)誤 31084(很有可
11、能已在 PHP 4.3.11 和 5.0.4 中修復(fù)),則不需要此補(bǔ)丁。 如果使用的是 PHP 4.3.9 或 4.3.10,則可以將此補(bǔ)丁保存到一個(gè)文件中(如 php_oci8ic_buildpatch),然后使用以下命令安裝它:patch -u config.m4 php_oci8ic_buildpatch此補(bǔ)丁創(chuàng)建一個(gè)新的 PHP 配置參數(shù):-with-oci8-instant-client=DIR.在 Linux 上,默認(rèn)情況下,它使用從 RPM 中安裝的最新版本的 Instant Client??梢灾付?Oracle 庫(kù)所在的目錄來(lái)使用其他版本。無(wú)論在哪種情況下,都將自動(dòng)使用正確的
12、SDK 頭。 新參數(shù)與現(xiàn)有的 -with-oci8 參數(shù)互斥。 例如:在非 Linux 平臺(tái)上,將 Instant Client 程序包解壓縮到您所選擇的目錄中。-with-oci8-instant-client 參數(shù)將需要明確指定此目錄;例如,-with-oci8-instant-client=/home/instantclient10_1。應(yīng)將 Instant Client SDK 解壓縮到與基本程序包相同的目錄中,以便修改后的配置腳本可以找到頭文件的子目錄。 12. 在頂層 PHP 目錄中重新構(gòu)建“configure”腳本。 13. cd php-4.3.914. rm -rf auto
13、m4te.cache config.cache15. ./buildconf -force16. 使用新選項(xiàng)運(yùn)行 configure。此示例使用安裝在主目錄中的 Apache。 17. ./configure 18. -with-oci8-instant-client 19. -prefix=$HOME/php -with-apxs=$HOME/apache/bin/apxs 20. -enable-sigchild -with-config-file-path=$HOME/apache/conf21. 重建 PHP。22. make23. make install24. 將 PHP 配置復(fù)制
14、到 -with-config-file-path 指定的位置25. cp php.ini-recommended $HOME/apache/conf/php.ini26. 將 LD_LIBRARY_PATH 設(shè)置為 /usr/lib/oracle//client/lib 并重新啟動(dòng) Apache。 如果使用了 tnsnames.ora 文件定義 Oracle Net 服務(wù)名稱,則將 TNS_ADMIN 設(shè)置為包含此文件的目錄。 啟動(dòng) Apache 之前應(yīng)設(shè)置所有 Oracle 環(huán)境變量。以下腳本可以幫助完成此操作: #!/bin/shAPACHEHOME=/home/apach
15、eLD_LIBRARY_PATH=/usr/lib/oracle//client/lib:$LD_LIBRARY_PATHTNS_ADMIN=/homeexport LD_LIBRARY_PATH TNS_ADMINecho Starting Apache $APACHEHOME/apachectl start要確認(rèn)是否配置了擴(kuò)展,請(qǐng)?jiān)?web 服務(wù)器可以讀取的地方創(chuàng)建一個(gè)簡(jiǎn)單的 PHP 腳本。 <?php phpinfo();?>使用類似“http:/localhost:8888/<path>/phpinfo.php”的 URL 將此腳本加載到瀏覽器中
16、。瀏覽器頁(yè)面應(yīng)包含一個(gè)顯示“OCI8 Support enabled”的“oci8”部分。 連接到 Oracle Oracle 連接信息被傳遞給 OCILogon() 來(lái)創(chuàng)建連接。與 Instant Client 關(guān)聯(lián)的工具通常“遠(yuǎn)離”任何數(shù)據(jù)庫(kù)服務(wù)器,因此必須將 Oracle Net 連接標(biāo)識(shí)符與用戶名和口令一起使用。對(duì)于已建立的 Oracle 數(shù)據(jù)庫(kù),連接信息有可能是眾所周知的。對(duì)于新系統(tǒng),此信息由 Oracle 安裝程序在安裝數(shù)據(jù)庫(kù)時(shí)提供。此安裝程序應(yīng)配置了 Oracle Net 和創(chuàng)建了一個(gè)服務(wù)名稱。 在新數(shù)據(jù)庫(kù)中,可能需要將演示模式(如 HR 用戶)解除鎖定并向其提供口令。也可通過(guò)在
17、 SQL*Plus 中以 SYSTEM 用戶身份連接并執(zhí)行以下語(yǔ)句來(lái)完成此操作:ALTER USER 用戶名 IDENTIFIED BY 新口令 ACCOUNT UNLOCK;將連接信息傳遞給 PHP 有多種方法。第一個(gè)示例使用 Oracle 10g的 Easy Connect 語(yǔ)法連接到 在 mymachine 上運(yùn)行的 MYDB 數(shù)據(jù)庫(kù)服務(wù)中的 HR 模式。不需要 tnsnames.ora 或其他 Oracle Network 文件: $c = OCILogon('hr', 'hr_password', '/mymachine.mydomain/MY
18、DB');有關(guān) Easy Connect 的語(yǔ)法,請(qǐng)參見(jiàn) Oracle 的使用 Easy Connect 命名方法文檔。 或者,如果 /home/tnsnames.ora 包含: MYDB =(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.mydomain)(PORT = 1521)(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = MYDB) ) )且 TNS_ADMIN 環(huán)境變量設(shè)置為 /home(在啟動(dòng) Apache 之前),則連接字符串可以為: $c = OCIL
19、ogon('hr', 'hr_password', 'MYDB');如果環(huán)境變量 LOCAL(在 Windows 上)或 TWO_TASK (在 Linux 上)設(shè)置為 MYDB,則可以使用以下代碼生成與 MYDB 連接: $c = OCILogon('hr', 'hr_password');使用 Oracle 當(dāng)基本連接可以使用時(shí),試著運(yùn)行一個(gè)簡(jiǎn)單的腳本 testoci.php。根據(jù)您的數(shù)據(jù)庫(kù)修改該連接的詳細(xì)信息并在瀏覽器中加載它。此示例列出了用戶 HR 擁有的所有表: <?php $conn = OCIL
20、ogon("hr", "hr_password", '/mymachine.mydomain:port/MYDB);$query = 'select table_name from user_tables'$stid = OCIParse($conn, $query);OCIExecute($stid, OCI_DEFAULT);while ($succ = OCIFetchInto($stid, $row) foreach ($row as $item) echo $item." " echo "<br>n" OCILogoff($conn); ?>故障診斷 Oracle PHP 故障診斷常見(jiàn)問(wèn)題解答包含有關(guān)連接 Oracle 的有用信息。 可以從 In
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年職務(wù)發(fā)明技術(shù)成果作為股權(quán)出資的知識(shí)產(chǎn)權(quán)協(xié)議書(shū)2篇
- 移動(dòng)商務(wù) 課程設(shè)計(jì)
- 淘寶上買(mǎi)課程設(shè)計(jì)題
- 無(wú)線電課程設(shè)計(jì)程序
- 2024年汽車(chē)行業(yè)信息技術(shù)服務(wù)合同
- 2024年旅游產(chǎn)業(yè)借款合同規(guī)范文本3篇
- 相關(guān)課程綜合課程設(shè)計(jì)
- 戚風(fēng)蛋糕的課程設(shè)計(jì)
- 幼兒園人體骨骼課程設(shè)計(jì)
- 2024年甲乙雙方關(guān)于專利申請(qǐng)代理的合同
- 鐵路工程綠色設(shè)計(jì)標(biāo)準(zhǔn)
- 車(chē)膜品牌推廣方案
- 北斗創(chuàng)新設(shè)計(jì)導(dǎo)航智慧樹(shù)知到期末考試答案2024年
- 從復(fù)雜項(xiàng)目管理到復(fù)雜系統(tǒng)管理:北京大興國(guó)際機(jī)場(chǎng)工程進(jìn)度管理實(shí)踐
- 公安內(nèi)勤培訓(xùn)課件
- 貴州省遵義市播州區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試卷(含解析)
- 遠(yuǎn)大住工-裝配式建筑發(fā)展現(xiàn)狀和技術(shù)標(biāo)準(zhǔn)
- 人教版2023-2024學(xué)年四年級(jí)數(shù)學(xué)上冊(cè)典型例題系列 第四單元:促銷(xiāo)問(wèn)題與“買(mǎi)幾送幾”專項(xiàng)練習(xí)(解析版)
- 淺析國(guó)產(chǎn)手機(jī)小米品牌形象塑造與維護(hù)
- 美甲店衛(wèi)生制度規(guī)章范本
- 湘少版三年級(jí)下冊(cè)英語(yǔ)單詞默寫(xiě)1(附單元標(biāo)題句)
評(píng)論
0/150
提交評(píng)論