PHP操作Oracle踩的坑

PHP操作Oracle踩的坑

项目使用的是Laravel,操作oracle的库使用yajra/laravel-oci8。在环境配通之后,操作oracle就像操作mysql一样,所以难点还是环境。

要想操作Oracle需要两样东西:oracle-instantclient11.2-basic和php-oci8,前者是oracle的客户端,后者是php扩展。可以操作oracle的php扩展有两种:pdo-oci和oci8,只不过pdo-oci已多年不更新。

下面是在oracle和oci8已配好后,出现的坑。

1. 连接不上Oracle时,没有出现报错信息

这是laravel-oci8包的问题,在连接oracle时,把报错信息屏蔽了,调试时把屏蔽关了就行。

1592338-20190426101611958-1273117885.png

2. ORA-24408: could not generate unique server group name

需要在本地的hosts中,添加一条 127.0.0.1 本机名 的解析。

1592338-20190426101631816-574103913.png

3. oci_connect fails OCIEnvNlsCreate()

网上看到这个问题的解决方案很多,而我在连接时报的错的详细信息是没有找到ORACLE_HOME和LD_LIBRARY_PATH这俩环境变量。其实是有的,我用服务器的root用户,能看到这俩变量。但是nginx使用的是nobody用户,所以这个问题的原因nobody用户没有这俩变量,设置之后问题就解决了。

转载于:https://www.cnblogs.com/biangbiangmian/p/10772732.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值