我有一个安装了rvm的服务器。我有一些Rails应用程序在服务器上运行,这些应用程序的ruby版本是2.6.5。我想在这个服务器上部署一些新的Rails应用程序。关键是这些新应用程序的ruby版本是3.1.2。我可以在我的服务器上安装ruby版本3.1.2,但我的问题是:在一台服务器上运行一些带有一个ruby版本的Rails应用程序和一些带有不同ruby版本的Rails应用程序是可能的吗?我知道在一个ruby版本上运行不同的Rails版本是可能的,但是我不确定是否可以在一台服务器上同时运行两个不同的ruby版本和相关的应用程序。
2条答案
按热度按时间wbgh16ku1#
是的,我使用RVM(系统范围)来运行多个使用不同Ruby和Rails版本的Rails应用程序。
应用程序设置
创建宝石集:
$ rvm use 2.7.2-rg316@arsgh --create
创建. ruby版本文件:
$ echo 2.7.2-rg316 > .ruby-version
创建.ruby-gemset文件:
$ echo arsgh_rls5 > .ruby-gemset
将Rails版本安装到gemset:
$ gem install rails -v 5.2.6.3
创建新的Rails应用程序:
$ rails new arsgh --database=mysql
将.ruby-version和.ruby-gemset文件复制到应用程序根目录。
Apache的httpd.conf文件并使用Phusion Passenger
确保指向宝石:
PassengerRuby /usr/local/rvm/gems/ruby-2.7.2-rg316@arsgh/wrappers/ruby
m4pnthwp2#
在
bin/rails
中,我们有这样的注解:它声明了将使用哪个ruby可执行文件。所以你可以在这里指向不同的ruby版本。
bin
文件夹中的一些其他文件可以像这样修改。但是我建议使用Docker来避免维护这样的环境的问题,有一些很好的例子,比如one。