GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie Ruby On Rails unter Ubuntu 20.04 mit MySQL, Nginx, Passenger, SSL

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

  1. Ein Server mit Ubuntu 20.04
  2. Root-Zugriff auf Ihren Server oder Benutzer mit sudo-Berechtigungen.
  3. Fortgeschrittene Kenntnisse in der Verwendung von Linux-Terminalbefehlen.
  4. 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.


Linux
  1. So installieren Sie Nginx mit PHP5 und MySQL unter Ubuntu 11.10

  2. So installieren Sie Elgg mit Nginx unter Ubuntu 14.04

  3. So installieren Sie Elgg mit Nginx unter Ubuntu 18.04

  4. So installieren Sie Joomla mit Nginx unter Ubuntu 18.04

  5. So installieren Sie Elasticsearch auf Ubuntu 22.04 mit SSL

So installieren Sie MediaWiki auf Ubuntu 20.04 mit Apache/Nginx

So installieren Sie Nginx mit Let’s Encrypt SSL unter Ubuntu 20.04 LTS

So installieren Sie Ruby on Rails auf Ubuntu 20.04 mit RVM

So installieren Sie Apache Tomcat 10 auf Ubuntu 20.04 mit Nginx

Installieren Sie nopCommerce auf Ubuntu 20.04, MySQL, Nginx, SSL

So installieren Sie Apache Tomcat 10 auf Ubuntu 22.04 mit Nginx