国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

為Linux和Windows安裝PHP和Oracle

2024-08-29 13:32:42
字體:
來源:轉載
供稿:網友

oracle 10g instant client(免費下載)是php 與遠程 oracle 數據庫連接的最簡單方式,它只需要安裝三個庫。

  php 訪問 oracle 的當前 api 所使用的 instant client 庫稱作 oci8.(此 c 接口的名稱最早是在 oracle8 中引入的。)php oracle 8 函數 可以直接調用 oracle 8.1.7、9.x 或 10.x,或者也可以為了方便起見,使用可選的抽象類,如 pear mdb2 和 adodb。

  instant client 也可以使用老版本的 php“oracle”擴展,但它調用不贊成使用的 oracle api。php 界或 oracle 建議不要使用此擴展進行新的開發。

  要在 apache 上將 instant client 與 php 4 或 連用,請遵循以下步驟。需要一個現有的 oracle 數據庫;instant client 不提供 oracle 數據庫。通常情況下,此數據庫將位于其他計算機上。如果數據庫位于本地,則 oracle 組件一般早已可用,從而不需要 instant client。

  軟件需求:  

軟件附注
oracle instant client下載“instant client package - basic”。在 linux 上,還應下載“instant client package - sdk”。
apache httpd serverphp 界仍推薦 apache 1.3
php — php 超文本處理器4.3 版或更高版本

  在 windows 上啟用 php oci8 擴展

  instant client 二進制文件是 php 的 windows 預構建二進制文件的補充。

  1. 下載 php 二進制壓縮文件(不是安裝程序版本)和 apache。按照 php 手冊中的 windows 系統上的安裝安裝它們。otn 的開放源代碼開發人員中心包含有用背景資料的鏈接,如“在 windows 2000/xp 上安裝 oracle、php 和 apache”,它介紹了如何安裝傳統、完整的 oracle 10g 版本(instant client 不需要此版本)。

    繼續操作之前檢查 php 是否正常運行。此階段未啟用 oracle 支持。

  2. 從 otn 的 instant client 頁面下載用于 windows 的 instant client basic 程序包。此壓縮文件的大小大約為 30mb。

  3. 創建一個子目錄(例如,c:/instantclient10_1),然后從壓縮文件中復制以下庫:

    • oraociei10.dll
    • orannzsbb10.dll
    • oci.dll

這三個文件的總大小大約為 80mb。

