Laravel 使用 Oracle 数据库
由于 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,需要自己安装。
php版本 >=8.0
$ pecl install oci8
php版本 >=7.0
$ pecl install oci8-2.2.0
注意了PHP7.0的一定不要使用 oci8-3.0.0
我这里提示未找到包,解决方式:可以进入 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 协议》,转载必须注明作者和本文链接
可以使用模型关联吗
安装不上oci8 扩展是怎么回事啊?