Laravel 和 oracle 的连接

Posted

技术标签:

【中文标题】Laravel 和 oracle 的连接【英文标题】:Laravel and oracle connection 【发布时间】:2016-02-04 18:10:46 【问题描述】:

我正在尝试配置 laravel 以使用 oracle 数据库,我正在尝试使用 Yajra 进行连接,但每次尝试运行我的应用程序时都会出现此错误。

Oci8.php 第 449 行中的 FatalThrowableError:致命错误:调用 未定义函数 Yajra\Pdo\oci_connect()

如果有人能帮我解决这个问题,我将非常感激......

【问题讨论】:

【参考方案1】:

因为你的php不支持oci8!

如果您使用 Windows:

从here下载instantclient-basic-windows 创建文件夹

cd E:/wamp64/bin
mkdir oracle

将下载的 Instantclient 包移动到 /oracle

mv instantclient-* E:/wamp64/bin/oracle
unzip instantclient-basic-windows.x64-12.1.0.2.0.zip

instantclient_xx 添加到您的Path 并编辑php.ini

取消注释

extension=php_oci8_12c.dll
extension=php_odbc.dll

重启你的 wamp 你会看到oci8

<?
  phpinfo().

如果您使用 Linux

从here下载instantclient-basic-linuxinstantclient-sdk-linux,并解压到一个目录中。

mkdir /opt/oracle
mv instantclient-* /opt/oracle
unzip instantclient-basic-linux-x86-64-11.2.0.2.0
unzip instantclient-sdk-linux-x86-64-11.2.0.2.0

mv instantclient_11_2 instantclient
cd /opt
chown -R root:www-data /opt/oracle
echo /opt/oracle/instantclient > /etc/ld.so.conf.d/oracle-instantclient
ldconfig


cd /opt/oracle/instantclient
ln -s libclntsh.so.* libclntsh.so
ln -s libocci.so.* libocci.so

你需要输入'instantclient,/opt/oracle/instantclient'

pecl install oci8

完成后检查你是否在/usr/lib/php/20151012这样的目录中有pci8.so

cd /etc/php/7.0/mods-available/
vi oci.ini // extension=oci8.so
cd /etc/php/7.0/fpm/conf.d/
ln -s /etc/php/7.0/mods-available/oci.ini 20-oci.ini

附加路径

vi /etc/environment
# append
export LD_LIBRARY_PATH="/opt/oracle/instantclient"
export TNS_ADMIN="/opt/oracle/instantclient"
export ORACLE_BASE="/opt/oracle/instantclient"
export ORACLE_HOME=$ORACLE_BASE 

终于

service php7.0-fpm restart

【讨论】:

以上是关于Laravel 和 oracle 的连接的主要内容,如果未能解决你的问题,请参考以下文章

Larave中CSRF攻击

我想自学laraver,请诸位前辈给一些建议,谢谢

larave学习笔记1-安装配置

Laravel 和 oracle 的连接

laravel-admin 安装

laraver框架学习------工厂模型填充测试数据