Déployer React + Express.js + MySQL sur cPanel (Guide Complet)

Si vous développez une application web moderne, il est fréquent d’utiliser la combinaison suivante : React (frontend), Express.js (API) et MySQL (base de données). Ce guide vous montre pas à pas comment les faire dialoguer sur un hébergement cPanel.

✅ Architecture générale de l’application

/home/username/
├── public_html/              → Application React (build)
├── api/                      → Backend Express.js
│    ├── app.js
│    └── package.json
└── Base MySQL                → Gérée dans phpMyAdmin

1️⃣ Déployer React dans cPanel

  1. Sur votre ordinateur, générez la version de production :
    npm run build
  2. Ouvrez cPanel → File Manager.
  3. Accédez à public_html/.
  4. Téléversez le contenu du dossier build/ dans public_html/.

Votre application React est maintenant accessible : https://votre-domaine.com

2️⃣ Déployer Express.js via Node.js App Manager

Si votre cPanel dispose de Setup Node.js App, vous pouvez faire tourner Express directement… Voir Article ici

  1. Allez dans cPanel → Software → Setup Node.js App.
  2. Cliquez Create Application.
  3. Réglez :
    • Version Node.js : 16+
    • Mode : Production
    • Dossier applicatif : api
    • Fichier d’entrée : app.js
  4. Dans l’interface, exécutez Run NPM Install puis Run Application.

Votre backend Express est en ligne 🎉

3️⃣ Connecter Express à MySQL

Dans phpMyAdmin (cPanel) : créez une base, un utilisateur et attribuez-lui tous les privilèges sur la base… Voir article ici

const express = require('express');
const cors = require('cors');
const mysql = require('mysql2');

const app = express();
app.use(express.json());
app.use(cors({ origin: 'https://votre-domaine.com' }));

const db = mysql.createConnection({
  host: 'localhost',
  user: 'nom_utilisateur_mysql',
  password: 'mot_de_passe_mysql',
  database: 'nom_base'
});

app.get('/api/users', (req, res) => {
  db.query('SELECT * FROM users', (err, results) => {
    if (err) return res.status(500).send(err);
    res.json(results);
  });
});

app.listen(3001, () => console.log('API Running on port 3001'));

Note : dans Node.js App, définissez PORT=3001 si nécessaire, puis redémarrez l’application.

4️⃣ Faire communiquer le Frontend (React) avec le Backend (Express)

import axios from 'axios';

axios.get('https://votre-domaine.com:3001/api/users')
  .then(res => console.log(res.data))
  .catch(err => console.error(err));

🛠️ Astuce : Proxy React (facultatif)

{
  "proxy": "https://votre-domaine.com:3001"
}
axios.get('/api/users');

🎯 Récapitulatif

ComposantEmplacement
Reactpublic_html/ (version build)
Express.jsNode.js App Manager dans /api
MySQLphpMyAdmin (connexion localhost)

🔥 Aller plus loin

  • Pack ZIP complet (frontend + backend prêt à déployer)
  • Tutoriel vidéo d’installation
  • API sécurisée avec JWT
  • Upload d’images compatible cPanel

Dites : “Je veux le pack ZIP” ou “Je veux la vidéo” et je vous le prépare.

Par nitrohost

❓ FAQ — Questions Fréquentes

Puis-je utiliser React et Express sur un hébergement mutualisé cPanel ?

Oui, si votre hébergeur propose le module Node.js App Manager. Sinon, il vous faudra un VPS.

Dois-je mettre Express dans public_html ?

Non. public_html ne doit contenir que le build React. Express doit être dans un dossier séparé, comme /api.

Quel host MySQL utiliser dans Express ?

Utilisez localhost, car la base est interne au serveur cPanel.

Comment résoudre l’erreur 404 de l’API Express ?

Vérifiez le port défini dans l’application Node.js et redémarrez la via Run Application.

Lisez Avant de Partir !

✅ Rejoignez plus de 6 000 organisations francophones 
🇫🇷 qui nous font déjà confiance.
  • Nous rendons l’hébergement web accessible
  • Équipement moderne pour un prix dérisoire
  • Votre participation nous aide à améliorer l’entrepreneuriat des personnes à faible revenu.
VOIR NOS OFFRES
close-link
//></div>
Notre équipe de support client est sur WhatsApp pour répondre à vos questions. Demandez-nous n'importe quoi !</div></div></div><div class=