- 參考文章 Oracle 官方安裝 oci8 的教程刽辙,內(nèi)容很詳細(xì)
- rpm 安裝參考 Oracle官網(wǎng)文章 或者 中文文章
前言
注意以下幾點(diǎn)(給初次使用 Linux 的小白):
- Linux 有多個(gè)發(fā)行本,版本不同,所使用的命令也不同俄讹。如 Debian/Ubuntu ,Fedora等
- 由于 Debain/Ubuntu 不支持使用 rpm 安裝 rpm 包疙挺,所以需要采用其他方式安裝硅蹦。參考文章
- php需要已經(jīng)編譯安裝翅帜,源碼編譯后會(huì)有phpize[1]恋拍,直接在命令窗口安裝的 php 一般沒(méi)有編譯(區(qū)別:已編譯的 php 有 bin 目錄)。
- 網(wǎng)上教程基本上是采用 rpm 安裝的形式來(lái)安裝 Oracle 客戶(hù)端藕甩,但是由于 Denian/Ubuntu 需要轉(zhuǎn)化安裝,于是本教程介紹另一種安裝方式周荐,直接采用解壓縮 zip 方式安裝 Oracle 客戶(hù)端狭莱。
- 本教程是確定你已經(jīng)編譯配置好了 apache 和 php 的情境下進(jìn)行的
- 在配置過(guò)程中,特別是 Terminal 中運(yùn)行命令時(shí)概作,如果報(bào)錯(cuò)請(qǐng)立即解決腋妙,不要執(zhí)行往后步驟。
安裝配置oracle客戶(hù)端
-
下載兩個(gè)安裝 Oracle 客戶(hù)端所必備的 zip 安裝包 (或者是rpm包)讯榕,
- zip包:
instantclient-basic-linux.x64-12.2.0.1.0.zip
和instantclient-sdk-linux.x64-12.2.0.1.0.zip
- rpm 包則下載:
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
和oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
- 版本可以自選骤素,但要匹配。
- zip包:
解壓兩個(gè)壓縮包到自定義目錄下(本文安裝路徑為
/stmpm/software/instantclient_12_2
)配置環(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
- 生效環(huán)境變量配置:
$ source ~/.profile
//查看環(huán)境變量送浊,檢驗(yàn)配置是否正確
$ echo $PATH
- 解壓安裝方式需要建立軟連接,不然無(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 組件包
- 解壓到自定義目錄奈籽,本文
/stmpm/software/oci8-2.0.12
- 進(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]
- 執(zhí)行 phpize,如果 phpize 不是全局的狼忱,直接通過(guò) phpize 絕對(duì)路徑運(yùn)行膨疏。如 phpize 所在目錄為 /usr/php/bin 下,命令可以為 /usr/php/bin/phpize
- 執(zhí)行后钻弄,會(huì)在
oci 目錄
[3] 中生成一些文件和目錄佃却,使用其中的 configure 可執(zhí)行文件進(jìn)行配置 - 編譯 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é)果
- 在確認(rèn)配置無(wú)誤的情況下灶泵,重啟 Apache
- 檢驗(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)步芯义。