So installieren Sie Ruby On Rails unter Ubuntu 20.04 mit MySQL, Nginx, Passenger, SSL. Ruby ist eine dynamische Open-Source-Programmiersprache, die Einfachheit und Produktivität priorisiert. Es verfügt über eine einfache Syntax, die sich natürlich lesen und schreiben lässt. Ruby on Rails ist ein weit verbreitetes Web-Framework für Ruby, das entwickelt wurde, um Softwareentwicklern zu helfen, produktiver zu sein.
Nginx ist ein Webserver, der HTTP-Transaktionen bereitstellen und statische Dateien bereitstellen kann, aber Ruby-Anwendungen nicht direkt ausführen kann. Daher verwenden wir Phusion Passenger, einen kostenlosen Open-Source-Webanwendungsserver. Es wurde entwickelt, um HTTP-Anforderungen zu verarbeiten, Prozesse und Ressourcen zu überwachen und zu verwalten sowie Verwaltung, Überwachung und Problemdiagnose zu ermöglichen.
In diesem Leitfaden richten Sie Passenger ein, um Nginx bei der Bereitstellung Ihrer Ruby on Rails-Webanwendung zu unterstützen, und installieren Let’sEncrypt SSL, um Ihre Anwendung zu sichern.
Voraussetzungen
- Ein Server mit Ubuntu 20.04
- Root-Zugriff auf Ihren Server oder Benutzer mit sudo-Berechtigungen.
- Fortgeschrittene Kenntnisse in der Verwendung von Linux-Terminalbefehlen.
- Domainname, der auf die externe IP Ihres Servers zeigt.
Ersteinrichtung des Servers
Aktualisieren Sie Ihre Serverpakete auf den neuesten Stand.
sudo apt update sudo apt dist-upgrade -y
Ruby on Rails mit Rbenv installieren
Um sicherzustellen, dass die Einrichtung gut funktioniert, beginnen wir mit dem Hinzufügen der Node.js- und Yarn-Repositories.
curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
Abhängigkeiten installieren
Jetzt können Sie alle Abhängigkeiten installieren.
sudo apt-get update sudo apt-get install git-core zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn
Installieren Sie Rbenv und Rbenv Build
Rbenv ist ein Ruby-Versionsmanager, der zur Installation von Ruby verwendet wird.
Hier werden wir Rbenv und Rbenv-build installieren.
Rbenv installieren
cd git clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc exec $SHELL
Rbenv-Build installieren
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc exec $SHELL
Ruby-Version konfigurieren
Jetzt können Sie die Standard- und globale Ruby-Version einrichten.
rbenv install 3.1.1 rbenv global 3.1.1
Bestätigen Sie die Ruby-Version mit dem folgenden Befehl.
ruby -v
Jetzt müssen Sie Bundler installieren.
gem install bundler
Schienen installieren
gem install rails -v 7.0.2.3
Rails-Befehl ausführbar machen.
rbenv rehash
Rails-Version bestätigen.
rails -v
Installieren Sie MySQL
In diesem Tutorial verwenden wir MySQL für die Datenbank.
sudo apt-get install mysql-server mysql-client libmysqlclient-dev
sudo mysql_secure_installation
Sie können bei Bedarf einen neuen Benutzer und ein neues Passwort in MySQL konfigurieren.
Rails für MySQL konfigurieren
Installieren Sie nun den MySQL-Adapter für Rails
gem install mysql2
Passagier und Nginx installieren
Jetzt werden wir Nginx installieren und Passenger konfigurieren.
Nginx installieren.
sudo apt -y install nginx
Passagier installieren.
sudo apt install -y dirmngr gnupg apt-transport-https ca-certificates sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
Passagier-APY-Repository hinzufügen.
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger focal main > /etc/apt/sources.list.d/passenger.list'
Aktualisieren und installieren Sie Passenger.
sudo apt update sudo apt install -y libnginx-mod-http-passenger
Jetzt wird eine neue Passagierkonfiguration im Verzeichnis conf.d der Nginx-Installation hinzugefügt.
Starten Sie Nginx neu, damit die Installation des Passagiermoduls wirksam wird.
sudo service nginx start
Passagier mit Rbenv konfigurieren
Bearbeiten Sie die Passenger-Konfigurationsdatei.
sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
Kommentieren Sie Zeilen beginnend mit passenger_root
aus und passenger_ruby
.
Fügen Sie die folgenden Zeilen in die Datei ein.
Ersetzen Sie Nutzername im Optionspfad Passenger_ruby mit dem Benutzernamen, über den Sie Rbenv installiert haben.
passenger_ruby /home/example_user/.rbenv/shims/ruby; passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
Speichern und beenden Sie die Datei.
Starten Sie Nginx neu.
sudo service nginx restart
Neues Rails-Projekt erstellen
Erstellen Sie ein neues Verzeichnis für Ihr Rails-Projekt oder navigieren Sie einfach zu einem beliebigen Verzeichnis. Hier navigieren wir zum standardmäßigen Nginx-Webverzeichnis.
cd /var/www
Rails-Projekt erstellen.
rails new project-name -d mysql cd project-name
Bearbeiten Sie die Datenbankkonfiguration, um eine Verbindung zu Ihrer Datenbank herzustellen.
sudo nano config/database.yml
Ersetzen Sie den Benutzernamen mit Ihrem username
, Passwort mit Ihrem password
Stellen Sie sicher, dass Ihr database.yml
sieht so aus
default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: username password: password host: locahost database: database_name development: <<: *default test: <<: *default production: <<: *default
Rails-Datenbank initialisieren.
rake db:create
Starten Sie Rails neu.
rails restart
Nginx mit Ruby on Rails konfigurieren
Nginx-Standardkonfigurationen entfernen.
sudo rm -rf /etc/nginx/sites-available/default sudo rm -rf /etc/nginx/sites-enabled/default
Erstellen Sie eine neue Konfiguration für Ihre Ruby-Anwendung
sudo nano /etc/nginx/sites-available/domainname.conf
Fügen Sie diese neue Konfigurationseinstellung ein und drücken Sie Ctrl+X
gefolgt von Y
um die Datei zu speichern
server { listen 80 default_server; server_name domainname.com; passenger_enabled on; passenger_app_env production; root /var/www/html/project-name/public; }
Aktivieren Sie Ihre neue Konfiguration
sudo ln -s /etc/nginx/sites-available/domainname.conf /etc/nginx/sites-enabled/domainname.conf
Validieren Sie die Nginx-Konfiguration und starten Sie nginx neu
sudo nginx -t sudo service nginx restart
Installieren Sie Let’sEncrypt SSL
Wir können Certbot verwenden, um ein kostenloses SSL-Zertifikat von Let’s Encrypt für Ihre Domain zu installieren.
sudo apt install python3-certbot-nginx
Führen Sie den folgenden Befehl aus, um das Zertifikat zu installieren und die Umleitung zu HTTPS automatisch zu konfigurieren.
sudo certbot --nginx --redirect --agree-tos --no-eff-email -m [email protected] -d domain.com -d www.domain.com
Jetzt sollten Sie ein SSL-Zertifikat erhalten und es wird automatisch konfiguriert.
Automatische Verlängerung einrichten.
sudo certbot renew --dry-run
Jetzt ist Ruby on Rails installiert und mit Passenger und Nginx konfiguriert und mit der MySQL-Datenbank verbunden.
Besuchen Sie Ihren Domainnamen in Ihrem Browser, Sie können die Willkommensseite von Ruby on Rails anzeigen.
Schlussfolgerung
Jetzt haben Sie gelernt, wie Sie Ruby On Rails auf Ubuntu 20.04 mit MySQL installieren und Nginx mit Passenger konfigurieren und Let’sEncrypt SSL konfigurieren.
Vielen Dank für Ihre Zeit. Wenn Sie auf ein Problem oder Feedback stoßen, hinterlassen Sie bitte unten einen Kommentar.