【发布时间】:2012-08-04 19:37:52
【问题描述】:
我确信这是我忽略的简单事情,但这让我有点发疯。我在运行 LAMP 的 Ubuntu 机器上。我在这台机器上运行了几个站点,使用 Php/MySql 毫不费力。我最近开始使用 Yii 框架建立一个站点,但我不认为这是一个 Yii 问题。也许是的。总之……
我的其他站点使用 mysqli,所以 Yii 的 PDO 要求对我来说是新的。我在 PDO 上做了一个快速的 -i|grep,它在安装/启用时返回,所以不用担心。我安装了框架,创建了一个快速测试站点和数据库。但是,当我尝试通过该站点连接到数据库时,我收到一条错误消息,告诉我 PDO 失败。具体来说,打开流失败。因此,即使安装了 PDO,它也没有找到 PDO。 Yii 站点与其他站点位于同一 web 文件夹中,因此不会存在路径问题。
从 Yii 的角度来看,如果这就是问题所在……我能够为 Gii 中的各种数据库表创建控制器,但是当我尝试为这些表生成 CRUD 时出现同样的无法打开流错误.
记录一下,是的,MySql 是在 Yii main.php 文件中启用的。是的,连接字符串是正确的。如果 PDO 列为已启用,为什么它无法打开,我有点不知所措。
【问题讨论】:
-
你打开连接的代码是什么? (显然混淆了敏感信息)
-
您是否使用 phpInfo 检查过以确保服务器实际上正在使用 PDO?特别是mysql版本?
-
有效问题。事实证明我不知道。在这一点上有点令人困惑。 PDO 在 CLI 中显示为已启用,这就是为什么当我执行 php -i|grep PDO 时它显示为已启用的原因。但是,它没有显示在 php(info) 上。当然,CLI 和 Web 服务器运行到不同的 .ini 文件。但是...当我比较两个 .ini 文件时,它们完全相同,涉及 PDO 的字符。这对我来说毫无意义。
-
框架中包含一个小应用程序,用于检查以确保满足所有要求(我认为它被称为要求)。这说明了什么?
-
localhost/yii/requirements PDO MySQL 扩展通过了吗?