Ruby on rails 为什么在安装目录之外时我没有找到passenger:command?
我刚刚用Ubuntu12LTS构建了一个RackSpace云服务器,并执行了“标准”RubyonRails安装。我创建了一个用户(bob)并将其添加到sudu组 然后我从root注销,并以bob身份登录。然后从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 但是,由于
/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 )