我正在尝试设置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密切相关,但我将其视为一个单独的问题,因为我遇到的问题不仅限于命令行。
答案 0 :(得分:3)
好的,这已经花了很长时间才能找到底层,但结果很简单:出于某种原因,在FuelPHP 1.4中,舞台环境的配置目录被称为staging
(在之前的版本中)版本为stage
)。
我不知道这是否是一个目录命名错误,或者这是否是一个新名称和FuelPHP中的某些地方尚未更新使用它,但我发现将目录的名称更改为'stage'修复了问题
答案 1 :(得分:0)
使用FuelPHP的石油实用程序运行单元测试时遇到了同样的问题。如果您遇到此问题,则很可能是配置问题。
要进行调试,代码中某处不起作用,请按以下方式查看FuelPHP尝试使用的环境:
<?php
echo "env: " . Fuel::$env;
exit;
就我而言,它表明它正在尝试使用“测试”环境。由于我的app配置文件夹中没有'test'文件夹,因此失败了。
在大多数版本的FuelPHP中,您的.htaccess文件中的Fuel :: $ env设置将适用于所有版本的FuelPHP。但是在旧版本中,您可能会遇到此问题。
您可以编辑bootstrap.php文件并手动设置FuelPHP环境,也可以设置它尝试使用的环境。
答案 2 :(得分:0)
对于那些没有工作的人来说,确保两件事
/fuel/app/config/development/db.php
。检查环境为@Chad Hutchins提到并仔细检查用户名和密码是否正确/var/mysql/mysql.sock
存在。在我的情况下,我使用/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
所以我需要创建一个符号链接。 Followed the instructions here 希望能帮到某人
答案 3 :(得分:-1)
Apache Web服务器:SetEnv FUEL_ENV开发希望这有助于某人