Comment déployer une application Rails avec Passenger et Apache sur Ubuntu 14.04

introduction

Dans ce didacticiel, nous montrerons comment installer https://www.phusionpassenger.com [Phusion Passenger] en tant que serveur Web convivial pour Rails, facile à installer, configurer et gérer. Nous l’intégrerons dans Apache sur Ubuntu 14.04. À la fin de ce didacticiel, une application de test Rails sera déployée sur notre droplet.

Si vous préférez Nginx à Apache, consultez la page https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-passenger-and-nginx-on-ubuntu-14. -04 [comment déployer une application Rails avec Passenger et Nginx sur Ubuntu 14.04] en suivant le lien.

Conditions préalables

La première étape consiste à créer un nouveau Droplet. Pour les sites plus petits, il suffit d’utiliser le plan de 512 Mo.

Vous voudrez peut-être choisir l’image Ubuntu 32 bits en raison d’une consommation de mémoire inférieure (les programmes 64 bits utilisent environ 50% de mémoire supplémentaire par rapport à leurs homologues 32 bits). Toutefois, si vous avez besoin d’une machine plus grosse ou s’il y a une chance que vous passiez à plus de 4 Go de RAM, vous devriez envisager la version 64 bits.

Assurez-vous d’utiliser Ubuntu 14.04. Au moment de la rédaction de ce document, Ubuntu 14.10 n’a pas encore de référentiel Passanger APT. De plus, Ubuntu 14.04 présente un avantage supplémentaire: il s’agit d’une version LTS, synonyme de «support à long terme». Les versions de LTS sont conçues pour être des plates-formes stables sur lesquelles nous pouvons rester longtemps. Ubuntu garantit que les versions LTS recevront des mises à jour de sécurité et d’autres correctifs de bogues pendant cinq ans.

  • Ubuntu 14.04 Droplet 32 ​​bits

Étape 1 - Ajouter un utilisateur Sudo

Une fois le droplet créé, vous devez créer un utilisateur système et sécuriser le serveur. Vous pouvez le faire en suivant l’article Initial Server Setup.

Si vous souhaitez suivre ce didacticiel, vous avez besoin d’un utilisateur de base doté des privilèges sudo. Nous allons utiliser l’utilisateur * rails * dans cet exemple. Si votre utilisateur a un autre nom, veillez à utiliser les chemins d’accès corrects dans les étapes suivantes.

Étape 2 (facultatif) - Configurez votre domaine

Afin de garantir la visibilité et la visibilité de votre site, vous devez configurer vos enregistrements DNS afin de diriger votre nom de domaine vers votre nouveau serveur. Vous pouvez trouver plus d’informations sur https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean configuration d’un nom d’hôte] en suivant le lien.

Cependant, cette étape est facultative, car vous pouvez accéder à votre site via une adresse IP.

Étape 3 - Installez Ruby

Nous allons installer Ruby manuellement à partir des sources.

Avant de faire quoi que ce soit, nous devrions exécuter une mise à jour pour nous assurer que tous les packages que nous souhaitons installer sont à jour:

sudo apt-get update

Ensuite, installez certaines bibliothèques et autres dépendances. Cela rendra l’installation aussi fluide que possible:

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

Créez un dossier temporaire pour les fichiers source Ruby:

mkdir ~/ruby

Déplacer vers le nouveau dossier:

cd ~/ruby

Téléchargez le dernier code source stable de Ruby. Au moment d’écrire ces lignes, il s’agit de la version 2.1.4. Vous pouvez obtenir la dernière version actuelle sur le site Ruby. Si une version plus récente est disponible, vous devrez remplacer le lien dans la commande suivante:

wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.4.tar.gz

Décompressez le fichier téléchargé:

tar -xzf ruby-2.1.4.tar.gz

Sélectionnez le répertoire extrait:

cd ruby-2.1.4

Exécutez le script. Cela prendra un certain temps car il vérifie les dépendances et crée un nouveau * Makefile *, qui contiendra les étapes à suivre pour compiler le code:

./configure

Exécutez l’utilitaire, qui utilisera le * Makefile * pour générer le programme exécutable. Cette étape peut prendre un peu plus de temps:

make

Maintenant, exécutez la même commande avec le paramètre. Il essaiera de copier les fichiers binaires compilés dans le dossier. Cette étape nécessite un accès root pour écrire dans ce répertoire:

sudo make install

Ruby devrait maintenant être installé sur le système. Nous pouvons le vérifier avec la commande suivante, qui devrait imprimer la version de Ruby:

ruby -v

Si votre installation de Ruby a réussi, vous devriez voir un résultat ressemblant à ceci:

ruby 2.1.4p265 (2014-10-27 revision 48166) [x86_64-linux]

Enfin, nous pouvons supprimer le dossier temporaire:

rm -rf ~/ruby

Étape 4 - Installer Apache

Pour installer Apache, tapez cette commande:

sudo apt-get install apache2

Oui c’est tout!

Étape 5 - Installation du passager

Commencez par installer la clé PGP pour le serveur de référentiel:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7

Créez un fichier source APT:

sudo nano /etc/apt/sources.list.d/passenger.list

Insérez la ligne suivante pour ajouter le référentiel Passenger au fichier:

deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main

Appuyez sur * CTRL + X * pour quitter, tapez * Y * pour enregistrer le fichier, puis appuyez sur Entrée pour confirmer l’emplacement du fichier.

