由於 Laravel 原生不支援 Oracle,專案又需要使用 Oracle,所以需要使用元件來滿足。laravel-oci8 是一款專為 Laravel 開發的支援 Oracle 資料庫的元件,安裝這個元件需要依賴 php-oci8 擴充套件,這裡記錄一下安裝和配置的過程。我使用的 Mac,下面基於 MacOS 來安裝,PHP 版本是7.2。
安裝 oci8 擴充套件
1、先安裝 Oracle 的客戶端 Instantclient,下載地址:傳送門
2、選擇對應的版本,然後下載以下檔案:
instantclient-basic-macos.x64-12.2.0.1.0-2.zip
instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip
instantclient-sdk-macos.x64-12.2.0.1.0-2.zip
3、將三個包解壓到同一目錄下
$ sudo unzip instantclient-basic-macos.x64-12.2.0.1.0-2.zip -d /usr/local/
$ sudo unzip instantclient-sdk-macos.x64-12.2.0.1.0-2.zip -d /usr/local/
$ sudo unzip instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip -d /usr/local/
上面的命令會解壓到/usr/local/instantclient_12_2
4、建立軟連結:
$ sudo ln -s /usr/local/instantclient/12.2.0.1.0/sdk/include/*.h /usr/local/include/
$ sudo ln -s /usr/local/instantclient/12.2.0.1.0/sqlplus /usr/local/bin/
$ sudo ln -s /usr/local/instantclient/12.2.0.1.0/*.dylib /usr/local/lib/
$ sudo ln -s /usr/local/instantclient/12.2.0.1.0/*.dylib.12.1 /usr/local/lib/
$ sudo ln -s /usr/local/lib/libclntsh.dylib.12.1 /usr/local/lib/libclntsh.dylib
5、安裝擴充套件
直接使用 pecl
安裝即可,Mac 預設沒有 pecl,需要自己安裝。
$ pecl install oci8
我這裡提示未找到包,解決方式:可以進入 oci8 的網站 http://pecl.php.net/package/oci8。
然後將包的名稱替換為複製的連結即可
$ pecl install http://pecl.php.net/get/oci8-2.2.0.tgz
在安裝過程中,需要我們輸入 oracle home 的位置,直接填寫 instantclient,/usr/local/instantclient_12_2
即可,等待完成安裝。
如果安裝沒有出現錯誤就表明安裝成功了,重啟 php-fpm 使擴充套件生效。
安裝和使用 laravel-oci8
安裝
$ composer require yajra/laravel-oci8
然後在config/database.php中新增資料庫配置
'connections' => [
'oracle' => [
'driver' => 'oracle',
'host' => '',
'port' => '1521',
'database' => '',
'service_name' => '',
'username' => '',
'password' => '',
'charset' => '',
'prefix' => '',
],
...
...
]
正確填寫完配置就可以使用 oracle 了。
$res = DB::connection('oracle')->table('user')->limit(10)->get();
END!
本作品採用《CC 協議》,轉載必須註明作者和本文連結