Comment installer et personnaliser une application Ruby sur un plan d’hébergement mutualisé avec cPanel & CloudLinux ?

La création et la personnalisation d’une application Ruby, sur un hébergement mutualisé cPanel & CloudLinux comme ce que propose EasyHoster, peut se faire de façon assez simple et cela grâce aux outils à votre disposition.

Voyons cela étape par étape !

Installer une application Ruby dans cPanel

Pour les besoins de ce tutoriel, avant la création de notre application Ruby, nous avons créé un sous-domaine ruby.easyhoster.net en l’ajoutant via l’onglet « Domaines » de cPanel.

La première étape sera donc de vous connecter à votre compte cPanel.

Ensuite, rendez-vous dans l’outil Setup Ruby App.

Installer sa première app Ruby dans cPanel sur un serveur Cloudlinux

Vous arriverez sur une interface vous permettant de configurer votre application Ruby.

Choix version de Ruby, URI / Path…

C’est là que vous pourrez :

  • Choisir votre version de Ruby
  • Le répertoire dans lequel se trouvera votre application
  • Ainsi que l’URI de l’app

Attention, notez que dans le champ « App Directory /home/$user/ » il ne faut pas mettre de barre oblique à la fin du path de votre répertoire.

Par exemple, nous avons créé le sous-domaine ruby.easyhoster.com pour réaliser ce tutoriel. cPanel a donc créé automatiquement le répertoire /ruby.easyhoster.com. Nous l’avons choisi, car nous souhaitons que l’application soit accessible depuis le sous-domaine ruby.easyhoster.net.

Lorsque vous êtes satisfait de vos premières configurations, vous pouvez finaliser cette étape en cliquant sur le bouton « Set up« .

Et voilà, vous avez installé une première application Ruby :

Installation réussie de Ruby sur cPanel !

Si vous vous rendez dans votre compte cPanel > Gestionnaire de fichiers, vous pourrez voir les fichiers installés par le système.

Fichiers et répertoires  créés automatiquement par cPanel pour Ruby

Si vous visitez votre application Ruby depuis votre navigateur Web, à ce stade, elle ressemblera à ceci :

Bravo, votre application Ruby fonctionne

Personnaliser une application Ruby dans cPanel

Maintenant que vous avez une installation Ruby fonctionnelle, il va falloir la personnaliser.

Bien sûr, nous n’allons pas dans le cadre de ce tutoriel développer une application très complexe. Nous allons simplement vous donner un exemple de personnalisation très basique. Le but est simplement ici de vous faire comprendre comment s’utilise Ruby dans cPanel. Cela sera ensuite à vos talents de développeur Ruby de jouer 🙂

Reprenons donc le travail…

Structure d’une application Ruby dans cPanel

Dans le Gestionnaire de fichiers cPanel vous aviez donc les répertoires et fichiers suivants :

  • public : ce répertoire servira à contenir tous les fichiers statiques de votre application, comme le HTML, CSS, JavaScript, les images, etc.
  • config.ru : ce fichier est un fichier de configuration Rack, utilisé pour démarrer et personnaliser votre application Ruby.
  • .htaccess : ce fichier dot file est utilisé pour la configuration de certains paramètres sur les serveurs Apache.

Modifier une application Ruby

Dans le Gestionnaire de fichiers cPanel, éditez le fichier config.ru, c’est là que tout va se passer.

Personnalisation application Ruby dans cPanel (fichier config.ru)

Vous verrez que ce fichier contient le code de l’application permettant d’afficher ce message « It works ».

Personnaliser it works de Ruby dans cPanel

Prenons un exemple de personnalisation, traduisons ce message « It works! » ? Choisissons de définir Ça fonctionne ! comme nouveau message.

Modification it works Ruby dans cPanel

Petite astuce pour que le C avec une cédille soit pris en compte correctement il va falloir ajouter le code suivant dans Content-Type :

; charset=utf-8

Avec cette modification, l’en-tête Content-Type inclut charset=utf-8, ce qui indique au navigateur que le contenu est encodé en UTF-8. Cela garantit que les caractères comme « Ça fonctionne ! » seront correctement affichés.

Enregistrez vos modifications et rendez-vous à nouveau dans l’outil Setup Ruby App pour cliquer sur le bouton « Restart« .

Pour qu'une modification dans le code d'une application Ruby soit prise en compte, il est obligatoire de la redémarrer

Pour qu’une modification dans le code d’une application Ruby soit prise en compte, il est obligatoire de la redémarrer.

Voici à quoi l’app Ruby ressemble maintenant :

Voici votre application Ruby traduite

Afin de pouvoir revenir à tout moment en arrière, nous vous recommandons d’effectuer une copie de votre fichier config.ru.

