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

在Heroku部署带MSSQL数据库的Laravel应用提示缺失驱动如何解决

解决方案:为Heroku PHP环境启用MSSQL驱动

报错核心原因是Heroku默认的PHP运行环境未预装SQL Server的PDO驱动pdo_sqlsrv,和你本地遇到的问题本质完全一致,只需按以下步骤配置即可解决:

步骤1:修改composer.json声明扩展依赖

在项目根目录的composer.json文件中找到require字段,添加两个SQL Server扩展的依赖声明,原有其他依赖保持不变即可:

{
    "require": {
        "php": "^8.1",
        "ext-pdo_sqlsrv": "*",
        "ext-sqlsrv": "*",
        // 此处保留你项目原有的其他依赖
    }
}

*代表适配当前PHP版本的最新扩展版本,无需指定具体版本号,Heroku会自动匹配对应版本的预编译扩展。

步骤2:确认数据库连接参数配置

检查Heroku后台的应用配置变量(Config Vars),确保已经正确配置以下数据库参数,和你本地.env的配置逻辑保持一致:

  • DB_CONNECTION=sqlsrv
  • DB_HOST:Heroku MSSQL插件提供的主机地址
  • DB_PORT:MSSQL默认端口1433
  • DB_DATABASE:数据库实例名
  • DB_USERNAME:数据库用户名
  • DB_PASSWORD:数据库密码
  • 如果你使用Laravel 9及以上版本,同时确认config/database.php文件中sqlsrv连接的配置字段和上述变量完全对应,没有字段名拼写错误。

步骤3:提交修改并重新部署应用

修改完成后执行以下命令提交配置变更并推送到Heroku:

git add composer.json composer.lock
git commit -m "Add MSSQL PDO driver dependencies"
git push heroku main

推送部署过程中Heroku会自动检测composer.json中的扩展声明,自动下载安装对应版本的pdo_sqlsrv和sqlsrv扩展,无需手动操作服务器。
补充说明:如果本地开发环境没有安装sqlsrv扩展,执行composer install或composer update时会报平台依赖错误,可添加--ignore-platform-reqs参数跳过本地检查,不会影响Heroku端的扩展安装。

步骤4:验证驱动加载状态

部署完成后可以通过Heroku CLI进入应用容器,执行以下命令验证驱动是否正常加载:

heroku run php -m | grep sqlsrv

如果返回pdo_sqlsrv和sqlsrv两个条目,说明驱动已经成功安装,此时再访问应用即可正常连接MSSQL数据库。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:36:01