Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么在安装目录之外时我没有找到passenger:command?_Ruby On Rails_Apache_Passenger - Fatal编程技术网

Ruby on rails 为什么在安装目录之外时我没有找到passenger:command?

Ruby on rails 为什么在安装目录之外时我没有找到passenger:command?,ruby-on-rails,apache,passenger,Ruby On Rails,Apache,Passenger,我刚刚用Ubuntu12LTS构建了一个RackSpace云服务器,并执行了“标准”RubyonRails安装。我创建了一个用户(bob)并将其添加到sudu组 然后我从root注销,并以bob身份登录。然后从/home/bob目录发出sudo su。然后,我安装了以root身份运行Rails应用程序所需的一切 然后,我在/home/bob中安装了Rails代码,当我发布以下命令时,乘客启动: RAILS_ENV=production passenger start -p 3000 但是,由于

我刚刚用Ubuntu12LTS构建了一个RackSpace云服务器,并执行了“标准”RubyonRails安装。我创建了一个用户(bob)并将其添加到sudu组

然后我从root注销,并以bob身份登录。然后从
/home/bob
目录发出
sudo su
。然后,我安装了以root身份运行Rails应用程序所需的一切

然后,我在
/home/bob
中安装了Rails代码,当我发布以下命令时,乘客启动:

RAILS_ENV=production passenger start -p 3000
但是,由于我想在此服务器上运行多个Rails应用程序,因此我创建了另一个目录
/home/bob/newapp
,并在那里安装了Rails代码。(理想情况下,我希望将所有不同的Rails应用程序放在它们自己的子目录下
/home/bob

当我从
/home/bob/newapp

RAILS_ENV=production passenger start -p 3000
我明白了

乘客:找不到命令

为什么乘客只能从
/home/bob
进入

新闻:刚刚发现,乘客在我完成
/config/database.yml
内容编辑之前是“可用”的,因此只要我不编辑
database.yml
文件,乘客就会启动。编辑完database.yml后,“乘客:未找到命令”出现。这有多奇怪

SNAP:看起来在我安装passenger时,它使用了Ruby-2.1.1,但是旧的应用程序需要Ruby-1.9.3-p194。我需要弄清楚如何让passenger使用ruby 1.9.3运行,或者安装passenger的第二个版本(?)

更多新闻: 谢谢你,红丽,谢谢你的回复。我按照您的链接/建议阅读乘客文档。我以前读过它,但没有意识到需要的信息。这次我发现了“神奇”命令:

事实证明,这是非常有帮助的,尽管我最终确实遵循了一个过程,该过程导致安装了两个不同版本的乘客。

阅读Phusion乘客手册的一节,了解什么是“未发现命令”错误,为什么会发生错误,以及您通常可以如何处理这些错误


在您的情况下,输入/home/bob会自动使RVM更改您的路径,以包含特定Ruby版本的bin目录。阅读《Phusion乘客手册》中的章节,了解如何处理这一问题。

红丽建议我阅读的文章肯定让我朝着正确的方向前进

使用:rvm exec'ruby version'ruby-S允许我启动passenger,前提是使用Rails应用程序所需的ruby版本安装了passenger版本

因此,如果我加载一个用ruby-1.9.3-p194构建的Rails应用程序,我将需要一个与ruby版本相同的passenger版本

如果我加载另一个用ruby-1.9.3-p286构建的Rails应用程序,我需要一个安装了该版本ruby的passenger版本

然后,可以使用带有适当ruby版本的rvm exec命令启动每个版本的passenger

也许有一个更优雅的解决方案,但上面的方法对我很有效

rvm-exec ruby-version ruby -S (eg: rvm-exec ruby-1.9.3-p194 ruby -S )