Ruby on Rails (RoR), hay viết tắt là "rails", là một nền tảng ứng dụng web phía máy chủ được viết bằng ruby theo khái niệm MVC (Model-View-Controller). RoR được phát hành theo Giấy phép OpenSourceMIT.Rails cung cấp các cấu trúc mặc định cho cơ sở dữ liệu, dịch vụ web và các trang web. Rails được sử dụng rộng rãi, hơn 3000 người đã đóng góp mã cho dự án Rails cho đến nay và có nhiều ứng dụng dựa trên Rails, chẳng hạn như Github, Airbnb, Soundcloud, v.v.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Rails trên CentOS 7. Chúng ta sẽ cài đặt và cấu hình Ruby on Rails với cơ sở dữ liệu PostgreSQL, sau đó tạo dự án đầu tiên của mình bằng Rails.
Điều kiện tiên quyết
Đảm bảo lệnh curl được cài đặt trên hệ thống của bạn.
Trong bước này, chúng ta sẽ cài đặt phiên bản RVM ổn định. Chúng ta cần tải xuống khóa kho lưu trữ và nhập nó bằng lệnh gpg trước khi bắt đầu cài đặt RVM.
Sau đó cài đặt RVM.
Lệnh này sẽ cài đặt các gói cần thiết (các gói phụ thuộc) trước, sau đó tải xuống phiên bản RVM ổn định mới nhất và cài đặt.
Bây giờ chúng ta có thể bắt đầu sử dụng RVM bằng cách thực thi lệnh bên dưới:
Cập nhật RVM lên phiên bản ổn định mới nhất, sau đó cài đặt Ruby 2.3.1.
Tiếp theo, biến Ruby 2.3.1 thành phiên bản Ruby mặc định của hệ thống.
Kiểm tra phiên bản Ruby bằng lệnh bên dưới để đảm bảo các bước trên đã thành công:
Cài đặt nodejs từ kho lưu trữ nodesource:
Kiểm tra xem node và npm đã được cài đặt thành công trên hệ thống hay chưa.
Cập nhật phiên bản gem và kiểm tra:
Điều này là tùy chọn: bạn có thể vô hiệu hóa để cài đặt tài liệu trên mọi cài đặt gem bằng cách thêm dòng bên dưới vào tệp .gemrc. Tôi sẽ thực hiện ở đây vì nó tiết kiệm dung lượng ổ cứng và tôi thích đọc tài liệu trên internet hơn.
Khi quá trình cài đặt hoàn tất thành công, hãy kiểm tra phiên bản rails:
Bạn sẽ thấy kết quả như sau:
Rails 5.0 đã được cài đặt trên CentOS 7 với Ruby 2.3.1.
Cài đặt PostgreSQL bằng lệnh yum này:
Bây giờ chúng ta phải khởi tạo máy chủ cơ sở dữ liệu bằng lệnh initdb.
Theo mặc định, PostgreSQL trên máy chủ CentOS không cho phép xác thực dựa trên mật khẩu. Chúng ta cần chỉnh sửa cấu hình PostgreSQL cho cài đặt RoR để cho phép đăng nhập bằng mật khẩu.
Chỉnh sửa pg_hba.conf bằng vim:
Thay đổi phương thức xác thực thành md5.
Lưu tệp, sau đó khởi động dịch vụ "postgresql".
Postgresql đang chạy trên địa chỉ IP localhost với cổng 5432, bạn có thể kiểm tra bằng lệnh bên dưới:
Khi quá trình cài đặt hoàn tất, hãy trở thành người dùng postgres trên shell với su rồi truy cập shell postgresql (psql).
Đặt mật khẩu mới cho người dùng postgres bằng lệnh bên dưới:
Tiếp theo, tạo một vai trò mới có tên là 'rails-dev' cho quá trình phát triển rails bằng lệnh này:
Kiểm tra vai trò mới, bạn sẽ thấy vai trò mới đã được tạo:
Cơ sở dữ liệu PostgreSQL và người dùng cho quá trình phát triển Rails đã được tạo.
Tạo ứng dụng mới với PostgreSQL làm cơ sở dữ liệu mặc định.
Lệnh này sẽ tạo một thư mục mới 'myapp' và cài đặt một gem mới bao gồm gem "pg" mà rails yêu cầu để kết nối với cơ sở dữ liệu PostgreSQL.
Đi tới thư mục 'newapp' và chỉnh sửa tệp database.yml trong thư mục config.
Trong phần phát triển, bỏ chú thích dòng 32 và đặt vai trò chúng ta đã đã tạo ở bước 6.
Đặt mật khẩu người dùng rails_dev ở dòng 35.
Bỏ chú thích dòng 40 và 44 cho cấu hình máy chủ cơ sở dữ liệu.
Bây giờ, hãy đến phần kiểm tra và thêm cấu hình mới bên dưới:
Lưu tệp và thoát khỏi trình chỉnh sửa.
Tiếp theo, tạo cơ sở dữ liệu bằng lệnh rails:
Sau đó, khởi động máy chủ rails bằng lệnh bên dưới:
Mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ trên cổng 8080 - 192.168.33.10:8080.
Quay lại thiết bị đầu cuối của bạn. Tạo một scaffold mới để tương tác với cơ sở dữ liệu PostgreSQL.
Nhập lệnh bên dưới:
Chạy lại máy chủ rails.
Truy cập máy chủ: 192.168.33.10:8080/posts
Bạn sẽ thấy một giao diện CRUD đơn giản được viết bằng Ruby on Rails với PostgreSQL.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Rails trên CentOS 7. Chúng ta sẽ cài đặt và cấu hình Ruby on Rails với cơ sở dữ liệu PostgreSQL, sau đó tạo dự án đầu tiên của mình bằng Rails.
Điều kiện tiên quyết
- Máy chủ chạy hệ điều hành CentOS 7
- Quyền root
Bước 1 - Cài đặt RVM
RVM hay Ruby Version Manager là một công cụ dòng lệnh dựa trên Bash và Ruby để quản lý cài đặt aruby. RVM cho phép bạn cài đặt và cấu hình nhiều phiên bản ruby trên cùng một máy chủ cùng lúc để cho phép bạn làm việc với nhiều môi trường ruby.Đảm bảo lệnh curl được cài đặt trên hệ thống của bạn.
Mã:
yum install curl
Mã:
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
Mã:
curl -sSL https://get.rvm.io | bash -s stable --ruby
Bây giờ chúng ta có thể bắt đầu sử dụng RVM bằng cách thực thi lệnh bên dưới:
Mã:
source /usr/local/rvm/scripts/rvm

