让Laravel工匠与localhost一起玩游戏

时间:2014-05-26 20:45:25

标签: php laravel vagrant

当我进入我当地的流浪汉机器时,我可以执行所有工匠命令。除了它之外,任何需要数据库访问的命令(例如工匠迁移)都会提供Access denied for user 'root'@'localhost'。如果可能,我怎样才能使用工匠而无需登录流浪汉机器?

我还想做例如Artisian::call('migrate'),例如在测试期间。但这会产生同样的错误。

1 个答案:

答案 0 :(得分:1)

access denied错误的原因是mysql默认情况下限制对本地计算机的数据库的访问。可以像here所描述的那样打开远程连接,但对于生产环境来说这不是一个好主意。

更好的方法是为所需的命令添加别名here

为了在代码中调用artisan等,Laravel有一种在远程服务器上运行命令的内置方式。首先将连接信息添加到app / config / remote.php文件中。对于流浪汉,它应该看起来像这样:

'connections' => array(

    'production' => array(
        'host'      => 'localhost',
        'username'  => 'vagrant',
        'password'  => 'vagrant',
        'key'       => '',
        'keyphrase' => '',
        'root'      => '/vagrant',
    ),

),

然后像这样执行artisan migrate:

SSH::run(array('cd /vagrant', 'php artisan migrate'));

你也可以做更高级的事情。这是documentation