91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP安裝OCI8擴展

發布時間:2020-06-28 06:12:05 來源:網絡 閱讀:951 作者:zwh340411305 欄目:開發技術

一、前言

應項目開發需要,需要連接ORACLE數據庫,PHP環境并沒有安裝OCI8擴展,我們需要自己安裝一下。

PHP開發的項目大多數時候都是使用MYSQL,這是第一次使用PHP連接ORACLE,在安裝OCI8擴展的時候遇到了很多的坑和問題,借這篇文章記錄和分享下經驗。

網上也有很多相關的文章供大家參考,但是總感覺缺點什么,這篇文章就當做一個補充。

二、擴展安裝

準備工作
首先要了解自己的php版本 oracle版本,確保自己下載的資源適用于你的環境

我這里用的docker環境,php-fpm鏡像是從docker hub上拉取的

docker鏡像:php:7.2-fpm (PHP版本:7.2.17)

oracle版本:10.2.0.5.0 - 64bi

  1. 依賴軟件下載

下在oci8擴展(需要根據php版本下載)PECL :: Package :: oci8請添加鏈接描述 我這里用的是2.1.1

需要下載oracle client(根據oracle版本下載): Instant Client for Linux x86-64 (64-bit)請添加鏈接描述

我這里下載的版本是:basic-10.2.0.5.0-linux-x64.zip sdk-10.2.0.5.0-linux-x64.zip

  1. 開始安裝

3.1 安裝oracle client

把下載好的:basic-10.2.0.5.0-linux-x64.zip sdk-10.2.0.5.0-linux-x64.zip

解壓放到/usr/local/instantclient_10_2

basic-10.2.0.5.0-linux-x64.zip sdk-10.2.0.5.0-linux-x64.zip 這兩文件解壓后的目錄是相同的,解壓后會直接覆蓋,sdk-10.2.0.5.0-linux-x64.zip 其實里面只有個sdk目錄,和mv sdk目錄到/usr/local/instantclient102相同

這里我創建了兩個軟鏈:

ln -s libclntsh.so.10.1 libclntsh.so

ln -s /usr/local/instantclient_10_2 /usr/local/instantclient(第二個軟鏈可以忽略)

軟鏈也可以不創建,在后面位置使用文件的時候,路勁和文件指定沒問題就行

環境變量設置很重要!!!!!!!!!!!


臨時環境變量配置

設置環境變量:export LD_LIBRARY_PATH="/usr/local/instantclient_10_2"


永久環境變量設置

修改profile文件:

#vi /etc/profile

在里面加入:

export LD_LIBRARY_PATH="/usr/local/instantclient_10_2"

讓環境變量立即生效需要執行如下命令:

#source /etc/profile


docker里面,以上兩種設置方式都不生效!!!!!!!!

docker設置環境變量需要修改Dockerfile

ENV LD_LIBRARY_PATH="/usr/local/instantclient_10_2"

然后重新編譯鏡像

確認自己的環境變量是否設置成功,可以通過命令 export -p 查看環境變量,已經看到我的已經設置成功了
PHP安裝OCI8擴展

關于環境變量設置也可以參考此文章:Linux里設置環境變量的方法(export PATH)請添加鏈接描述

3.2 安裝oci8擴展

解壓下載好的:oci8-2.1.1.tgz

正常編譯安裝

cd oci8-2.1.1

phpize

./configure --with-oci8=shared,instantclient,/usr/local/instantclient_10_2 (編譯這步需要傳oracle client地址)

make && make install

到這里PHP如果沒報錯就安裝完成了,如果報錯可能是安裝的擴展版本不對

執行php -m命令確認擴展是否安裝成功,如下圖,這里已經安裝成功
PHP安裝OCI8擴展

3.3 生成基于oci8的php-fpm鏡像

我這里是基于鏡像安裝的擴展,直接提交了份新鏡像,然后重新通過docker run -e命令來設置的環境變量,這樣在鏡像啟動后環境變量也不會丟失。

下面是具體命令供參考:

docker commit -a "zhaowenhao" -m "安裝oci8擴展" 902e708645d7 zhaowenhao/php-fpm:oci8

docker run -p 9000:9000 -e LD_LIBRARY_PATH="/usr/local/instantclient_10_2" --name php-fpm-oci8 -d zhaowenhao/php-fpm:oci8

圖片僅供參考:
PHP安裝OCI8擴展

  1. 測試安裝是否成功

通過運行如下php命令來確認是否連接oracle成功,不拋異常錯誤,說明連接成功。

php -r "oci_connect('用戶名','密碼', 'IP地址/數據庫名稱');";

三、總結

此次安裝oci8擴展遇到的問題幾點

oracle client版本不對
oci8擴展版本不對
環境變量未設置(這個最重要!!!!)
不設置環境變量oci8擴展也能安裝成功,但是在啟動PHP的時候會報unable to load dynamic library oci8.so,如下圖是具體的報錯信息

PHP安裝OCI8擴展

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏南县| 宣城市| 黄陵县| 巧家县| 大宁县| 永修县| 闻喜县| 民丰县| 靖州| 甘洛县| 衡东县| 四子王旗| 墨玉县| 北票市| 金沙县| 阜平县| 平舆县| SHOW| 延寿县| 湘潭县| 仁怀市| 徐水县| 彩票| 原平市| 安平县| 阜新| 岳池县| 织金县| 萍乡市| 宁安市| 房产| 竹溪县| 上虞市| 高平市| 中江县| 仙桃市| 无锡市| 环江| 建湖县| 岳阳县| 科技|