Modifiez le propriétaire et les autorisations de ce fichier afin de limiter l’accès à * root *:

sudo chown root: /etc/apt/sources.list.d/passenger.list
sudo chmod 600 /etc/apt/sources.list.d/passenger.list

Mettez à jour le cache APT:

sudo apt-get update

Enfin, installez Passager:

sudo apt-get install libapache2-mod-passenger

Assurez-vous que le module Passager Apache; il est peut-être déjà activé:

sudo a2enmod passenger

Redémarrez Apache:

sudo service apache2 restart

Cette étape remplacera notre version Ruby par une version plus ancienne. Pour résoudre ce problème, supprimez simplement l’emplacement Ruby incorrect et créez un nouveau lien symbolique vers le fichier binaire Ruby approprié:

sudo rm /usr/bin/ruby
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby

Étape 6 - Déployer

À ce stade, vous pouvez déployer votre propre application Rails si vous en avez déjà une. Si vous souhaitez déployer une application existante, vous pouvez télécharger votre projet sur le serveur et passer à l’étape + / etc / apache2 / sites-available / default +.

Pour ce tutoriel, nous allons créer une nouvelle application Rails directement sur le droplet. Nous aurons besoin de la gemme pour créer la nouvelle application.

Accédez au répertoire de base de votre utilisateur:

cd ~

Installez la gemme sans documentation supplémentaire, ce qui rend l’installation plus rapide. Cela prendra encore quelques minutes:

sudo gem install --no-rdoc --no-ri rails

Maintenant, nous pouvons créer une nouvelle application. Dans notre exemple, nous utiliserons le nom. Si vous souhaitez utiliser un autre nom, veillez à mettre à jour les chemins des autres commandes et fichiers de cette section.

Nous allons ignorer l’installation de Bundler car nous voulons l’exécuter manuellement ultérieurement.

rails new testapp --skip-bundle

Entrez le répertoire:

cd testapp

Nous devons maintenant installer un environnement d’exécution JavaScript. Il peut être installé comme le joyau. Pour l’installer, ouvrez d’abord le * Gemfile *:

nano Gemfile

Trouvez la ligne suivante:

# gem 'therubyracer',  platforms: :ruby

Décommentez le:

gem 'therubyracer',  platforms: :ruby

Enregistrez le fichier et exécutez Bundler:

bundle install

Nous devons maintenant créer un fichier d’hôte virtuel pour notre projet. Pour ce faire, copiez l’hôte virtuel Apache par défaut:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/testapp.conf

Ouvrez le fichier de configuration:

sudo nano /etc/apache2/sites-available/testapp.conf

Modifiez-le ou remplacez le contenu existant afin que votre résultat final corresponde au fichier indiqué ci-dessous. Les modifications que vous devez apporter sont mises en évidence dans. N’oubliez pas d’utiliser votre propre nom de domaine et le chemin correct vers votre application Rails:

<VirtualHost *:80>


   ServerAdmin webmaster@localhost
   DocumentRoot

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined




</VirtualHost>

Fondamentalement, ce fichier permet d’écouter notre nom de domaine sur le port 80, définit un alias pour le sous-domaine * www *, définit l’adresse mail de notre administrateur de serveur, définit le répertoire racine du répertoire public de notre nouveau projet et permet l’accès à notre site. Vous pouvez en apprendre plus sur les Apache virtual hosts en suivant les lien.

Pour tester notre configuration, nous souhaitons voir la page Rails * Welcome on Bord *. Toutefois, cela ne fonctionne que si l’application est démarrée dans l’environnement de développement. Passenger démarre l’application dans l’environnement de production par défaut. Nous devons donc modifier cela avec l’option * RailsEnv *. Si votre application est prête pour la production, vous souhaiterez laisser ce paramètre.

Si vous ne souhaitez pas attribuer votre domaine à cette application, vous pouvez ignorer les lignes + NomServeur + et + ServerAlias ​​+, ou utiliser votre adresse IP.

Enregistrez le fichier (CTRL + X, Y, ENTER).

Désactivez le site par défaut, activez votre nouveau site et redémarrez Apache:

sudo a2dissite 000-default
sudo a2ensite testapp
sudo service apache2 restart

Le site Web de votre application devrait maintenant être accessible. Accédez au domaine ou à l’adresse IP de votre Droplet:

http://droplet_ip_address

Vérifiez que votre application est déployée. Vous devriez voir soit votre application personnalisée, soit la page * Bienvenue à bord * des rails par défaut:

image: https: //assets.digitalocean.com/articles/rails_passenger/1.png [Page de test]

L’application Rails est maintenant en direct sur votre serveur.

Étape 7 - Mettre à jour régulièrement

Pour mettre à jour Ruby, vous devez compiler la dernière version, comme indiqué à l’étape 4 de ce didacticiel.

Pour mettre à jour Passenger et Apache, vous devez exécuter une mise à jour système de base:

sudo apt-get update && sudo apt-get upgrade

Cependant, si une nouvelle version du système Ruby est disponible, elle écrasera probablement notre Ruby (installé à partir du code source). Pour cette raison, vous devrez peut-être réexécuter les commandes permettant de supprimer le lien symbolique existant vers le fichier binaire Ruby et d’en créer un nouveau (correct). Ils sont répertoriés à la fin de l’étape 6 de ce didacticiel.

Après le processus de mise à jour, vous devrez redémarrer le serveur Web:

sudo service apache2 restart