【发布时间】:2019-03-29 17:05:58
【问题描述】:
我有一个 Ubuntu VM / Azure SQL DB 组合,其中有两组 PHP 文件。
1) 一些从 CRON 作业运行的脚本
2) Yii2 框架网站
两个环境都连接到 SQL Server 数据库。
我已经完成了编译 sqlsrv 的所有步骤并将其添加到 PHP 的扩展列表中。我的脚本在终端上运行良好,但在网站上出现错误:
找不到驱动程序
我的网络服务器是 nginx,它可以正常运行网站,但 PDO 无法连接到 SQL Server。
我只有一个 PHP 安装,但仍然使用代码来确定哪个是正确的 php.ini 文件,并且它具有正确的扩展指令。
phpinfo() 输出还在“Registered PHP Streams”部分显示 sqlsrv。
我的 UFW 防火墙处于非活动状态,并且我没有 SUSELinux。然而,端口 22 和 80 是开放的。甚至尝试启用它。
我不确定还可以尝试什么。救命!
编辑
我创建了一个简单的测试文件。当我通过终端运行它时,它可以工作,但是当我通过浏览器运行它时,它不会。
编辑 2
我安装的是 Apache2 而不是 nginx,现在一切正常。
【问题讨论】:
-
您能否仔细检查一下您的 DSN 字符串在 cron 作业脚本和 Web 应用程序中是否完全相同? DSN 是 PDO 构造函数的第一个参数:php.net/manual/en/…。你的 Yii 配置中可能有这个:yiiframework.com/doc/guide/2.0/en/…
-
@IanDrake 我将 DSN 字符串从我的脚本文件复制粘贴到 Yii 框架,以及一个空白的 test.php 文件。
标签: php sql-server ubuntu nginx pdo