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
La première étape sera donc de vous connecter à votre compte cPanel.
Ensuite, rendez-vous dans l’outil Setup Ruby App.

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

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 :

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

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

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.

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

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

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.
Voici à quoi l’app Ruby ressemble maintenant :

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

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.

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.

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 :

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.