Cách sử dụng PostgreSQL với ứng dụng Ruby on Rails của bạn trên CentOS 7
Ruby on Rails sử dụng sqlite3 làm database mặc định của nó, nó hoạt động tốt trong nhiều trường hợp, nhưng có thể không đủ cho ứng dụng của bạn. Nếu ứng dụng của bạn yêu cầu khả năng mở rộng, tập trung và kiểm soát (hoặc bất kỳ tính năng nào khác) của database SQL client / server , chẳng hạn như PostgreSQL hoặc MySQL , bạn cần thực hiện một vài bước bổ sung để cài đặt và chạy nó.Hướng dẫn này sẽ chỉ cho bạn cách cài đặt môi trường Ruby on Rails phát triển cho phép các ứng dụng của bạn sử dụng database PostgreSQL, trên server CentOS 7 hoặc RHEL. Đầu tiên, ta sẽ giới thiệu cách cài đặt và cấu hình PostgreSQL. Sau đó, ta sẽ chỉ cho bạn cách tạo một ứng dụng rails sử dụng PostgreSQL làm server database của nó.
Yêu cầu
Hướng dẫn này yêu cầu phải có một môi trường phát triển Ruby on Rails đang hoạt động. Nếu bạn chưa có, bạn có thể làm theo hướng dẫn trong liên kết này: Cách cài đặt Ruby on Rails với rbenv trên CentOS 7 .
Bạn cũng cần phải có quyền truy cập vào account superuser, hoặc sudo
, để có thể cài đặt phần mềm database PostgreSQL.
Hướng dẫn này cũng giả định SELinux bị tắt.
Khi đã sẵn sàng , hãy cài đặt PostgreSQL.
Cài đặt PostgreSQL
Nếu bạn chưa cài đặt PostgreSQL, hãy làm điều đó ngay bây giờ.
Nếu bạn chưa làm như vậy, hãy thêm kho EPEL vào yum bằng lệnh sau:
- sudo yum install epel-release
Cài đặt server PostgreSQL và các thư viện phát triển của nó:
- sudo yum install postgresql-server postgresql-contrib postgresql-devel
PostgreSQL đã được cài đặt nhưng ta vẫn cần thực hiện một số cấu hình cơ bản.
Tạo một cụm database PostgreSQL mới:
- sudo postgresql-setup initdb
Theo mặc định, PostgreSQL không cho phép xác thực password . Ta sẽ thay đổi điều đó bằng cách chỉnh sửa cấu hình xác thực dựa trên server của nó.
Mở cấu hình HBA bằng editor yêu thích của bạn. Ta sẽ sử dụng vi:
- sudo vi /var/lib/pgsql/data/pg_hba.conf
Tìm các dòng trông giống như thế này, gần cuối file :
host all all 127.0.0.1/32 ident host all all ::1/128 ident
Sau đó, thay thế “danh tính” bằng “md5”, để chúng trông giống như sau:
host all all 127.0.0.1/32 md5 host all all ::1/128 md5
Lưu và thoát. PostgreSQL hiện đã được cấu hình để cho phép xác thực password .
Bây giờ hãy bắt đầu và kích hoạt PostgreSQL:
- sudo systemctl start postgresql
- sudo systemctl enable postgresql
PostgreSQL hiện đã được cài đặt nhưng bạn nên tạo một user database mới, ứng dụng Rails của bạn sẽ sử dụng.
Tạo user database
Đầu tiên, hãy thay đổi thành user hệ thống postgres
:
- sudo su - postgres
Tạo user superuser PostgreSQL bằng lệnh này (thay thế từ được đánh dấu bằng tên user của bạn ):
- createuser -s pguser
Để đặt password cho user database , hãy nhập console PostgreSQL bằng lệnh sau:
- psql
Control panel PostgreSQL được biểu thị bằng dấu nhắc postgres=#
. Tại dấu nhắc PostgreSQL, hãy nhập lệnh này để đặt password cho user database mà bạn đã tạo:
- \password pguser
Nhập password mong muốn của bạn tại dấu nhắc , và xác nhận nó.
Đến đây bạn có thể thoát khỏi console PostgreSQL bằng lệnh lệnh sau:
- \q
Bây giờ user PostgreSQL của bạn đã được cài đặt , hãy chuyển trở lại user bình thường của bạn:
- exit
Hãy tạo một ứng dụng Rails ngay bây giờ.
Tạo ứng dụng rail mới
Tạo một ứng dụng Rails mới trong folder chính của bạn. Sử dụng tùy chọn -d postgresql
để đặt PostgreSQL làm database và đảm bảo thay thế từ được đánh dấu bằng tên ứng dụng của bạn:
- cd ~
- rails new appname -d postgresql
Sau đó chuyển vào folder của ứng dụng:
- cd appname
Bước tiếp theo là cấu hình kết nối database của ứng dụng.
Cấu hình kết nối database
User PostgreSQL mà bạn đã tạo sẽ được sử dụng để tạo database thử nghiệm và phát triển ứng dụng của bạn. Ta cần cấu hình cài đặt database thích hợp cho ứng dụng của bạn.
Mở file cấu hình database của ứng dụng trong editor yêu thích của bạn. Ta sẽ sử dụng vi:
- vi config/database.yml
Trong phần default
, tìm dòng có nội dung “ group : 5” và thêm các dòng sau vào bên dưới. Nó sẽ trông giống như thế này (thay thế các phần được đánh dấu bằng user và password PostgreSQL của bạn):
host: localhost username: pguser password: pguser_password
Lưu và thoát.
Tạo database ứng dụng
Tạo database test
và development
ứng dụng của bạn bằng cách sử dụng lệnh rake này:
- rake db:create
Thao tác này sẽ tạo hai database trong server PostgreSQL của bạn. Ví dụ: nếu tên ứng dụng của bạn là “appname”, nó sẽ tạo database có tên “appname_development” và “appname_test”.
Nếu bạn gặp lỗi tại thời điểm này, hãy truy cập lại tiểu mục trước đó ( Cấu hình kết nối database ) đảm bảo rằng host
, username
và password
trong database.yml
là chính xác. Sau khi đảm bảo thông tin database là chính xác, hãy thử tạo lại database ứng dụng.
Cấu hình thử nghiệm
Cách dễ nhất để kiểm tra xem ứng dụng của bạn có thể sử dụng database PostgreSQL hay không là thử chạy nó.
Ví dụ: để chạy môi trường phát triển (mặc định), hãy sử dụng lệnh này:
- rails server
Thao tác này sẽ khởi động ứng dụng Rails của bạn trên server local của bạn trên cổng 3000.
Nếu ứng dụng Rails của bạn nằm trên một server từ xa và bạn muốn truy cập nó thông qua trình duyệt web, một cách dễ dàng là liên kết nó với địa chỉ IP công cộng của server của bạn. Đầu tiên, hãy tra cứu địa chỉ IP công cộng của server của bạn, sau đó sử dụng nó với lệnh rails server
như sau:
- rails server --binding=server_public_IP
Đến đây bạn sẽ có thể truy cập ứng dụng Rails của bạn trong trình duyệt web thông qua địa chỉ IP công cộng của server trên cổng 3000:
http://server_public_IP:3000
Nếu bạn thấy trang Ruby on Rails “Chào mừng bạn lên tàu”, ứng dụng của bạn đã được cấu hình đúng cách và được kết nối với database PostgreSQL.
Kết luận
Đến đây bạn đã sẵn sàng để bắt đầu phát triển ứng dụng Ruby on Rails của bạn , với PostgreSQL làm database , trên CentOS 7!
Chúc may mắn!
Các tin liên quan
Cách sử dụng PostgreSQL với ứng dụng Ruby on Rails của bạn trên Ubuntu 14.042015-03-18
Cách cài đặt và sử dụng PostgreSQL trên Ubuntu 14.04
2014-04-28
Cách cài đặt và sử dụng Zope 2 và PostgreSQL trên Ubuntu 13.10
2014-03-25
Cách mở rộng quy mô theo chiều ngang một ứng dụng Laravel 4 với database PostgreSQL
2014-02-27
Mở rộng quy mô Ruby on Rails: Thiết lập một server PostgreSQL chuyên dụng (Phần 3)
2014-02-27
Cách thiết lập bản sao Master Slave trên PostgreSQL trên VPS Ubuntu 12.04
2013-10-29
Cách cài đặt và sử dụng PostgreSQL trên CentOS 6
2013-10-23
Cách backup database PostgreSQL trên VPS Ubuntu
2013-08-28
Cách bảo mật PostgreSQL trên VPS Ubuntu
2013-08-22
cách sử dụng role và quản lý quyền cấp trong PostgreSQL trên VPS
2013-08-05