GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer Ruby On Rails sur Ubuntu 20.04 avec MySQL, Nginx, Passenger, SSL

Comment installer Ruby On Rails sur Ubuntu 20.04 avec MySQL, Nginx, Passenger, SSL. Ruby est un langage de programmation dynamique et open source qui privilégie la simplicité et la productivité. Il présente une syntaxe simple, naturelle à lire et à écrire. Ruby on Rails est un framework Web largement utilisé pour Ruby qui a été créé pour aider les développeurs de logiciels à être plus productifs.

Nginx est un serveur Web qui peut fournir des transactions HTTP et servir des fichiers statiques mais ne peut pas exécuter directement les applications Ruby. Nous utilisons donc Phusion Passenger, un serveur d'applications Web gratuit et open source. Il est conçu pour gérer les requêtes HTTP, surveiller et gérer les processus et les ressources, ainsi que permettre l'administration, la surveillance et le diagnostic des problèmes.

Dans ce guide, vous allez configurer Passenger pour aider Nginx à servir votre application Web Ruby on Rails et installer Let'sEncrypt SSL pour sécuriser votre application.

Prérequis

  1. Un serveur avec Ubuntu 20.04
  2. Accès root à votre serveur ou utilisateur avec les privilèges sudo.
  3. Connaissance intermédiaire de l'utilisation des commandes de terminal Linux
  4. Nom de domaine qui pointe vers l'adresse IP externe de votre serveur.

Configuration initiale du serveur

Mettez à jour vos packages de serveur avec les derniers.

sudo apt update
sudo apt dist-upgrade -y

Installer Ruby on Rails avec Rbenv

Pour nous assurer que la configuration se passe bien, nous allons commencer par ajouter les référentiels Node.js et Yarn.

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

Installer les dépendances

Vous pouvez maintenant installer toutes les dépendances.

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

Installer Rbenv et Rbenv Build

Rbenv est un gestionnaire de version Ruby utilisé pour installer Ruby.

Ici, nous allons installer Rbenv et Rbenv-build.

Installer Rbenv

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

Installer Rbenv Build

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

Configurer la version de Ruby

Vous pouvez maintenant configurer la version par défaut et globale de Ruby.

rbenv install 3.1.1
rbenv global 3.1.1

Confirmez la version de Ruby à l'aide de la commande suivante.

ruby -v

Vous devez maintenant installer le bundler.

gem install bundler

Installer les rails

gem install rails -v 7.0.2.3

Rendre la commande rails exécutable.

rbenv rehash

Confirmez la version de Rails.

rails -v

Installer MySQL

Dans ce tutoriel, nous utiliserons MySQL pour la base de données.

sudo apt-get install mysql-server mysql-client libmysqlclient-dev
sudo mysql_secure_installation

Vous pouvez configurer un nouvel utilisateur et un nouveau mot de passe dans MySQL si vous en avez besoin.

Configurer Rails pour MySQL

Installez maintenant l'adaptateur MySQL pour Rails

gem install mysql2

Installer Passenger et Nginx

Nous allons maintenant installer Nginx et configurer Passenger.

Installez Nginx.

sudo apt -y install nginx

Installez le passager.

sudo apt install -y dirmngr gnupg apt-transport-https ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7

Ajouter un référentiel APY passager.

sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger focal main > /etc/apt/sources.list.d/passenger.list'

Mettez à jour et installez Passenger.

sudo apt update
sudo apt install -y libnginx-mod-http-passenger

Maintenant, une nouvelle configuration de passager sera ajoutée dans le répertoire conf.d de l'installation de Nginx.

Redémarrez Nginx pour que l'installation du module passager prenne effet.

sudo service nginx start

Configurer le passager avec Rbenv

Modifiez le fichier de configuration du passager.

sudo nano /etc/nginx/conf.d/mod-http-passenger.conf

Commentez les lignes commençant par passenger_root et passenger_ruby .

Ajoutez les lignes suivantes dans le fichier.

