You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP PDO连接Oracle数据库报错:could not find driver求助

解决PHP PDO连接Oracle报could not find driver的问题

1. 确认PHP配置文件路径

先通过phpinfo()查看Loaded Configuration File的具体路径,确保你修改的是Apache服务实际使用的php.ini文件,而非CLI版本的配置文件。

2. 安装Oracle Instant Client依赖

Ubuntu环境下必须先配置Oracle Instant Client,PHP的OCI扩展才能正常工作:

  • 下载与远程Oracle数据库版本匹配的Instant Client基础包和SDK包(例如19c版本),解压到指定目录:
    sudo mkdir -p /usr/lib/oracle/19/client64
    sudo unzip instantclient-basic-linux.x64-19.22.0.0.0.zip -d /usr/lib/oracle/19/client64/
    sudo unzip instantclient-sdk-linux.x64-19.22.0.0.0.zip -d /usr/lib/oracle/19/client64/
    sudo ln -s /usr/lib/oracle/19/client64/instantclient_19_22 /usr/lib/oracle/19/client64/lib
    
  • 设置环境变量,让Apache能识别Oracle库文件:
    编辑/etc/apache2/envvars,添加以下内容:
    export LD_LIBRARY_PATH=/usr/lib/oracle/19/client64/lib:$LD_LIBRARY_PATH
    
  • 安装系统编译依赖:
    sudo apt update && sudo apt install php8.1-dev build-essential libaio1
    

3. 安装PHP OCI8和PDO_OCI扩展

安装OCI8扩展

sudo pecl install oci8-3.2.1

安装过程中会提示输入Instant Client路径,输入:instantclient,/usr/lib/oracle/19/client64/lib

安装PDO_OCI扩展

PHP8.1无官方预编译的PDO_OCI包,需手动编译:

cd /tmp
git clone https://github.com/php/php-src.git
cd php-src/ext/pdo_oci/
phpize
./configure --with-pdo-oci=instantclient,/usr/lib/oracle/19/client64/lib,19.22
make && sudo make install

4. 启用扩展并重启Apache

  • 编辑Apache对应的php.ini文件,替换你之前的oci相关配置为:
    extension=oci8.so
    extension=pdo_oci.so
    
  • 重启Apache服务:
    sudo systemctl restart apache2
    

5. 验证扩展加载状态

再次访问phpinfo()页面,搜索oci8和pdo_oci,若出现对应板块则说明扩展加载成功,此时重新测试你的connect.php即可。

注意:如果远程Oracle数据库是12c版本,需下载对应版本的Instant Client,并同步调整路径和版本号参数。

内容的提问来源于stack exchange,提问作者webapp471

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 02:20:24