要使用 php 老版本的“oracle”擴展(在 php.ini 中使用“extension=php_oracle.dll”啟用),則復制 ociw32.dll 而非 oci.dll。

  • 編輯此環境,將 c:/instantclient10_1 添加到 path 中(位于其他 oracle 目錄之前)。

    例如,在 windows 2000 上,依次單擊“開始”->“設置”->“控制面板”->“系統”->“高級”->“環境變量”,編輯系統變量列表中的 path。

    如果使用了 tnsnames.ora 文件定義 oracle net 服務名稱,則將 tnsnames.ora 復制到 c:/instantclient10_1,并將用戶環境變量 tns_admin 設置為 c:/instantclient10_1。也可以在用戶環境變量 local 中定義默認的服務名稱。

    設置必要的 oracle 全球化語言環境變量,如 nls_lang。如果沒有設置,則使用默認的本地環境。有關更多詳細信息,請參見 oracle php 應用程序全球化概述。

    無需設置不必要的 oracle 變量,如 oracle_home 和 oracle_sid。

  • 編輯 php.ini,并不要將 oci8 擴展設為注釋:

    extension=php_oci8.dll

    將 extension_dir 指令設置為完整的 php 擴展 dll 路徑。在 php 4 中,dll 位于 php 軟件的“extensions”子目錄中。在 php 5 中,它們位于“ext”中。

  • 重新啟動 apache。

        要檢查是否配置了擴展,請在 web 服務器可以讀取的地方創建一個簡單的 php 腳本。

      phpinfo();
      ?>

        使用“http://”url 將此腳本加載到瀏覽器中。瀏覽器頁面應包含一個顯示 “oci8 support enabled”的“oci8”部分。

    1. 在 linux 上啟用 php oci8 擴展

       要在 linux 上添加 oracle 連接,需要重新編譯 php。

        開放源代碼開發人員中心包含有用背景資料的鏈接,如在 linux 上安裝 oracle、php 和 apache,它介紹了如何安裝傳統、完整的 oracle 10g 版本(instant client 不需要此版本)。

      1. 下載并安裝 apache。例如,在您的主目錄中安裝它:
        cd apache_1.3.31./configure --enable-module=so 

        --prefix=$home/apache

        --with-port=8888makemake install

        編輯 $home/apache/conf/httpd.conf 并添加:

        addtype application/x-httpd-php .phpaddtype application/x-httpd-php-source .phps
      2. 下載并解壓縮 php。

      3. 從 otn 上的 instant client 頁面下載 basic 和 sdk instant client 程序包。這兩個 rpm 的總大小大約為 30mb。

      4. 以 root 用戶的身份安裝 rpm。

        rpm -uvh oracle-instantclient-basic-10.1.0.3

        -1.i386.rpmrpm -uvh oracle-instantclient-devel

        -10.1.0.3-1.i386.rpm

        第一個 rpm 將 oracle 庫置于 /usr/lib/oracle/10.1.0.3/client/lib 中,第二個 rpm 在 /usr/include/oracle/10.1.0.3/client 中創建頭 (header)。

      5. 備份此補丁,然后將它應用于 php 的 ext/oci8/config.m4。該補丁的行號是基于 php 4.3.9 的。如果已修復了 php 錯誤 31084(很有可能已在 php 4.3.11 和 5.0.4 中修復),則不需要此補丁。

        如果使用的是 php 4.3.9 或 4.3.10,則可以將此補丁保存到一個文件中(如 php_oci8ic_buildpatch),然后使用以下命令安裝它:

        patch -u config.m4 php_oci8ic_buildpatch

        此補丁創建一個新的 php 配置參數:--with-oci8-instant-client[=dir].在 linux 上,默認情況下,它使用從 rpm 中安裝的最新版本的 instant client??梢灾付?oracle 庫所在的目錄來使用其他版本。無論在哪種情況下,都將自動使用正確的 sdk 頭。

      新參數與現有的 --with-oci8 參數互斥。

      例如:在非 linux 平臺上,將 instant client 程序包解壓縮到您所選擇的目錄中。--with-oci8-instant-client 參數將需要明確指定此目錄;例如,--with-oci8-instant-client=/home/instantclient10_1。應將 instant client sdk 解壓縮到與基本程序包相同的目錄中,以便薷暮蟮吶渲媒瘧究梢哉業酵肺募淖幽柯肌?

    2. 在頂層 php 目錄中重新構建“configure”腳本。
      cd php-4.3.9rm -rf autom4te.cache config.cache./buildconf --force
    3. 使用新選項運行 configure。此示例使用安裝在主目錄中的 apache。

      ./configure /--with-oci8-instant-client /--prefix=$home/php 

      --with-apxs=$home/apache/bin/apxs

      /--enable-sigchild --with-config-file-path=$home

      /apache/conf

    4. 重建 php。

      makemake install
    5. 將 php 配置復制到 --with-config-file-path 指定的位置

      cp php.ini-recommended $home/apache/conf/php.ini
    6. 將 ld_library_path 設置為 /usr/lib/oracle/10.1.0.3/client/lib 并重新啟動 apache。

      如果使用了 tnsnames.ora 文件定義 oracle net 服務名稱,則將 tns_admin 設置為包含此文件的目錄。

      啟動 apache 之前應設置所有 oracle 環境變量。以下腳本可以幫助完成此操作:

      #!/bin/shapachehome=/home/apacheld_library_path

      =/usr/lib/oracle/10.1.0.3/client/lib:

      ${ld_library_path}tns_admin

      =/homeexport ld_library_path tns_adminecho

      starting apache $apachehome/apachectl start

    7.  

      要確認是否配置了擴展,請在 web 服務器可以讀取的地方創建一個簡單的 php 腳本。

      phpinfo();
      ?>

        使用類似“http://localhost:8888//phpinfo.php”的 url 將此腳本加載到瀏覽器中。瀏覽器頁面應包含一個顯示“oci8 support enabled”的“oci8”部分。

        連接到 oracle

        oracle 連接信息被傳遞給 ocilogon() 來創建連接。與 instant client 關聯的工具通?!斑h離”任何數據庫服務器,因此必須將 oracle net 連接標識符與用戶名和口令一起使用。對于已建立的 oracle 數據庫,連接信息有可能是眾所周知的。對于新系統,此信息由 oracle 安裝程序在安裝數據庫時提供。此安裝程序應配置了 oracle net 和創建了一個服務名稱。

        在新數據庫中,可能需要將演示模式(如 hr 用戶)解除鎖定并向其提供口令。也可通過在 sql*plus 中以 system 用戶身份連接并執行以下語句來完成此操作:

      alter user 用戶名 identified by 新口令 account unlock;

        將連接信息傳遞給 php 有多種方法。第一個示例使用 oracle 10g的 easy connect 語法連接到 在 mymachine 上運行的 mydb 數據庫服務中的 hr 模式。不需要 tnsnames.ora 或其他 oracle network 文件:

        $c = ocilogon('hr', 'hr_password', '//mymachine.mydomain/mydb');

        有關 easy connect 的語法,請參見 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 環境變量設置為 /home(在啟動 apache 之前),則連接字符串可以為:

      $c = ocilogon('hr', 'hr_password', 'mydb');

        如果環境變量 local(在 windows 上)或 two_task (在 linux 上)設置為 mydb,則可以使用以下代碼生成與 mydb 連接:

      $c = ocilogon('hr', 'hr_password');
        使用 oracle

        當基本連接可以使用時,試著運行一個簡單的腳本 testoci.php。根據您的數據庫修改該連接的詳細信息并在瀏覽器中加載它。此示例列出了用戶 hr 擁有的所有表:

      $conn = ocilogon("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 "
      /n";
       }
      ocilogoff($conn);
       ?>
        故障診斷

        oracle php 故障診斷常見問題解答包含有關連接 oracle 的有用信息。

        可以從 instant client 頁面下載 oracle 的 sql*plus 命令行工具來幫助解決環境問題和連接問題。另請參見 sql*plus instant client 版本說明。

       檢查 sql*plus 使用的環境是否與 phpinfo.php 顯示的環境相同。

        windows 幫助

      如果 phpinfo.php 腳本沒有生成顯示“oci8 support enabled”的“oci8”部分,則確認在 php.ini 中沒有將“extension=php_oci8.dll”設為注釋。

        如果 path 設置錯誤,或找不到 oracle 庫,則啟動 apache 將顯示警告:“在指定的路徑中找不到動態鏈接庫 oci.dll?!眕hpinfo() 頁面的 environment 部分將顯示 path 的值以及 php 實際使用的 oracle 變量。

        如果 php.ini 的 extension_dir 指令不正確,則在啟動 apache 將顯示警告:“php 啟動:無法加載動態庫 php_oci8.dll?!?/span>

        linux 幫助

        仔細檢查是否正確修復了 config.m4。如果“configure”失敗,則檢查 config.log 文件。還原 config.m4,刪除緩存文件,運行 ./buildconf --force and configure,驗證問題是否與所做的更改相關。

        確?!癱onfigure”上的時間戳是當前的。刪除所有緩存文件,并在必要時重建它。

        在啟動 apache 的 shell 中設置所有必要的 oracle 環境變量。

        結論

        希望本文對您能有所幫助。您可以在 otn instant client 或 php 論壇上發表問題和建議。

    8. 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
    9. 發表評論 共有條評論
      用戶名: 密碼:
      驗證碼: 匿名發表
      主站蜘蛛池模板: 芒康县| 太康县| 潜山县| 凯里市| 惠东县| 冷水江市| 什邡市| 阜城县| 天峻县| 鄂托克前旗| 青海省| 连城县| 班玛县| 横峰县| 永胜县| 即墨市| 平远县| 磴口县| 高唐县| 巴楚县| 安顺市| 岳西县| 夏邑县| 天峨县| 翼城县| 易门县| 花垣县| 即墨市| 宣武区| 鱼台县| 平泉县| 册亨县| 凌源市| 凭祥市| 时尚| 无为县| 长岭县| 镇坪县| 平乡县| 台州市| 郧西县|