首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉勒维尔fortrabbit特使

拉勒维尔fortrabbit特使
EN

Stack Overflow用户
提问于 2014-04-23 11:29:12
回答 2查看 886关注 0票数 2

我已经在Fortrabbit服务器上安装了一个Laravel应用程序。我可以做以下工作

代码语言:javascript
复制
$ ssh user@server
$ cd htdocs
$ php artisan migrate

效果很好。

但我正试着用特使来完成这样的任务。所以我做了一个简单的任务:

代码语言:javascript
复制
@servers(['test' => 'user@server'])

@task('task:test', ['on' => 'test'])
    cd htdocs
    php artisan migrate
@endtask

然而,当我这样做时,我会遇到以下问题:

代码语言:javascript
复制
$ envoy run task:test

[user@server]: \(><)/ Welcome to the rabbit hole. \(><)/
[user@server]: [PDOException] SQLSTATE[HY000] [2002] No such file or directory

值得注意的是,db连接使用Fortrabbit接口中设置的ENV变量的凭据。如果我将SSH放入服务器并执行env,那么所有变量都会按应有的方式列出。但在做的时候

代码语言:javascript
复制
$ ssh user@server env

我只得到一小部分Fortrabbit服务器ENV变量。

我不知道错误的原因是什么,在询问谷歌的时候,我也找不到任何东西。有人能把这件事弄清楚吗?非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-24 09:38:19

正如@ukautz所说,会话脚本不是由使节执行的,这就是为什么缺少一些环境变量的原因。

我所做的是:

代码语言:javascript
复制
@servers(['dev'=>"<<user@server>>"])
@task('list')
    . /etc/profile.envvars
    env
@endtask

它显示了所有ENV变量,包括您在仪表板上设置的那些变量!

您的脚本应该使用以下内容:

代码语言:javascript
复制
@servers(['test' => 'user@server'])
@task('task:test', ['on' => 'test'])
    . /etc/profile.envvars
    cd htdocs
    php artisan migrate
@endtask
票数 1
EN

Stack Overflow用户

发布于 2014-04-23 12:07:13

我建议检查一下你的环境污染是否如预期的那样有效。

代码语言:javascript
复制
$ php artisan env

如果不是,您可以强制执行手工命令的环境,如:

代码语言:javascript
复制
$ php artisan migrate --env=test_server
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23242937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档