PHP无法识别oci8扩展:Composer安装yajra/laravel-oci8失败求助
解决Laravel 5.7安装yajra/laravel-oci8时的ext-oci8扩展缺失问题
环境信息
- PHP 7.4
- Windows 10
- Laravel 5.7
报错详情
执行
composer install时触发依赖错误:
问题1
- 根目录composer.json要求yajra/laravel-oci8 5.7.* -> 可由yajra/laravel-oci8[v5.7.0,...,5.7.x-dev]满足。
- yajra/laravel-oci8[v5.7.0,...,5.7.x-dev]要求ext-oci8 >=2.0.0 -> 系统中缺少该扩展,请安装或启用PHP的oci8扩展。
针对Windows环境的修复步骤(适配常规教程无效场景)
匹配下载OCI8扩展与Oracle客户端
- 确认你的PHP是线程安全(TS)还是非线程安全(NTS),以及架构(x86/x64),下载对应版本的oci8扩展文件(文件名通常为
php_oci8_19.dll或php_oci8_12c.dll)。 - 下载Oracle Instant Client基础包和SDK包(推荐19c版本,适配PHP7.4),将两者解压到同一目录,比如
C:\oracle\instantclient。
- 确认你的PHP是线程安全(TS)还是非线程安全(NTS),以及架构(x86/x64),下载对应版本的oci8扩展文件(文件名通常为
配置系统环境
- 将Instant Client路径添加到系统
PATH环境变量,确保优先级高于其他可能的Oracle路径。 - 添加系统环境变量
ORACLE_HOME,值设为Instant Client的解压路径。
- 将Instant Client路径添加到系统
启用PHP扩展
- 将下载的oci8扩展文件放入PHP安装目录下的
ext文件夹。 - 编辑
php.ini,添加或修改一行:extension=php_oci8_19.dll(文件名需与你下载的一致)。 - 确认
extension_dir配置正确,例如extension_dir = "C:\php\ext"(替换为你的PHP ext目录路径)。
- 将下载的oci8扩展文件放入PHP安装目录下的
验证扩展加载状态
- 关闭所有已打开的命令行窗口,重新打开后执行
php -m,检查输出中是否包含oci8。 - 若使用Web服务器,重启服务器后通过
phpinfo()页面确认oci8扩展已加载。
- 关闭所有已打开的命令行窗口,重新打开后执行
重新执行Composer安装
- 在新的命令行窗口中进入项目根目录,执行
composer install。
- 在新的命令行窗口中进入项目根目录,执行
内容的提问来源于stack exchange,提问作者Gabriel Felipe
相关产品推荐
相关产品推荐

