Einführung
In diesem Tutorial wird gezeigt, wie Sie https://www.phusionpassenger.com [Phusion Passenger] als Rails-freundlichen Webserver installieren, konfigurieren und warten können. Wir werden es in Apache unter Ubuntu 14.04 integrieren. Am Ende dieses Tutorials wird eine Test-Rails-Anwendung auf unserem Droplet bereitgestellt.
Wenn Sie Nginx gegenüber Apache bevorzugen, besuchen Sie https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-passenger-and-nginx-on-ubuntu-14 -04 [Bereitstellen einer Rails-App mit Passenger und Nginx unter Ubuntu 14.04], indem Sie dem Link folgen.
Voraussetzungen
Der erste Schritt besteht darin, ein neues Droplet zu erstellen. Für kleinere Websites reicht es aus, den 512-MB-Plan zu verwenden.
Möglicherweise möchten Sie das 32-Bit-Ubuntu-Image aufgrund des geringeren Speicherverbrauchs auswählen (64-Bit-Programme belegen etwa 50% mehr Speicher als ihre 32-Bit-Gegenstücke). Wenn Sie jedoch einen größeren Computer benötigen oder möglicherweise ein Upgrade auf mehr als 4 GB RAM durchführen, sollten Sie die 64-Bit-Version in Betracht ziehen.
Verwenden Sie unbedingt Ubuntu 14.04. Zum Zeitpunkt des Schreibens dieses Artikels verfügt Ubuntu 14.10 noch nicht über ein APT-Repository für Passagiere. Darüber hinaus bietet Ubuntu 14.04 einen weiteren Vorteil: Es handelt sich um eine LTS-Version, die für „Langzeit-Support“ steht. LTS-Releases sind als stabile Plattformen konzipiert, an denen wir uns lange halten können. Ubuntu garantiert, dass LTS-Releases fünf Jahre lang Sicherheitsupdates und andere Fehlerbehebungen erhalten.
-
Ubuntu 14.04 32-Bit-Droplet
Schritt 1 - Hinzufügen eines Sudo-Benutzers
Nachdem das Droplet erstellt wurde, sollten Sie einen Systembenutzer erstellen und den Server sichern. Sie können dies tun, indem Sie dem Artikel Initial Server Setup folgen.
Wenn Sie diesem Tutorial folgen möchten, benötigen Sie einen Basisbenutzer mit sudo-Berechtigungen. In diesem Beispiel wird der Benutzer * rail * verwendet. Wenn Ihr Benutzer einen anderen Namen hat, stellen Sie sicher, dass Sie in den nächsten Schritten die richtigen Pfade verwenden.
Schritt 2 (optional) - Richten Sie Ihre Domain ein
Um sicherzustellen, dass Ihre Site verfügbar und sichtbar ist, müssen Sie Ihre DNS-Einträge so einrichten, dass Ihr Domain-Name auf Ihren neuen Server verweist. Weitere Informationen finden Sie unter einrichten eines Hostnamens, indem Sie dem Link folgen.
Dieser Schritt ist jedoch optional, da Sie über eine IP-Adresse auf Ihre Site zugreifen können.
Schritt 3 - Installieren Sie Ruby
Wir werden Ruby manuell von der Quelle installieren.
Bevor wir etwas anderes tun, sollten wir ein Update ausführen, um sicherzustellen, dass alle Pakete, die wir installieren möchten, auf dem neuesten Stand sind:
sudo apt-get update
Installieren Sie als Nächstes einige Bibliotheken und andere Abhängigkeiten. Dadurch wird die Installation so reibungslos wie möglich:
sudo apt-get install build-essential libssl-dev libyaml-dev libreadline-dev openssl curl git-core zlib1g-dev bison libxml2-dev libxslt1-dev libcurl4-openssl-dev libsqlite3-dev sqlite3
Erstellen Sie einen temporären Ordner für die Ruby-Quelldateien:
mkdir ~/ruby
In den neuen Ordner verschieben:
cd ~/ruby
Laden Sie den neuesten stabilen Ruby-Quellcode herunter. Zum Zeitpunkt des Schreibens ist dies die Version 2.1.4. Die aktuellste Version finden Sie auf der Ruby website. Wenn eine neuere Version verfügbar ist, müssen Sie den Link im folgenden Befehl ersetzen:
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.4.tar.gz
Dekomprimieren Sie die heruntergeladene Datei:
tar -xzf ruby-2.1.4.tar.gz
Wählen Sie das extrahierte Verzeichnis:
cd ruby-2.1.4
Führen Sie das Skript aus. Dies wird einige Zeit in Anspruch nehmen, da es nach Abhängigkeiten sucht und ein neues * Makefile * erstellt, das Schritte enthält, die zum Kompilieren des Codes ausgeführt werden müssen:
./configure
Führen Sie das Dienstprogramm aus, das das * Makefile * verwendet, um das ausführbare Programm zu erstellen. Dieser Schritt kann etwas länger dauern:
make
Führen Sie jetzt denselben Befehl mit dem Parameter aus. Es wird versucht, die kompilierten Binärdateien in den Ordner zu kopieren. Für diesen Schritt ist Root-Zugriff erforderlich, um in dieses Verzeichnis zu schreiben:
sudo make install
Ruby sollte jetzt auf dem System installiert sein. Wir können es mit dem folgenden Befehl überprüfen, der die Ruby-Version ausgeben soll:
ruby -v
Wenn Ihre Ruby-Installation erfolgreich war, sollte die Ausgabe folgendermaßen aussehen:
ruby 2.1.4p265 (2014-10-27 revision 48166) [x86_64-linux]
Schließlich können wir den temporären Ordner löschen:
rm -rf ~/ruby
Schritt 4 - Installieren Sie Apache
Geben Sie zum Installieren von Apache den folgenden Befehl ein:
sudo apt-get install apache2
Ja, das ist alles!
Schritt 5 - Passenger installieren
Installieren Sie zunächst den PGP-Schlüssel für den Repository-Server:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
Erstellen Sie eine APT-Quelldatei:
sudo nano /etc/apt/sources.list.d/passenger.list
Fügen Sie die folgende Zeile ein, um das Passagier-Repository zur Datei hinzuzufügen:
deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main
Drücken Sie zum Beenden * STRG + X *, geben Sie * Y * ein, um die Datei zu speichern, und drücken Sie dann die EINGABETASTE, um den Speicherort der Datei zu bestätigen.
Ändern Sie den Eigentümer und die Berechtigungen für diese Datei, um den Zugriff auf * root * einzuschränken:
sudo chown root: /etc/apt/sources.list.d/passenger.list
sudo chmod 600 /etc/apt/sources.list.d/passenger.list
Aktualisieren Sie den APT-Cache:
sudo apt-get update
Zum Schluss installieren Sie Passenger:
sudo apt-get install libapache2-mod-passenger
Stellen Sie sicher, dass das Passenger Apache-Modul; es ist vielleicht schon aktiviert:
sudo a2enmod passenger
Starten Sie Apache neu:
sudo service apache2 restart
Dieser Schritt überschreibt unsere Ruby-Version auf eine ältere. Um dies zu beheben, entfernen Sie einfach den falschen Ruby-Speicherort und erstellen Sie einen neuen Symlink zur richtigen Ruby-Binärdatei:
sudo rm /usr/bin/ruby
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
Schritt 6 - Bereitstellen
An diesem Punkt können Sie Ihre eigene Rails-Anwendung bereitstellen, wenn Sie eine bereit haben. Wenn Sie eine vorhandene App bereitstellen möchten, können Sie Ihr Projekt auf den Server hochladen und mit dem Schritt "+ / etc / apache2 / sites-available / default +" fortfahren.
Für dieses Tutorial erstellen wir eine neue Rails-App direkt auf dem Droplet. Wir werden das Juwel brauchen, um die neue App zu erstellen.
Wechseln Sie in das Home-Verzeichnis Ihres Benutzers:
cd ~
Installieren Sie das Juwel ohne zusätzliche Dokumentation, was die Installation beschleunigt. Dies wird noch einige Minuten dauern:
sudo gem install --no-rdoc --no-ri rails
Jetzt können wir eine neue App erstellen. In unserem Beispiel verwenden wir den Namen. Wenn Sie einen anderen Namen verwenden möchten, müssen Sie die Pfade in den anderen Befehlen und Dateien in diesem Abschnitt aktualisieren.
Wir werden die Bundler-Installation überspringen, da wir sie später manuell ausführen möchten.
rails new testapp --skip-bundle
Geben Sie das Verzeichnis ein:
cd testapp
Jetzt müssen wir eine JavaScript-Ausführungsumgebung installieren. Es kann als Edelstein installiert werden. Um es zu installieren, öffne zuerst das * Gemfile *:
nano Gemfile
Suchen Sie die folgende Zeile:
# gem 'therubyracer', platforms: :ruby
Kommentar entfernen:
gem 'therubyracer', platforms: :ruby
Speichern Sie die Datei und führen Sie Bundler aus:
bundle install
Jetzt müssen wir eine virtuelle Hostdatei für unser Projekt erstellen. Dazu kopieren wir den virtuellen Apache-Standardhost:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/testapp.conf
Öffnen Sie die Konfigurationsdatei:
sudo nano /etc/apache2/sites-available/testapp.conf
Bearbeiten Sie es oder ersetzen Sie den vorhandenen Inhalt, damit Ihr Endergebnis mit der unten gezeigten Datei übereinstimmt. Änderungen, die Sie vornehmen müssen, sind in hervorgehoben. Denken Sie daran, Ihren eigenen Domainnamen und den richtigen Pfad zu Ihrer Rails-App zu verwenden:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Grundsätzlich ermöglicht diese Datei das Abhören unseres Domainnamens auf Port 80, das Festlegen eines Alias für die Unterdomäne * www *, das Festlegen der E-Mail-Adresse unseres Serveradministrators, das Festlegen des Stammverzeichnisses für das öffentliche Verzeichnis unseres neuen Projekts und den Zugriff auf unsere Seite. Weitere Informationen zu Apache virtual hosts finden Sie unter Verknüpfung.
Um unser Setup zu testen, möchten wir die Rails * Welcome on Board * -Seite sehen. Dies funktioniert jedoch nur, wenn die Anwendung in der Entwicklungsumgebung gestartet wird. Passenger startet die Anwendung standardmäßig in der Produktionsumgebung, daher müssen wir dies mit der Option * RailsEnv * ändern. Wenn Ihre App produktionsbereit ist, möchten Sie diese Einstellung deaktivieren.
Wenn Sie dieser App Ihre Domain nicht zuweisen möchten, können Sie die Zeilen "+ ServerName " und " ServerAlias +" überspringen oder Ihre IP-Adresse verwenden.
Speichern Sie die Datei (STRG + X, Y, EINGABE).
Deaktivieren Sie die Standard-Site, aktivieren Sie Ihre neue Site und starten Sie Apache neu:
sudo a2dissite 000-default
sudo a2ensite testapp
sudo service apache2 restart
Jetzt sollte auf die Website Ihrer App zugegriffen werden können. Navigieren Sie zur Domain oder IP-Adresse Ihres Droplets:
http://droplet_ip_address
Stellen Sie sicher, dass Ihre App bereitgestellt ist. Sie sollten entweder Ihre benutzerdefinierte Anwendung oder die Standard-Rails-Seite * Willkommen an Bord * sehen:
Bild: https://assets.digitalocean.com/articles/rails_passenger/1.png [Testseite]
Die Rails-App ist jetzt live auf Ihrem Server.
Schritt 7 - Regelmäßig aktualisieren
Um Ruby zu aktualisieren, müssen Sie die neueste Version kompilieren, wie in Schritt 4 dieses Tutorials gezeigt.
Um Passenger und Apache zu aktualisieren, müssen Sie ein grundlegendes Systemupdate ausführen:
sudo apt-get update && sudo apt-get upgrade
Wenn jedoch eine neue System-Ruby-Version verfügbar ist, wird sie wahrscheinlich unseren Ruby (von der Quelle installiert) überschreiben. Aus diesem Grund müssen Sie möglicherweise die Befehle erneut ausführen, um den vorhandenen Symlink zur Ruby-Binärdatei zu entfernen und einen neuen (richtigen) zu erstellen. Sie werden am Ende von Schritt 6 in diesem Lernprogramm aufgeführt.
Nach dem Aktualisierungsvorgang müssen Sie den Webserver neu starten:
sudo service apache2 restart