Ruby on Rails (RoR), ou court "rails", est un framework d'application Web côté serveur écrit en ruby qui suit le concept MVC (Model-View-Controller). RoR est publié sous la licence OpenSource MIT. Rails fournit des structures par défaut pour les bases de données, les services Web et les pages Web. Rails est largement utilisé, plus de 3000 personnes ont contribué au code du projet Rails jusqu'à présent et il existe de nombreuses applications basées sur Rails, telles que Github, Airbnb, Soundcloud, etc.
Dans ce didacticiel, je vais vous montrer comment installer Rails sur CentOS 7. Nous allons installer et configurer Ruby on Rails avec une base de données PostgreSQL, puis créer notre premier projet avec Rails.
Prérequis
- Serveur avec système d'exploitation CentOS 7
- Privilèges root
Étape 1 - Installer RVM
RVM ou Ruby Version Manager est un outil de ligne de commande basé sur Bash et Ruby pour gérer une installation Ruby. RVM vous permet d'installer et de configurer simultanément plusieurs versions de ruby sur le même serveur pour vous permettre de travailler avec plusieurs environnements ruby.
Assurez-vous que la commande curl est installée sur votre système.
yum installer curl
Dans cette étape, nous allons installer la version stable de RVM. Nous devons télécharger la clé du référentiel et l'importer avec la commande gpg avant de commencer à installer RVM.
curl -sSL https://rvm.io/mpapis.asc | gpg --import-
Installez ensuite RVM.
curl -sSL https://get.rvm.io | bash -s stable --ruby
La commande installera d'abord les packages requis (dépendances des packages), puis téléchargera la dernière version stable de RVM et l'installera.
Nous pouvons maintenant commencer à utiliser RVM en exécutant la commande ci-dessous :
source /usr/local/rvm/scripts/rvm
Étape 2 - Installer Ruby
La version stable actuelle de Ruby est la 2.3.1. Nous allons l'installer avec la commande "rvm", puis en faire la version ruby par défaut de votre système.
Mettez à jour RVM vers la dernière version stable, puis installez Ruby 2.3.1.
rvm get stable --autolibs=enable
rvm install ruby-2.3.1
Ensuite, faites de Ruby 2.3.1 la version Ruby par défaut du système.
rvm --default utilise ruby-2.3.1
Vérifiez la version de Ruby avec la commande ci-dessous pour vous assurer que les étapes ci-dessus ont réussi :
ruby -v
Étape 3 - Installer Nodejs
Rails a besoin d'un environnement d'exécution JavaScript pour compiler le pipeline d'actifs Rails. Pour le développement Rails sur Ubuntu Linux, il est préférable d'installer Nodejs en tant qu'environnement d'exécution Javascript.
Installez nodejs depuis le référentiel nodesource :
curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
yum -y install nodejs
Vérifiez que node et npm ont été installés avec succès sur le système.
noeud -v
npm -v
Étape 4 - Configurer Gem
RubyGems est le gestionnaire de packages Ruby. Il fournit l'outil de ligne de commande gem et est automatiquement installé lorsque vous installez Ruby sur un système.
Mettez à jour la version de la gemme et vérifiez-la :
mise à jour gem --system
gem -v
Ceci est facultatif :vous pouvez désactiver l'installation de la documentation sur chaque installation de gem en ajoutant la ligne ci-dessous au fichier .gemrc. Je vais le faire ici car cela économise de l'espace disque et je préfère lire la documentation sur internet.
echo "gem :--no-document">> ~/.gemrc
Étape 5 - Installer Ruby on Rails 5 (Stable)
Installez Ruby on Rails 5 avec la commande gem ci-dessous :
rails d'installation de gemme -v 5.0.0
Lorsque l'installation s'est terminée avec succès, vérifiez la version des rails :
rails -v
Vous devriez voir ceci comme résultat :
Rail 5.0.0
Rails 5.0 installé sur CentOS 7 avec Ruby 2.3.1.
Étape 6 - Configuration de la base de données PostgreSQL pour le développement Rails
Dans cette étape, nous préparerons PostgreSQL pour le développement de rails. Ruby on Rails prend en charge de nombreuses bases de données telles que MySQL, SQLite (par défaut) et PostgreSQL. J'utiliserai PostgreSQL comme base de données pour ce guide.
Installez PostgreSQL avec cette commande yum :
yum -y install postgresql-server postgresql-devel postgresql-contrib
Nous devons maintenant initialiser le serveur de base de données avec la commande initdb.
postgresql-setup initdb
Par défaut, PostgreSQL sur le serveur CentOS n'autorise pas l'authentification par mot de passe. Nous devons modifier la configuration de PostgreSQL pour l'installation de RoR afin d'autoriser les connexions avec un mot de passe.
Modifiez pg_hba.conf avec vim :
vim /var/lib/pgsql/data/pg_hba.conf
Changez la méthode d'authentification en md5.
# connexions locales IPv4 :
hôte toutes toutes 127.0.0.1/32 md5
# connexions locales IPv6 :
hôte toutes toutes ;;Enregistrez le fichier, puis démarrez le service "postgresql".
systemctl démarrer postgresqlPostgresql s'exécute sur l'adresse IP localhost avec le port 5432, vous pouvez vérifier cela avec la commande ci-dessous :
netstat -plntu
statut systemctl postgresql
Lorsque l'installation est terminée, devenez l'utilisateur postgres sur le shell avec su puis accédez au shell postgresql (psql).
su - postgres
psqlDéfinissez un nouveau mot de passe pour l'utilisateur postgres avec la commande ci-dessous :
\password postgres
Entrez le nouveau mot de passe :Ensuite, créez un nouveau rôle nommé 'rails-dev' pour le développement des rails avec cette commande :
créer le rôle rails_dev avec le mot de passe de connexion createdb 'aqwe123' ;Vérifiez le nouveau rôle, vous verrez qu'un nouveau rôle est créé :
\duLa base de données PostgreSQL et l'utilisateur pour le développement Rails ont été créés.
Étape 7 - Créer la première application avec Rails et PostgreSQL
Nous pouvons facilement créer notre première application avec la commande rails.
Créez une nouvelle application avec PostgreSQL comme base de données par défaut.
rails new myapp -d postgresqlCette commande créera un nouveau répertoire 'myapp' et installera une nouvelle gemme incluant la gemme "pg" requise par rails pour se connecter à la base de données PostgreSQL.
Allez dans le répertoire 'newapp' et éditez le fichier database.yml dans le répertoire config.
cd monapp/
vim config/database.ymlDans la section développement, décommentez la ligne 32 et définissez le rôle que nous avons créé à l'étape 6.
nom d'utilisateur :rails_devDéfinissez le mot de passe utilisateur rails_dev à la ligne 35.
mot de passe :aqwe123Décommentez les lignes 40 et 44 pour la configuration de l'hôte de la base de données.
hôte :localhost
port :5432Maintenant, allez dans la section test et ajoutez la nouvelle configuration ci-dessous :
base de données :myapp_test
hôte :localhost
port :5432
nom d'utilisateur :rails_dev
mot de passe :aqwe123Enregistrez le fichier et quittez l'éditeur.
Ensuite, générez la base de données avec la commande rails :
rails db:setup
rails db:migrateDémarrez ensuite le serveur rails avec la commande ci-dessous :
rails s -b 192.168.33.10 -p 8080
Ouvrez votre navigateur Web et visitez l'adresse IP du serveur sur le port 8080 - 192.168.33.10:8080.
Retour à votre terminal. Créez un nouvel échafaudage pour interagir avec la base de données PostgreSQL.
Tapez la commande ci-dessous :
rails g scaffold Post title:string body:text
rake db:migrateExécutez à nouveau le serveur rails.
rails s -b 192.168.33.10 -p 8080Visitez le serveur :192.168.33.10:8080/posts
Vous verrez une interface CRUD simple écrite en Ruby on Rails avec PostgreSQL.
Liens
- https://www.ruby-lang.org/fr/
- http://guides.rubyonrails.org/
- https://www.postgresql.org/docs/