【问题标题】:FuelPHP "invalid data source name" errorFuelPHP“无效的数据源名称”错误
【发布时间】:2012-12-21 17:23:35
【问题描述】:

我正在尝试设置 FuelPHP 应用程序,但遇到了一个令人费解的问题。每次应用程序尝试连接到数据库时,我都会收到以下错误:

Fuel\Core\Database_Exception [ Error ]: invalid data source name

我在 Apache 的 VirtalHost 配置中将 FUEL_ENV 设置为“stage”,fuel/app/config/staging/db.php 中的数据库凭据似乎是正确的:我可以使用相同的用户名和密码登录 PhpMyAdmin。我不知道还能尝试什么 - 任何建议都将不胜感激。

如果有帮助,我在运行 Ubuntu 12.04 LTS 的 Amazon EC2 实例上使用 FuelPHP 1.4,我已通过 apt-get 在该实例上安装了 MySQL 和 PHP。我有另一个应用程序(在另一个实例上)运行旧版本的 FuelPHP (1.2.1),运行没有问题。

顺便说一句,这个问题可能与this one 密切相关,但我将其作为一个单独的问题提出,因为我遇到的问题不仅限于命令行。

【问题讨论】:

  • 除了产生错误的代码之外,您给了我们一切。
  • 任何连接到 FuelPHP 中的数据库的尝试都会产生错误。我很确定这是配置问题,而不是代码问题,因为该应用在我的开发环境中运行良好。

标签: php mysql pdo fuelphp


【解决方案1】:

好的,这花了很长时间才弄清楚,但事实证明它很容易修复:出于某种原因,在 FuelPHP 1.4 中,舞台环境的配置目录称为staging(在以前的版本中它是stage)。

我不知道这是否是目录命名错误,或者这是否是一个新名称,并且 FuelPHP 中的某处尚未更新以使用它,但我发现将目录名称更改为“stage”修复了问题。

【讨论】:

    【解决方案2】:

    在使用 FuelPHP 的 oil 实用程序运行单元测试时,我遇到了同样的问题。如果您遇到此问题,则很可能是配置问题。

    要进行调试,请在代码中的某处不工作的地方放置类似以下内容,以查看 FuelPHP 尝试使用的环境:

    <?php
    
    echo "env: " . Fuel::$env; 
    exit;
    

    就我而言,它表明它正在尝试使用“测试”环境。由于我的应用程序的配置文件夹中没有“测试”文件夹,因此它失败了。

    在大多数版本的 FuelPHP 中,您在 .htaccess 文件中设置的 Fuel::$env 将适用于所有版本的 FuelPHP。但是在旧版本中,您可能会遇到此问题。

    您可以编辑 bootstrap.php 文件并手动设置您想要的 FuelPHP 环境,或者设置它尝试使用的环境。

    【讨论】:

    • 请记住,石油实用程序不会读取 .htaccess 文件,因为它不通过 Apache。您可以像这样指定石油使用的环境(在本例中为“阶段”):env FUEL_ENV=stage php oil console
    【解决方案3】:

    Apache Web 服务器:SetEnv FUEL_ENV DEVELOPMENT 希望这对某人有所帮助

    【讨论】:

    • 不,这会将环境设置为开发。我需要让它在舞台环境中运行。该应用在我的开发环境中运行良好。
    • 对不起 - 误读。所以设置 SetEnv FUEL_ENV 测试并确保测试是小写的
    • 我不认为test 环境有什么特别之处,是吗?无论如何,我正在尝试设置 stage - 抱歉,我看不出这有什么帮助。
    【解决方案4】:

    对于这些都不起作用的人,请确保两件事

    1. 有多个 db.php 文件/fuel/app/config/development/db.php。检查@Chad Hutchins 提到的环境并仔细检查用户名和密码是否正确
    2. 确保/var/mysql/mysql.sock 存在。就我而言,我使用的是/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock,所以我需要创建一个符号链接。 Followed the instructions here

    希望对某人有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-09
      相关资源
      最近更新 更多