Linux 下開(kāi)啟 PHP 的 Oracle 擴(kuò)展

前言

注意以下幾點(diǎn)(給初次使用 Linux 的小白):

  1. Linux 有多個(gè)發(fā)行本,版本不同,所使用的命令也不同俄讹。如 Debian/Ubuntu ,Fedora等
  2. 由于 Debain/Ubuntu 不支持使用 rpm 安裝 rpm 包疙挺,所以需要采用其他方式安裝硅蹦。參考文章
  3. php需要已經(jīng)編譯安裝翅帜,源碼編譯后會(huì)有phpize[1]恋拍,直接在命令窗口安裝的 php 一般沒(méi)有編譯(區(qū)別:已編譯的 php 有 bin 目錄)。
  4. 網(wǎng)上教程基本上是采用 rpm 安裝的形式來(lái)安裝 Oracle 客戶(hù)端藕甩,但是由于 Denian/Ubuntu 需要轉(zhuǎn)化安裝,于是本教程介紹另一種安裝方式周荐,直接采用解壓縮 zip 方式安裝 Oracle 客戶(hù)端狭莱。
  5. 本教程是確定你已經(jīng)編譯配置好了 apache 和 php 的情境下進(jìn)行的
  6. 在配置過(guò)程中,特別是 Terminal 中運(yùn)行命令時(shí)概作,如果報(bào)錯(cuò)請(qǐng)立即解決腋妙,不要執(zhí)行往后步驟。

