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

时间:2014-04-19 14:28:07

标签: php heroku laravel-4

我按照本文http://phpartisan.tumblr.com/post/71580870739/running-laravel-4-on-heroku

在Heroku中部署了我的Laravel 4.1应用程序

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

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

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

我不认为部署时会创建一个数据库。

我需要手动完成吗?那么我的设置将如何以及将会是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

您可能会遇到另一个问题:

  

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

相信我,tt与mb_string模块无关,就像这篇帖子所说的那样。 Laravel: Call to undefined function Symfony\Component\Console\mb_convert_variables()?

问题出在环境设定上。

首先,确保你使用composer.json在相同目录级别拥有.env.php文件,它存在于你的heroku实例中。既然你不能在里面FTP,你需要推送回购。但是laravel告诉你这是git被忽略了,所以你需要暂时允许它推送到你的heroku repo。

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

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

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

您可以点击此链接以供参考。 Laravel environment config not loading, migration fails - SQLSTATE[HY000] [2002] No such file or directory