Bước 2 - Cài đặt Ruby
Phiên bản ổn định hiện tại của Ruby là 2.3.1. Chúng tôi sẽ cài đặt nó bằng lệnh "rvm" và sau đó biến nó thành phiên bản ruby mặc định cho hệ thống của bạn.Cập nhật RVM lên phiên bản ổn định mới nhất, sau đó cài đặt Ruby 2.3.1.
Mã:
rvm get stable --autolibs=enable
rvm install ruby-2.3.1
Mã:
rvm --default use ruby-2.3.1
Mã:
ruby -v

Bước 3 - Cài đặt Nodejs
Rails cần có thời gian chạy JavaScript để biên dịch đường ống tài sản Rails. Đối với phát triển Rails trên Ubuntu Linux, tốt nhất là cài đặt Nodejs làm thời gian chạy Javascript.Cài đặt nodejs từ kho lưu trữ nodesource:
Mã:
curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
yum -y install nodejs
Mã:
node -v
npm -v

Bước 4 - Cấu hình Gem
RubyGems là Trình quản lý gói Ruby. Nó cung cấp công cụ dòng lệnh gem và được tự động cài đặt khi bạn cài đặt Ruby trên hệ thống.Cập nhật phiên bản gem và kiểm tra:
Mã:
gem update --system
gem -v
Mã:
echo "gem: --no-document" >> ~/.gemrc
Bước 5 - Cài đặt Ruby on Rails 5 (Ổn định)
Cài đặt Ruby on Rails 5 bằng lệnh gem bên dưới:
Mã:
gem install rails -v 5.0.0
Mã:
rails -v
Mã:
Rails 5.0.0

Rails 5.0 đã được cài đặt trên CentOS 7 với Ruby 2.3.1.
Bước 6 - Thiết lập Cơ sở dữ liệu PostgreSQL cho Phát triển Rails
Trong bước này, chúng ta sẽ chuẩn bị PostgreSQL cho phát triển rails. Ruby on Rails hỗ trợ nhiều cơ sở dữ liệu như MySQL, SQLite (Mặc định) và PostgreSQL. Tôi sẽ sử dụng PostgreSQL làm cơ sở dữ liệu cho hướng dẫn này.Cài đặt PostgreSQL bằng lệnh yum này:
Mã:
yum -y install postgresql-server postgresql-devel postgresql-contrib
Mã:
postgresql-setup initdb
Chỉnh sửa pg_hba.conf bằng vim:
Mã:
vim /var/lib/pgsql/data/pg_hba.conf
Mã:
# Kết nối cục bộ IPv4:
host all all 127.0.0.1/32 md5
# Kết nối cục bộ IPv6:
host all all ::1/128 md5
Mã:
systemctl start postgresql
Mã:
netstat -plntu
systemctl status postgresql

Khi quá trình cài đặt hoàn tất, hãy trở thành người dùng postgres trên shell với su rồi truy cập shell postgresql (psql).
Mã:
su - postgres
psql
Mã:
\password postgres
Nhập mật khẩu mới:
Mã:
create role rails_dev with createdb login password 'aqwe123';
Mã:
\du

Bước 7 - Tạo ứng dụng đầu tiên với Rails và PostgreSQL
Chúng ta có thể dễ dàng tạo ứng dụng đầu tiên với lệnh rails.Tạo ứng dụng mới với PostgreSQL làm cơ sở dữ liệu mặc định.
Mã:
rails new myapp -d postgresql
Đi tới thư mục 'newapp' và chỉnh sửa tệp database.yml trong thư mục config.
Mã:
cd myapp/
vim config/database.yml
Mã:
username: rails_dev
Mã:
password: aqwe123
Mã:
host: localhost
port: 5432
Mã:
database: myapp_test
host: localhost
port: 5432
username: rails_dev
password: aqwe123
Tiếp theo, tạo cơ sở dữ liệu bằng lệnh rails:
Mã:
rails db:setup
rails db:migrate
Mã:
rails s -b 192.168.33.10 -p 8080

Mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ trên cổng 8080 - 192.168.33.10:8080.

Quay lại thiết bị đầu cuối của bạn. Tạo một scaffold mới để tương tác với cơ sở dữ liệu PostgreSQL.
Nhập lệnh bên dưới:
Mã:
rails g scaffold Tiêu đề bài đăng:string body:text
rake db:migrate
Mã:
rails s -b 192.168.33.10 -p 8080
Bạn sẽ thấy một giao diện CRUD đơn giản được viết bằng Ruby on Rails với PostgreSQL.