Remplacer nom d'utilisateur dans le chemin de l'option passager_ruby avec le nom d'utilisateur via lequel vous avez installé Rbenv.

passenger_ruby /home/example_user/.rbenv/shims/ruby;
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;

Enregistrez et quittez le fichier.

Redémarrez Nginx.

sudo service nginx restart

Créer un nouveau projet Rails

Créez un nouveau répertoire pour votre projet Rails ou accédez simplement à n'importe quel répertoire. Ici, nous naviguons vers le répertoire Web Nginx par défaut.

cd /var/www

Créer un projet Rails.

rails new project-name -d mysql
cd project-name

Modifiez la configuration de la base de données pour vous connecter à votre base de données.

sudo nano config/database.yml

Remplacez le nom d'utilisateur avec votre username , mot de passe avec votre password

Assurez-vous que votre database.yml ressemble à ceci

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

Initialiser la base de données Rails.

rake db:create

Redémarrez Rails.

rails restart

Configurer Nginx avec Ruby on Rails

Supprimez les configurations Nginx par défaut.

sudo rm -rf /etc/nginx/sites-available/default
sudo rm -rf /etc/nginx/sites-enabled/default

Créez une nouvelle configuration pour votre application Ruby

sudo nano /etc/nginx/sites-available/domainname.conf

Collez ce nouveau paramètre de configuration et appuyez sur Ctrl+X suivi de Y pour enregistrer le fichier

server {
    listen 80 default_server;
    server_name domainname.com;

    passenger_enabled on;
    passenger_app_env production;

    root /var/www/html/project-name/public;
}

Activez votre nouvelle configuration

sudo ln -s /etc/nginx/sites-available/domainname.conf /etc/nginx/sites-enabled/domainname.conf

Validez la configuration de Nginx et redémarrez nginx

sudo nginx -t
sudo service nginx restart

Installer Let'sEncrypt SSL

Nous pouvons utiliser Certbot pour installer un certificat SSL Let's Encrypt gratuit pour votre domaine.

sudo apt install python3-certbot-nginx

Exécutez la commande suivante pour installer le certificat et configurer automatiquement la redirection vers HTTPS.

sudo certbot --nginx --redirect --agree-tos --no-eff-email -m [email protected] -d domain.com -d www.domain.com

Vous devriez maintenant recevoir le certificat SSL et il sera configuré automatiquement.

Configurer le renouvellement automatique.

sudo certbot renew --dry-run

Ruby on Rails est maintenant installé et configuré avec Passenger et Nginx et connecté à la base de données MySQL.

Visitez votre nom de domaine sur votre navigateur, vous pouvez afficher la page d'accueil de Ruby on Rails.

Conclusion

Vous avez maintenant appris comment installer Ruby On Rails sur Ubuntu 20.04 avec MySQL et configurer Nginx avec Passenger et configurer Let'sEncrypt SSL.

Merci pour votre temps. Si vous rencontrez un problème ou des commentaires, veuillez laisser un commentaire ci-dessous.


Linux
  1. Comment installer Nginx avec PHP5 et MySQL sur Ubuntu 11.10

  2. Comment installer Elgg avec Nginx sur Ubuntu 14.04

  3. Comment installer Elgg avec Nginx sur Ubuntu 18.04

  4. Comment installer Joomla avec Nginx sur Ubuntu 18.04

  5. Comment installer Elasticsearch sur Ubuntu 22.04 avec SSL

Comment installer MediaWiki sur Ubuntu 20.04 avec Apache/Nginx

Comment installer Nginx avec Let's Encrypt SSL sur Ubuntu 20.04 LTS

Comment installer Ruby on Rails sur Ubuntu 20.04 avec RVM

Comment installer Apache Tomcat 10 sur Ubuntu 20.04 avec Nginx

Installez nopCommerce sur Ubuntu 20.04, MySQL, Nginx, SSL

Comment installer Apache Tomcat 10 sur Ubuntu 22.04 avec Nginx