【问题标题】:Can't find driver for sqlsrv when running a cron job运行 cron 作业时找不到 sqlsrv 的驱动程序
【发布时间】:2019-06-07 12:40:55
【问题描述】:

我在 RHEL 服务器上运行 Laravel 应用程序。数据库位于外部 SQL SERVER 上。 运行 Web 应用程序时,数据库连接没有问题。

运行 CRON 作业时,它调用

$ php artisan schedule:run

应用程序找不到 Sql server 的驱动程序。

Illuminate\Database\QueryException  : could not find driver
PHP Startup: Unable to load dynamic library 'sqlsrv.so

【问题讨论】:

    标签: php laravel pdo rhel sqlsrv


    【解决方案1】:

    这可能与您在网络服务器上的设置有关。您可以尝试在您的应用程序和命令行中运行phpinfo,看看是否有任何突出的差异。

    【讨论】:

    • 我检查了控制台中的 php -i 和应用程序中的 phpinfo() 。它们具有相同的版本、相同的 sqlsrv 扩展和相同的 php.ini 我还能检查什么?
    • 愚蠢的问题,但你确定驱动安装了吗?您可能想尝试通过系统重新安装它。如果驱动程序存在,那么它可能位于一个奇怪的地方(通过源代码安装,具有非默认位置)。无论如何 phpinfo 看起来很混乱,如果您在 phpinfo 中看到带有位置的 sqlsrv,请确保它确实存在于该位置。
    【解决方案2】:

    问题已解决:cron 作业执行使用的是不同版本的 PHP。与来自 Apache 的那个和来自 CLI 的那个都不同。 所以我只是使用了显式路径,引用了正确的 PHP 版本。

    我确定它应该使用 CLI 版本,但事实并非如此,我不知道为什么。可能是因为别名错误。

    【讨论】:

      猜你喜欢
      • 2017-09-15
      • 1970-01-01
      • 2022-05-18
      • 2021-04-17
      • 2014-03-04
      • 2018-03-02
      • 2022-10-08
      • 2016-09-11
      相关资源
      最近更新 更多