Wie man Ruby on Rails mit PostgreSQL auf CentOS 7 installiert und verwendet
Ruby on Rails (RoR), oder kurz „rails“, ist ein in Rubin geschriebenes serverseitiges Web-Applikationsframework, das dem MVC-Konzept (Model-View-Controller) folgt. RoR ist unter der OpenSource MIT-Lizenz veröffentlicht und bietet Standardstrukturen für Datenbanken, Webservices und Webseiten. Rails ist weit verbreitet, mehr als 3000 Personen wurden bisher in das Rails-Projekt eingebunden und es gibt viele Anwendungen, die auf Rails basieren, wie Github, Airbnb, Soundcloud etc.
In diesem Tutorial zeige ich Ihnen, wie Sie Rails auf CentOS 7 installieren. Wir werden Ruby on Rails mit einer PostgreSQL-Datenbank installieren und konfigurieren und dann unser erstes Projekt mit Rails erstellen.
Voraussetzung
- Server mit CentOS 7 Betriebssystem
- Root-Rechte
Schritt 1 – RVM installieren
RVM oder Ruby Version Manager ist ein Kommandozeilenprogramm, das auf Bash und Ruby basiert, um eine Rubininstallation zu verwalten. RVM ermöglicht es Ihnen, mehrere Rubinversionen auf demselben Server gleichzeitig zu installieren und zu konfigurieren, damit Sie mit mehreren Rubinumgebungen arbeiten können.
Stellen Sie sicher, dass der Curl-Befehl auf Ihrem System installiert ist.
yum install curl
In diesem Schritt werden wir die stabile RVM-Version installieren. Wir müssen den Repository-Schlüssel herunterladen und mit dem gpg-Befehl importieren, bevor wir mit der Installation von RVM beginnen.
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
Dann installieren Sie RVM.
curl -sSL https://get.rvm.io | bash -s stable --ruby
Der Befehl installiert zuerst die erforderlichen Pakete (Paketabhängigkeiten) und lädt dann die neueste stabile RVM-Version herunter und installiert sie.
Jetzt können wir mit der Verwendung von RVM beginnen, indem wir den folgenden Befehl ausführen:
source /usr/local/rvm/scripts/rvm
Schritt 2 – Installieren Sie Ruby
Die aktuelle stabile Version von Ruby ist 2.3.1. Wir installieren es mit dem Befehl „rvm“ und machen es dann zur Standard-Ruby-Version für Ihr System.
Aktualisieren Sie RVM auf die neueste stabile Version und installieren Sie dann Ruby 2.3.1.
rvm get stable --autolibs=enable rvm install ruby-2.3.1
Als nächstes machen Sie Ruby 2.3.1 zur Standard-Ruby-Version des Systems.
rvm --default use ruby-2.3.1
Überprüfen Sie die Rubin-Version mit dem folgenden Befehl, um sicherzustellen, dass die oben genannten Schritte erfolgreich waren:
ruby -v
Schritt 3 – Nodejs installieren
Rails benötigt eine JavaScript-Laufzeit, um die Rails-Asset-Pipeline zu kompilieren. Für die Entwicklung von Rails unter Ubuntu Linux ist es am besten, Nodejs als Javascript-Laufzeit zu installieren.
Installieren Sie nodejs aus dem Repository der Knotenquellen:
curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash - yum -y install nodejs
Überprüfen Sie, ob Knoten und npm erfolgreich auf dem System installiert wurden.
node -v npm -v
Schritt 4 – Edelstein konfigurieren
RubyGems ist der Ruby Package Manager. Es stellt das Gem-Kommandozeilen-Tool zur Verfügung und wird automatisch installiert, wenn Sie Ruby auf einem System installieren.
Aktualisieren Sie die Edelsteinversion und überprüfen Sie sie:
gem update --system gem -v
Dies ist optional: Sie können die Installation der Dokumentation zu jeder Gem-Installation deaktivieren, indem Sie die folgende Zeile zur.gemrc-Datei hinzufügen. Ich werde es hier tun, da es Festplattenspeicher spart und ich es vorziehe, die Dokumentation im Internet zu lesen.
echo "gem: --no-document" >> ~/.gemrc
Schritt 5 – Installieren Sie Rubin auf Schienen 5 (stabil)
Installiere Ruby on Rails 5 mit dem Befehl gem unten:
gem install rails -v 5.0.0
Wenn die Installation erfolgreich abgeschlossen ist, überprüfen Sie die Schienenversion:
rails -v
Du solltest dies als Ergebnis sehen:
Rails 5.0.0
Rails 5.0 auf CentOS 7 mit Ruby 2.3.1 installiert.
Schritt 6 – Einstellen der PostgreSQL-Datenbank für die Schienenentwicklung
In diesem Schritt werden wir PostgreSQL für die Schienenentwicklung vorbereiten. Ruby on Rails unterstützt viele Datenbanken wie MySQL, SQLite (Standard) und PostgreSQL. Ich werde PostgreSQL als Datenbank für dieses Handbuch verwenden.
Installieren Sie PostgreSQL mit diesem yum-Befehl:
yum -y install postgresql-server postgresql-devel postgresql-contrib
Nun müssen wir den Datenbankserver mit dem Befehl initdb initialisieren.
postgresql-setup initdb
Standardmäßig erlaubt PostgreSQL auf dem CentOS-Server keine passwortbasierte Authentifizierung. Wir müssen die PostgreSQL-Konfiguration für die RoR-Installation bearbeiten, um Anmeldungen mit einem Passwort zu ermöglichen.
Bearbeiten Sie pg_hba.conf mit vim:
vim /var/lib/pgsql/data/pg_hba.conf
Ändern Sie die Authentifizierungsmethode auf md5.
# IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
Speichern Sie die Datei und starten Sie dann den Dienst „postgresql“.
systemctl start postgresql
Postgresql läuft auf localhost ip address mit Port 5432, das können Sie mit dem folgenden Befehl überprüfen:
netstat -plntu systemctl status postgresql
Wenn die Installation abgeschlossen ist, werden Sie zum postgres-Benutzer auf der Shell mit su und greifen dann auf die postgresql-Shell (psql) zu.
su - postgres psql
Setzt ein neues Passwort für den postgres-Benutzer mit dem folgenden Befehl:
\password postgres Enter new password:
Als nächstes erstellen Sie mit diesem Befehl eine neue Rolle namens’rails-dev‘ für die Schienenentwicklung:
create role rails_dev with createdb login password 'aqwe123';
Überprüfen Sie die neue Rolle, Sie werden sehen, dass eine neue Rolle erstellt wurde:
\du
PostgreSQL-Datenbank und Benutzer für die Rails-Entwicklung wurde erstellt.
Schritt 7 – Erste Anwendung mit Rails und PostgreSQL erstellen
Wir können unsere erste Anwendung mit dem Befehl rails einfach erstellen.
Erstellen Sie eine neue Anwendung mit PostgreSQL als Standarddatenbank.
rails new myapp -d postgresql
Dieser Befehl erstellt ein neues Verzeichnis’myapp‘ und installiert einen neuen Edelstein einschließlich des „pg“-Edelsteins, der von rails für die Verbindung zur PostgreSQL-Datenbank benötigt wird.
Gehen Sie in das Verzeichnis’newapp‘ und bearbeiten Sie die Datenbank. yml-Datei im Konfigurationsverzeichnis.
cd myapp/ vim config/database.yml
Entkommentiere im Entwicklungsabschnitt Zeile 32 und setze die Rolle, die wir in Schritt 6 erstellt haben.
username: rails_dev
Setzen Sie das Benutzerpasswort rails_dev auf Zeile 35.
password: aqwe123
Entkommentieren Sie die Zeilen 40 und 44 für die Konfiguration des Datenbank-Hosts.
host: localhost port: 5432
Gehen Sie nun in den Testabschnitt und fügen Sie die neue Konfiguration unten hinzu:
database: myapp_test host: localhost port: 5432 username: rails_dev password: aqwe123
Speichern Sie die Datei und verlassen Sie den Editor.
Als nächstes generieren Sie die Datenbank mit dem Befehl rails:
rails db:setup rails db:migrate
Starten Sie dann den Rails-Server mit dem folgenden Befehl:
rails s -b 192.168.33.10 -p 8080
Öffnen Sie Ihren Webbrowser und besuchen Sie die Server-IP-Adresse auf Port 8080 – 192.168.33.10:8080.
Zurück zu deinem Terminal. Erstellen Sie ein neues Gerüst für die Interaktion mit der PostgreSQL-Datenbank.
Geben Sie den folgenden Befehl ein:
rails g scaffold Post title:string body:text rake db:migrate
Führen Sie den Railserver erneut aus.
rails s -b 192.168.33.10 -p 8080
Besuchen Sie den Server: 192.168.33.10:8080/posts
Sie werden eine einfache CRUD-Schnittstelle sehen, die in Ruby on Rails mit PostgreSQL geschrieben wurde.