如何在 CentOS 7 上安装和使用 Ruby on Rails 与 PostgreSQL
在此页
- 第 1 步 - 安装 RVM
- 第 2 步 - 安装 Ruby
- 第 3 步 - 安装 Nodejs
- 第 4 步 - 配置 Gem
- 第 5 步 - 安装 Ruby on Rails 5(稳定版)
- 第 6 步 - 为 Rails 开发设置 PostgreSQL 数据库
- 第 7 步 - 使用 Rails 和 PostgreSQL 创建第一个应用程序
- 链接
Ruby on Rails (RoR),简称“rails”,是一个用 ruby 编写的遵循 MVC(模型-视图-控制器)概念的服务器端 Web 应用程序框架。 RoR 是根据 OpenSource MIT 许可证发布的。 Rails 为数据库、Web 服务和网页提供默认结构。 Rails 应用广泛,至今已有超过 3000 人为 Rails 项目贡献代码,基于 Rails 的应用程序很多,如 Github、Airbnb、Soundcloud 等。
在本教程中,我将向您展示如何在 CentOS 7 上安装 Rails。我们将使用 PostgreSQL 数据库安装和配置 Ruby on Rails,然后使用 Rails 创建我们的第一个项目。
先决条件
- 装有 CentOS 7 操作系统的服务器
- 根权限
第 1 步 - 安装 RVM
RVM 或 Ruby 版本管理器是一种基于 Bash 和 Ruby 的命令行工具,用于管理 Ruby 安装。 RVM 允许您在同一台服务器上同时安装和配置多个 ruby 版本,以允许您使用多个 ruby 环境。
确保您的系统上安装了 curl 命令。
yum install curl
在此步骤中,我们将安装稳定的 RVM 版本。在开始安装 RVM 之前,我们需要下载存储库密钥并使用 gpg 命令导入它。
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
然后安装 RVM。
curl -sSL https://get.rvm.io | bash -s stable --ruby
该命令将首先安装所需的包(包依赖项),然后下载最新的稳定 RVM 版本并进行安装。
现在我们可以通过执行以下命令开始使用 RVM:
source /usr/local/rvm/scripts/rvm
第 2 步 - 安装红宝石
当前的 Ruby 稳定版本是 2.3.1。我们将使用 \rvm\ 命令安装它,然后将其设置为您系统的默认 ruby 版本。
将 RVM 更新到最新的稳定版本,然后安装 Ruby 2.3.1。
rvm get stable --autolibs=enable
rvm install ruby-2.3.1
接下来,将 Ruby 2.3.1 设置为系统默认的 Ruby 版本。
rvm --default use ruby-2.3.1
使用以下命令检查 Ruby 版本以确保上述步骤成功:
ruby -v
第 3 步 - 安装 Node.js
Rails 需要一个 JavaScript 运行时来编译 Rails 资产管道。对于 Ubuntu Linux 上的 Rails 开发,最好安装 Nodejs 作为 Javascript 运行时。
从 nodesource 存储库安装 nodejs:
curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
yum -y install nodejs
检查节点和 npm 是否已成功安装在系统上。
node -v
npm -v
第 4 步 - 配置 Gem
RubyGems 是 Ruby 包管理器。它提供了 gem 命令行工具,并在您在系统上安装 Ruby 时自动安装。
更新 gem 版本并检查它:
gem update --system
gem -v
这是可选的:您可以通过将以下行添加到 .gemrc 文件来禁用在每个 gem 安装上安装文档。我会在这里这样做,因为它可以节省硬盘空间,而且我更喜欢阅读 Internet 上的文档。
echo "gem: --no-document" >> ~/.gemrc
第 5 步 - 安装 Ruby on Rails 5(稳定版)
使用下面的 gem 命令安装 Ruby on Rails 5:
gem install rails -v 5.0.0
安装成功后,查看rails版本:
rails -v
你应该看到这样的结果:
Rails 5.0.0
Rails 5.0 安装在带有 Ruby 2.3.1 的 CentOS 7 上。
第 6 步 - 为 Rails 开发设置 PostgreSQL 数据库
在这一步中,我们将为 Rails 开发准备 PostgreSQL。 Ruby on Rails 支持许多数据库,例如 MySQL、SQLite(默认)和 PostgreSQL。我将使用 PostgreSQL 作为本指南的数据库。
使用这个 yum 命令安装 PostgreSQL:
yum -y install postgresql-server postgresql-devel postgresql-contrib
现在我们必须使用 initdb 命令初始化数据库服务器。
postgresql-setup initdb
默认情况下,CentOS 服务器上的 PostgreSQL 不允许基于密码的身份验证。我们需要为 RoR 安装编辑 PostgreSQL 配置,以允许使用密码登录。
使用 vim 编辑 pg_hba.conf:
vim /var/lib/pgsql/data/pg_hba.conf
将身份验证方法更改为 md5。
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
保存文件,然后启动“postgresql”服务。
systemctl start postgresql
Postgresql 在端口为 5432 的本地主机 IP 地址上运行,您可以使用以下命令检查:
netstat -plntu
systemctl status postgresql
安装完成后,使用 su 成为 shell 上的 postgres 用户,然后访问 postgresql shell (psql)。
su - postgres
psql
使用以下命令为 postgres 用户设置新密码:
\password postgres
Enter new password:
接下来,使用以下命令为 rails 开发创建一个名为 rails-dev 的新角色:
create role rails_dev with createdb login password 'aqwe123';
检查新角色,您将看到创建了新角色:
\du
用于 Rails 开发的 PostgreSQL 数据库和用户已经创建。
第 7 步 - 使用 Rails 和 PostgreSQL 创建第一个应用程序
我们可以使用 rails 命令轻松创建我们的第一个应用程序。
使用 PostgreSQL 作为默认数据库创建一个新应用程序。
rails new myapp -d postgresql
此命令将创建一个新目录 myapp 并安装一个新的 gem,其中包括 rails 连接到 PostgreSQL 数据库所需的 \pg\ gem。
进入newapp目录,编辑config目录下的database.yml文件。
cd myapp/
vim config/database.yml
在开发部分,取消注释第 32 行并设置我们在步骤 6 中创建的角色。
username: rails_dev
在第 35 行设置 rails_dev 用户密码。
password: aqwe123
取消注释数据库主机配置的第 40 和 44 行。
host: localhost
port: 5432
现在,转到测试部分并在下面添加新配置:
database: myapp_test
host: localhost
port: 5432
username: rails_dev
password: aqwe123
保存文件并退出编辑器。
接下来,使用 rails 命令生成数据库:
rails db:setup
rails db:migrate
然后使用以下命令启动 rails 服务器:
rails s -b 192.168.33.10 -p 8080
打开您的网络浏览器并访问端口 8080 上的服务器 IP 地址 - 192.168.33.10:8080。
回到你的终端。创建一个新的脚手架来与 PostgreSQL 数据库交互。
输入以下命令:
rails g scaffold Post title:string body:text
rake db:migrate
再次运行 rails 服务器。
rails s -b 192.168.33.10 -p 8080
访问服务器:192.168.33.10:8080/posts
您将看到使用 PostgreSQL 使用 Ruby on Rails 编写的简单 CRUD 界面。
链接
- <李> <李>
- https://www.postgresql.org/docs/