如何在CentOS 7上使用PostgreSQL安装和使用Ruby on Rails

Ruby on Rails(RoR)或简称“rails”是一种服务器端的Web应用程序框架,用Ruby编写,遵循MVC(Model-View-Controller)概念。 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的命令行工具来管理红Gem安装。 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

在CentOS 7上安装RVM

第2步 - 安装Ruby

目前的稳定版本的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

使用RVM安装Ruby

第3步 - 安装Nodejs

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

检查NodeJS版本

第4步 - 配置Gem

RubyGems是Ruby包管理器。 它提供了gem命令行工具,并在系统上安装Ruby时自动安装。

更新Gem版本并检查:

gem update --system
gem -v

这是可选的:您可以通过将下面的行添加到.gemrc文件来禁用在每个gem安装上安装文档。 我会在这里做,因为它可以节省硬盘空间,我更喜欢阅读互联网上的文档。

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版本

Rails 5.0安装在使用Ruby 2.3.1的CentOS 7上。

第6步 - 设置PostgreSQL数据库进行Rails开发

在这一步中,我们将准备PostgreSQL进行rails开发。 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在localhost ip地址上运行,端口为5432,您可以使用以下命令检查:

netstat -plntu
systemctl status postgresql

在CentOS上安装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 Development的PostgreSQL数据库和用户。

为RoR开发创建一个数据库

第7步 - 使用Rails和PostgreSQL创建第一个应用程序

我们可以使用rails命令轻松创建我们的第一个应用程序。

使用PostgreSQL创建一个新的应用程序作为默认数据库。

rails new myapp -d postgresql

该命令将创建一个新的目录'myapp'并安装一个新的gem,包括rails所需的“pg”gem,以连接到PostgreSQL数据库。

转到'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

在CentOS 7上创建一个Rails项目

打开您的Web浏览器,并访问端口8080 - 192.168.33.10:8080上的服务器IP地址

Ruby on Rails安装在CentOS上

回到你的终端 创建一个新的脚手架与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

您将看到一个简单的CRUD接口,用Ruby on Rails和PostgreSQL编写。

Ruby on Rails脚手架

链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