介绍
Ruby on Rails,或Rails,为创建网站和编写在编程语言 Ruby的Web应用程序提供了一个框架,使用Ruby和Rails可以快速构建和部署可扩展的应用程序。
本教程将引导您通过使用DigitalOcean Droplet使用Ruby on Rails预先安装使用DigitalOcean Ruby on Rails 1-Click App进行旋转。创建Droplet后,您将了解一些使用案例和常见命令。由于此1-Click Droplet基于标准Ubuntu 20.04 Droplet,您可以在完成本指南后阅读更多我们的Ruby教程(https://andsky.com/tags/ruby-on-rails?subtype=tutorial)。
1 点击部署
Ruby on Rails 1-Click在Ubuntu 20.04 Droplet上预安装了以下软件包:
Package | Version |
---|---|
Ruby | 27.2 |
Rails | 6.0.3.4 |
Puma | 5.0.2 |
Postgres | 12.4 |
Nginx | 1.17.10 |
Node.js | 12.19.0 |
Certbot | 0.40.0 |
除了包安装之外,这个 1-Click 还处理:
- 启用 UFW 防火墙,仅允许 SSH (端口
22
), HTTP (端口80
) 和 HTTPS (端口442
) 访问。 - 创建一个 'rails' 系统用户部署应用程序,以及一个 'rails' 数据库用户连接到 PostgreSQL。
- 配置 Ruby 使用已安装的软件并将所有珠宝和流程本地安装到您的 'rails' 用户。
截至本文,这些包正在 Ubuntu 20.04 服务器上运行,以及 Ruby on Rails 版本 7.0.4.2。
前提条件
要在您的浏览器上运行 Ruby on Rails 1-Click,您需要一个域名,您可以使用 DNS quickstart guide来学习如何使用 DigitalOcean DNS 设置一个域名。
步骤 1 — 创建 Ruby on Rails 滴。
要创建 Ruby on Rails 1-Click Droplet,首先在我们的市场应用程序列表(https://marketplace.digitalocean.com/category/all)中找到它,然后选择 Ruby on Rails应用程序。
要开始创建您的Droplet,请按下 Create Ruby on Rails Droplet按钮:
如果您尚未登录到您的 DigitalOcean 帐户,您将需要登录才能继续。
接下来,您将被带到创建滴滴
页面,在这里您可以在创建 Ruby on Rails 滴滴之前定制服务器设置。我们关于如何创建你的第一个滴滴
的文档(https://docs.digitalocean.com/products/droplets/how-to/create/)详细描述了您需要做出的所有选择,但下面的部分讨论了要考虑的关键设置。
选择一个图像
您的图像将已设置为 Marketplace 选中 Ruby on Rails。如果没有设置,请切换到 Marketplace 选中,并在关键字搜索框中搜索 Ruby on Rails。
** Ubuntu 20.04 上的 Ruby on Rails 7.0.4.2 已选中. 如果尚未选中,请使用搜索框搜索 ** Ruby on Rails**。
一旦 Ruby on Rails 图像正确选择,您可以根据您的使用情况接受默认值或调整设置。
选择数据中心区域
为了避免潜在的延迟,建议您选择最接近用户库的数据中心区域。在某些地区,我们有多个数据中心。
选择一个计划
请记住,你可以根据你的需求(https://docs.digitalocean.com/products/droplets/how-to/resize/)调整你的Droplet大小。 要运行Ruby on Rails的Droplet,建议至少拥有1GB的RAM。
选择身份验证方法
选择身份验证方法时,建议使用 SSH 密钥 选项,而不是您的 Droplet 的 ** 密码**。
选择其他选项
将改进的指标监控和警报添加到您的 Droplet 可以帮助您跟踪您的 Droplet 资源的使用时间。您可能还想考虑 启用自动备份。
选择一个主机
给您的 Droplet 一个识别名称,您将记住,例如Ruby on Rails Droplet 1
或在您将使用的应用程序后命名它。
完成所有选项后,请按下控制面板屏幕底部的创建 Droplet
按钮。
此 IP 地址对于连接到您的 Droplet 以及您未来的任何配置都很重要. 当您浏览 IP 地址时,您可以将其复制到您的剪辑板。
通过 1-Click Marketplace 创建的 Droplets 还附有额外的资源,您可以通过点击 Get Start 链接访问:
这将打开一个新的面板,您可以获取特定于您选择的 1-Click 的额外信息。这包括概述、进一步的步骤来开始使用您的 Droplet,以及来自我们的社区网站的相关教程的链接。还有有用的链接来获取支持和找到更多 Ruby on Rails 资源。您也可以通过查看官方的 Ruby on Rails 文档来获得支持。
接下来,您将使用您之前设置的 SSH 身份验证方法通过终端访问 Ruby on Rails Droplet。
步骤 2 — 通过 SSH 访问 Droplet 以启用配置
一旦你已经在Ruby on Rails Droplet上插入,你需要连接到你的Droplet通过SSH(https://docs.digitalocean.com/products/droplets/how-to/connect-with-ssh/)。这意味着你将从命令行连接到服务器. 如果你以前没有使用过SSH或Putty等终端程序,请参阅如何使用SSH连接你的Droplet。 当你准备好时,打开计算机上的终端,并通过SSH登录你的Droplet作为 root,以以下命令代替你的Droplet的IP地址:
1ssh root@your_server_ip
在您登录后,下面的当天信息(MOTD)将显示,包含有关安装在此应用程序上的软件的信息,以及在 1 Click 部署 部分中列出的其他已为您配置的功能:
1Thank you for using DigitalOcean's Rails Application.
2
3The "ufw" firewall is enabled. All ports except for 22, 80, and 443 are BLOCKED.
4
5Let's Encrypt has been pre-installed for you. If you have a domain name, and
6you will be using it with this 1-Click app, please see: https://do.co/2GOFe5J
7
8You can use the following SFTP credentials to upload your files (using FileZilla/WinSCP/Rsync):
9 * Host: 24.199.120.116
10 * User: rails
11 * Pass: cd083867dfdb40970449c422797378c1
12If you provided an ssh-key when creating this Droplet, the key should be used for SFTP as well
13
14You can use the following Postgres database credentials:
15 * User: rails
16 * Pass: a0d8c213e0d797342b1450e4e880180f
17
18Ruby has been configured to use vendored bundles. Please use the 'rails' user to
19interact with the default project via "su - rails"
20
21Passwords have been saved in /root/.digitalocean.passwords
22
23Nginx is configured to forward requests for rails to a local unix socket
24 Public IP: http://24.199.120.116
25 Access Logs: /var/log/nginx/access.log
26 Error Logs: /var/log/nginx/error.log
27
28Rails using the Puma server is managed via 'systemd'.
29 Proccess management: systemctl {start|stop|restart} rails.service
30 systemd Unit file: /etc/systemd/system/rails.service
31
32Ruby information:
33 All Gems and processes have been installed locally to the 'rails' user. Please
34 'su - rails' to use this environment.
35
36You can learn more about using this image here: https://do.co/2GTOVjB
37
38-------------------------------------------------------------------------------------
39To delete this message of the day: rm -rf /etc/update-motd.d/99-one-click
还有几点要从这个消息中注意:
- 您的系统和数据库用户密码的凭证将可用. 此信息也将存储在以下目录中
/root/.digitalocean.passwords
. - 您的 SFTP凭证,如果您希望使用软件如 FileZilla, WinSCP,或rsync 加载文件 * 关于 Rails 如何使用 Puma 的信息,由 `systemd' 管理,以启动,停止,重新启动或检查 Puma 的状态。
步骤 3 — 在您的浏览器中检查Ruby on Rails
您可以通过导航到您的 IP 地址或域信息来检查 Ruby on Rails 是否工作:
1http://your_IP_or_domain
请记住,您不需要执行任何额外的约束性步骤,例如‘rails server --binding=your_IP_or_domain’,因为通过1点击安装过程来处理此问题。
如果成功,您将在您的浏览器中收到以下页面:
如果您收到错误,您可能想要检查您是否已根据前提设置正确的域名,此外,您还可能想要检查该服务是否活跃。
步骤 4 — 检查您的 Ruby on Rails 服务是活跃的
您可以通过 Puma 以多种方式管理 Ruby on Rails 服务,例如,您可以使用以下命令检查服务状态:
1systemctl status rails.service
1● rails.service - ExampleApp
2 Loaded: loaded (/etc/systemd/system/rails.service; enabled; vendor preset:>
3 Active: active (running) since Tue 2023-01-31 18:29:55 UTC; 37min ago
4 Main PID: 2172 (ruby)
5 Tasks: 13 (limit: 1116)
6 Memory: 143.6M
7 CPU: 3.518s
8 CGroup: /system.slice/rails.service
9 └─2172 "puma 5.6.5 (tcp://0.0.0.0:3000) [example]" "" "" "" "" ""
此输出显示该服务目前处于运行
状态. 现在,您已经验证 Ruby on Rails 正在成功运行,接下来,您可以使用 Ruby 编写一个基本程序。
要开始服务,运行:
1systemctl start rails.service
要停止服务,运行:
1systemctl stop rails.service
要重新启动服务,运行:
1systemctl restart rails.service
结论
您的 Ruby on Rails 1-Click Droplet 现在已经准备好了,但是,您可能需要根据项目的需求使用各种功能. 以下是一些教程列表,以探索您预安装的 Ruby on Rails Droplet 软件可以实现的所有可能性:
- 要开始构建Ruby on Rails应用程序,您可以学习如何开始使用我们的教程(https://andsky.com/tech/tutorials/how-to-build-a-ruby-on-rails-application-on-ubuntu-22-04)。
- 要了解更多关于Rails生态系统的信息,您可以通过项目文档阅读。
- 要创建一个具有React等框架的强大前端项目,您可以查看我们的教程(How To Set Up a Ruby on Rails Project with a React Frontend)(https://andsky.com/tech/tutorials/how-to-set-up-a-ruby-on-rails-v7-project-with-a-react-frontend-on-ubuntu-20-04).
- 要了解其他数据库选项,如SQLite,请阅读我们的教程(How To Use Postgre with Your Ruby on Rails Application)(https://andsky.com/tech/tutorials/how-to-use-postgresql-with-your-ruby-on-rails-application-on-ubuntu-20-04) 要将嵌入资源添加到您的项目,请查看我们的教程(How To Create Nest
了解有关 Ruby 和 Ruby on Rails 的更多信息,请查看 我们的教程系列。