安裝配置oracle客戶(hù)端

  1. 下載兩個(gè)安裝 Oracle 客戶(hù)端所必備的 zip 安裝包 (或者是rpm包)讯榕,

    • zip包:instantclient-basic-linux.x64-12.2.0.1.0.zipinstantclient-sdk-linux.x64-12.2.0.1.0.zip
    • rpm 包則下載:oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpmoracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
    • 版本可以自選骤素,但要匹配。
  2. 解壓兩個(gè)壓縮包到自定義目錄下(本文安裝路徑為/stmpm/software/instantclient_12_2

  3. 配置環(huán)境變量,我修改的是 ~[2]/.profile 文件愚屁。如何配置济竹,請(qǐng)看

// 命令 vim ~/.profile (注意沒(méi)有改文件可以自行創(chuàng)建,也可以創(chuàng)建修改/.bashrc)
// 設(shè)置環(huán)境變量的方式霎槐,下面代碼寫(xiě)在 ~/.profile 文件中
export ORACLE_HOME=/stmpm/software/instantclient_12_2
export LD_LIBRARY_PATH=/stmpm/software/instantclient_12_2
export PATH=$ORACLE_HOME:$LD_LIBRARY_PATH:$PATH
  1. 生效環(huán)境變量配置:
$ source ~/.profile
//查看環(huán)境變量送浊,檢驗(yàn)配置是否正確
$ echo $PATH  
  1. 解壓安裝方式需要建立軟連接,不然無(wú)法成功編譯oci8丘跌。進(jìn)入 Oracle 解壓目錄袭景,建立軟連接唁桩,命令ln -s libclntsh.so.12.1 libclntsh.so

注意 libclntsh.so.12.1 根據(jù)下載版本不同而不同。如在 Oracle11.* 的版本則為 libclntsh.so.11.1耸棒。而且該鏈接必須配置荒澡,否則在以下的 configure 配置步驟將會(huì)報(bào)錯(cuò)而導(dǎo)致配置失敗。

配置 oci8 擴(kuò)展

1. 下載 oci8 組件

下載地址与殃,本文下載的是oci8-2.0.12.tgz

注意:oci8 版本在 2.1.0 (包含) 以上只適用 php7.0单山。其他版本注意看下載官網(wǎng)的版本說(shuō)明

2. 解壓下載的 oci8 組件包

  1. 解壓到自定義目錄奈籽,本文 /stmpm/software/oci8-2.0.12
  2. 進(jìn)入該目錄cd /stmpm/software/oci8-2.0.12饥侵,以下稱(chēng)為 oci 目錄[3]

3. 編譯 oci8

注意,php源碼里面的 ext 目錄下會(huì)有 oci8 組件目錄衣屏,可以使用該目錄進(jìn)行編譯躏升,該目錄相當(dāng)于本文的 oci 目錄[3]

  1. 執(zhí)行 phpize,如果 phpize 不是全局的狼忱,直接通過(guò) phpize 絕對(duì)路徑運(yùn)行膨疏。如 phpize 所在目錄為 /usr/php/bin 下,命令可以為 /usr/php/bin/phpize
  2. 執(zhí)行后钻弄,會(huì)在 oci 目錄[3] 中生成一些文件和目錄佃却,使用其中的 configure 可執(zhí)行文件進(jìn)行配置
  3. 編譯 make,若成功則執(zhí)行 make install 安裝窘俺,安裝成功后會(huì)在 php.ini 設(shè)置的 extension_dir 目錄中生成 oci8.so饲帅。如果沒(méi)有先指定 extension_dir,系統(tǒng)會(huì)根據(jù)特定規(guī)則生成目錄瘤泪。該目錄會(huì)在 Terminal 中顯示出來(lái)

4. 綜合步驟命令

$ phpize 
$ ./configure --with-php-config=/stmpm/lamp/php/bin/php-config  --with-oci8=shared,instantclient,/stmpm/software/instantclient_12_2
$ make
$ make install  

檢驗(yàn)結(jié)果

  1. 在確認(rèn)配置無(wú)誤的情況下灶泵,重啟 Apache
  2. 檢驗(yàn) oci 擴(kuò)展是否開(kāi)啟
    可以直接在apche所配置的web文件夾中新建一個(gè)phpinfo.php文件,輸入:
<?php
    echo phpinfo();
?>
  

在瀏覽器運(yùn)行查看对途,頁(yè)面中若有 oci8 標(biāo)識(shí)說(shuō) oci8 是 enable 的赦邻,且會(huì)羅列一些 oci8 的配置信息則證明開(kāi)啟成功。

結(jié)束語(yǔ)

最近需要在服務(wù)器(Linux環(huán)境下)開(kāi)啟php的oracle擴(kuò)展实檀,由于之前沒(méi)有在Linux環(huán)境下開(kāi)發(fā)的經(jīng)驗(yàn)惶洲,所以遇到很多困難,查了很多教程膳犹。網(wǎng)上教程也很多是類(lèi)似的恬吕,無(wú)法滿(mǎn)足我的需求。所以在綜合了許多教程后理出這篇教程(有點(diǎn)亂)须床,適合像我這樣剛剛接觸Linux開(kāi)發(fā)環(huán)境的同志們币呵。另外,本文不足之處希望能夠指出,大家相互學(xué)習(xí)余赢,相互進(jìn)步芯义。


  1. linux系統(tǒng)中,php安裝成功后妻柒,在bin目錄下會(huì)生成一個(gè)名叫phpize的可執(zhí)行腳本扛拨,這個(gè)腳本的用途是動(dòng)態(tài)安裝php擴(kuò)展模塊。 ?

  2. ~在 Linux系統(tǒng)中代表當(dāng)前用戶(hù)的主目錄举塔,例如用戶(hù)為user绑警,則 ~ 表示 /home/user 目錄。 ?

  3. 本文指下載的 oci8 組件解壓后所在的目錄央渣,即/stmpm/software/oci8-2.0.12 ? ? ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末计盒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子芽丹,更是在濱河造成了極大的恐慌北启,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拔第,死亡現(xiàn)場(chǎng)離奇詭異咕村,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蚊俺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)懈涛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人泳猬,你說(shuō)我怎么就攤上這事批钠。” “怎么了得封?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵埋心,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我呛每,道長(zhǎng),這世上最難降的妖魔是什么坡氯? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任晨横,我火速辦了婚禮,結(jié)果婚禮上箫柳,老公的妹妹穿的比我還像新娘手形。我一直安慰自己,他們只是感情好悯恍,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布库糠。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞬欧。 梳的紋絲不亂的頭發(fā)上贷屎,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音艘虎,去河邊找鬼唉侄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛野建,可吹牛的內(nèi)容都是我干的属划。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼候生,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼同眯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起唯鸭,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤须蜗,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后肿孵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體唠粥,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年停做,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晤愧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蛉腌,死狀恐怖官份,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烙丛,我是刑警寧澤舅巷,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站河咽,受9級(jí)特大地震影響钠右,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜忘蟹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一飒房、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧媚值,春花似錦狠毯、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春献酗,著一層夾襖步出監(jiān)牢的瞬間寝受,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工凌摄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留羡蛾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓锨亏,卻偏偏與公主長(zhǎng)得像痴怨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子器予,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容