Ruby on Rails是一个服务器端Web应用程序框架。它维护了一组策划组件和“约定优于配置”的理念,使得我们可以快速开发应用程序而无需大量样板。本指南将向您展示如何使用Phusion Passenger在您的Linode上部署Rails应用程序。Passenger允许您直接在Apache应用程序中嵌入Rails应用程序,而无需担心FastCGI或复杂的Web服务器代理。
- 熟悉我们的入门指南并完成设置Linode主机名和时区的步骤。
- 本指南将尽可能使用
sudo
。完成“ 保护您的服务器 ”部分以创建标准用户帐户,加强SSH访问并删除不必要的网络服务。 - 更新您的系统:
sudo apt-get update && sudo apt-get upgrade
- 安装Apache及其依赖项:
sudo apt-get install apache2 apache2-doc apache2-utils
- 复制默认站点配置文件:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
- 禁用默认站点:
sudo a2dissite 000-default.conf
Ruby将与Ruby Version Manager(RVM)一起安装,这使得在同一系统上轻松安装和管理不同版本的Ruby。
- 安装mpapis GPG密钥:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
如果这不起作用,则默认情况下您的系统可能尚未安装dirmngr。安装它以纠正错误:
sudo apt install dirmngr
- 运行官方RVM安装脚本:
curl -sSL https://get.rvm.io | bash -s stable --ruby
- 安装过程将输出必须在使用RVM之前运行的命令:
source /home/username/.rvm/scripts/rvm
- 检查
rvm
的要求:
rvm requirements - 安装Ruby的一个版本并将其设置为系统的默认版本:
rvm install ruby rvm --default use ruby
如果您的项目需要不同版本的ruby,请明确安装该版本:
rvm install ruby-2.5.0 rvm --default use ruby-2.5.0
- 安装Passenger和其他所需的包:
sudo apt-get install build-essential libapache2-mod-passenger ruby ruby-dev libruby zlib1g-dev libsqlite3-dev
- Rails需要在您的系统上运行JavaScript运行时才能运行。如果您还没有安装,请使用Node.js:
sudo curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash - sudo apt install nodejs
- 使用Rubygems包管理器安装Rails:
gem install rails --version=5.1.4
- 将您的Rails应用程序移动到您的Linode,或者如果您还没有应用程序,则创建一个新应用程序。替换
example-app
为描述性名称:
rails new example-app
- 检查Passenger用于访问Ruby的路径:
sudo passenger-config about ruby-command
注意确保Passenger报告您使用RVM安装的Ruby版本。通常RVM使用类似的路径
~/.rvm/wrappers/ruby-X.X.X/ruby
。 - /etc/apache2/sites-available/example.com.conf在文本编辑器中打开并按如下方式编辑它。将路径替换为您的Rails应用程序,Ruby解释器的路径(来自上一步),主机名或IP地址以及必要时的任何其他信息。
<VirtualHost *:80>
ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /home/username/example-app/public
RailsEnv development
PassengerRuby /path-to-ruby
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/home/username/example-app/public">
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
3.激活Rails站点:
sudo a2ensite example.com.conf
4.重启Apache:
sudo systemctl restart apache2
5.在浏览器中导航到您的Linode的公共IP地址。您应该看到显示的默认Rails页面。
更多信息
有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。