Laravel 4.1到Heroku:SQLSTATE[HY000][2002]没有这样的文件或目录


Laravel 4.1 to Heroku: SQLSTATE[HY000] [2002] No such file or directory

我按照这篇文章在Heroku中部署了我的Laravel 4.1应用程序http://phpartisan.tumblr.com/post/71580870739/running-laravel-4-on-heroku

静态HTML主页加载良好,但当我试图登录时,我收到错误

SQLSTATE[HY000] [2002] No such file or directory 

我的本地设置是Laravel 4.1&MySQL。

我认为在部署时没有创建数据库。

我需要手动操作吗?然后我的设置是什么?

谢谢!

问题可能是您的环境可能仍然指向本地。在cli中,键入heroku run php artisan env进行查找。

否则,您可能需要运行php artisan migrate --env=production以将其设置为正确的生产环境。

然后你可能会遇到另一个类似的问题:

PHP致命错误:在第1154行调用/var/www/mysite/vvendor/Symfony/Console/Symfony/Component/Console/Application.PHP中未定义的函数Symfony''Component''Console''mb_convert_variables()

相信我,tt和本文所说的mb_string模块无关。Laravel:调用未定义的函数Symfony''Component''Consoles''mb_convert_variables()?

问题出在环境方面。

首先,确保您拥有与composer.json位于同一目录级别的.env.php文件,并且该文件存在于您的heroku实例中。由于你不能在里面FTP,你需要推到回购。但laravel告诉你这是git忽略的,所以你需要暂时允许它推送到你的heroku回购。

接下来,您需要编辑bootstrap''start.php

将$env=$app->detectEnvironment(function(){})替换为:

$env = $app->detectEnvironment(function() { return file_exists(dirname(__FILE__) . '/../.env.php') ? 'production' : 'local'; }); 完成所有这些操作后,重新运行migrate命令,它就会正常工作。

您可以点击此链接以供参考。Laravel环境配置未加载,迁移失败-SQLSTATE[HY000][2002]没有这样的文件或目录