Pour cela, dans le Gestionnaire de fichiers, faites un clic droit sur le fichier config.ru, cliquez sur Copy. Nommez-le /config.ru.original.backup, par exemple

Créer un backup du fichier config.ru

Prenons un autre exemple de modification un peu plus complexe (mais pas trop ;-)). Nous avons demandé à notre assistant IA, Jasper de nous générer un peu de code Ruby, n’étant pas nous même développeurs dans ce langage.

Voici le code qu’il nous a donné pour créer une page HTML complète et afficher la date et l’heure actuelles à l’aide de Ruby (à intégrer dans config.ru ).

Ce script génère dynamiquement une page HTML avec les variables mois, heure et minute récupérées en Ruby :

require 'rack'
require 'time'

app = proc do |env|
  # Récupérer la date et l'heure actuelles
  now = Time.now
  
  # Extraire le mois, l'heure, et les minutes
  mois = now.strftime("%B") # Nom complet du mois
  heure = now.strftime("%H") # Heure au format 24h
  minute = now.strftime("%M") # Minutes

  # Construire la réponse HTML
  response = <<-HTML
  <!DOCTYPE html>
  <html lang="fr">
  <head>
      <meta charset="UTF-8">
      <title>Mon Application Ruby</title>
  </head>
  <body>
      <h1>Bonjour, nous sommes au mois de #{mois} et il est exactement #{heure} h #{minute}.</h1>
  </body>
  </html>
  HTML

  [200, {"Content-Type" => "text/html; charset=utf-8"}, [response]]
end

run app

Comme d’habitude, enregistrez votre modification et pensez à aller Restart votre application Ruby.

Voici à quoi cela ressemble maintenant :

Magnifique, n’est-ce pas ? 🙂

Ce serait quand même mieux si cela disait « (…)au mois de Juin(…) », non ?

Dans ce cas, il va être nécessaire d’installer un module Ruby supplémentaire.

Installer un module Ruby

Pour pouvoir traduire le mot « June », il va nous être nécessaire de nous rendre dans Setup Ruby App et de chercher le module i18n.

Pensez à bien taper sur la touche Enter après avoir inscrit le nom de votre module afin de visualiser les résultats de la recherche.

Installation d'un module Ruby

Sélectionnez le bon module et cliquez ensuite sur le bouton Update et ensuite Restart.

Vous aurez un message de confirmation d’installation réussie.

Nous pouvons retourner maintenant dans le fichier config.ru et copier-coller ceci :

require 'rack'
require 'time'
require 'i18n'

# Configuration de I18n pour utiliser le français
I18n.load_path << Dir[File.expand_path('locales') + '/*.yml']
I18n.default_locale = :fr

# Définir les traductions nécessaires pour les mois
I18n.backend.store_translations(:fr, {
  date: {
    month_names: [nil, "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"]
  }
})

app = proc do |env|
  # Récupérer la date et l'heure actuelles
  now = Time.now
  
  # Extraire le mois, l'heure, et les minutes
  mois = I18n.t('date.month_names')[now.month] # Nom complet du mois en français
  heure = now.strftime("%H") # Heure au format 24h
  minute = now.strftime("%M") # Minutes

  # Construire la réponse HTML
  response = <<-HTML
  <!DOCTYPE html>
  <html lang="fr">
  <head>
      <meta charset="UTF-8">
      <title>Mon Application Ruby</title>
  </head>
  <body>
      <h1>Bonjour, nous sommes au mois de #{mois} et il est exactement #{heure} h #{minute}.</h1>
  </body>
  </html>
  HTML

  [200, {"Content-Type" => "text/html; charset=utf-8"}, [response]]
end

run app

Enregistrez votre modification et pensez à aller Restart votre application Ruby.

Malheureusement, cela a généré une erreur :

Comment dépanner une application Ruby en erreur ?

Suite à cette erreur Ruby « We’re sorry, but something went wrong » nous nous sommes rendu dans l’outil Erreurs de cPanel.

Lire les logs Ruby dans cPanel

Voici les erreurs visibles :

Visiblement, l’erreur proviendrait de ce code :

# Configuration de I18n pour utiliser le français
I18n.load_path << Dir[File.expand_path('locales') + '/*.yml']
I18n.default_locale = :fr

En mettant une partie du code en commentaire, cela résout le problème :

Mise en commentaire code Ruby

Pour mettre en commentaire une ligne de code, insérez une dièse # avant celle-ci. Elle s’affichera alors en vert, en tant que commentaire.

Enregistrez votre modification et pensez à aller Restart votre application Ruby.

Voici le résultat :

Vous avez une application Ruby fonctionnelle sur un hébergement mutualisé avec cPanel et CloudLinux.

Sommaire de ce billet
Besoin d'aide ?

Le site WordPress speed.easyhoster.net ➚ permet de tester le potentiel des solutions d'Hébergement Web EasyHoster.