Déploiement étape par étape d’une application web sur O2Switch

Déploiement étape par étape d’une application web sur O2Switch

Je vais vous expliquer de façon détaillée comment déployer votre application développée localement (Laravel 11 + React 19 + Axios + MySQL + Bootstrap) sur un hébergement O2Switch. Suivez ces étapes dans l’ordre pour un déploiement réussi.

Étape 1: Préparation de votre application locale

Avant de déployer, assurez-vous que votre application est prête:

  1. Finaliser le développement local:
# Vérifier que tout fonctionne localement
php artisan serve
# Dans un autre terminal
cd frontend
npm start
  1. Préparer votre fichier .env de production:
APP_NAME="VotreApp"
APP_ENV=production
APP_KEY=base64:votreclé
APP_DEBUG=false
APP_URL=https://votredomaine.com

LOG_CHANNEL=stack
LOG_LEVEL=error

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=votre_db_nom  # À configurer sur O2Switch
DB_USERNAME=votre_db_user # À configurer sur O2Switch
DB_PASSWORD=votre_db_pass # À configurer sur O2Switch

# Désactiver les services de développement
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
  1. Construire la version de production React:
cd frontend
# S'assurer que l'URL de l'API pointe vers la production
# Vérifier dans src/api/config.js ou équivalent

# Puis construire
npm run build

Étape 2: Accéder à votre compte O2Switch

  1. Connectez-vous à l’espace client O2Switch:
  2. Accédez au CPanel:
    • Dans le tableau de bord, cliquez sur “CPanel”
    • Vous serez redirigé vers l’interface de gestion de votre hébergement

Étape 3: Création de la base de données

  1. Créer une nouvelle base de données:
    • Dans CPanel, localisez la section “Bases de données”
    • Cliquez sur “MySQL Databases”
    • Créez une nouvelle base de données (notez le nom)
    • Créez un nouvel utilisateur de base de données
    • Attribuez tous les privilèges à cet utilisateur sur votre base de données
  2. Notez les informations:
    • Nom de la base de données (généralement préfixé par votre nom d’utilisateur O2Switch)
    • Nom d’utilisateur de la base de données
    • Mot de passe de l’utilisateur

Étape 4: Préparer votre package de déploiement

  1. Optimiser Laravel pour la production:
# À la racine de votre projet Laravel
composer install --no-dev --optimize-autoloader
php artisan key:generate
php artisan config:clear
php artisan cache:clear
  1. Créer un package de déploiement:
# Créer un dossier de déploiement
mkdir deploy

# Copier les fichiers Laravel essentiels
cp -r app bootstrap config database public resources routes storage vendor composer.json artisan deploy/

# Copier le .env de production
cp .env.production deploy/.env

# Copier le build React dans le dossier public
mkdir -p deploy/public/build
cp -r frontend/build/* deploy/public/build/

# Créer une archive pour faciliter le transfert
cd deploy
zip -r ../deploy-package.zip .
cd ..

Étape 5: Téléchargement des fichiers sur O2Switch

  1. Accéder à votre espace via FTP/SFTP:
    • Dans CPanel, trouvez vos informations FTP
    • Utilisez un client FTP comme FileZilla
    • Entrez l’hôte (généralement ftp.votredomaine.com)
    • Utilisez votre nom d’utilisateur et mot de passe O2Switch
  2. Télécharger les fichiers:
    • Connectez-vous à votre serveur
    • Naviguez vers le dossier public_html (ou le sous-dossier correspondant à votre domaine)
    • Téléchargez l’archive deploy-package.zip
    • Décompressez l’archive directement sur le serveur ou téléchargez-la décompressée
  3. Organisation des fichiers sur O2Switch:
    • Le contenu du dossier public de Laravel doit être dans public_html
    • Le reste de l’application peut être placé dans un dossier parent

    Structure recommandée:

/home/votre_utilisateur/
├── public_html/           # Point d'entrée web
   ├── index.php
   ├── .htaccess
   ├── build/             # Fichiers React compilés
   ├── css/
   ├── js/
   └── ...

└── laravel/               # Code Laravel (hors web root)
    ├── app/
    ├── bootstrap/
    ├── config/
    ├── ...
    └── vendor/
  1. Ajuster index.php:
    • Modifiez le fichier public_html/index.php pour pointer vers les bons dossiers:
// Remplacer
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

// Par
require __DIR__.'/../laravel/vendor/autoload.php';
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

Étape 6: Configuration des permissions

  1. Définir les bonnes permissions:
# Via SSH si disponible, ou via le gestionnaire de fichiers du CPanel
chmod -R 755 public_html
chmod -R 755 laravel
chmod -R 775 laravel/storage
chmod -R 775 laravel/bootstrap/cache
  1. Créer un fichier .htaccess dans public_html:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    
    # Forcer HTTPS
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # Gérer les routes Laravel
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

# Protection des fichiers sensibles
<FilesMatch "^\.env|composer\.json|package\.json|artisan$">
    Order allow,deny
    Deny from all
</FilesMatch>

# Activer la compression
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript text/javascript application/json
</IfModule>

Étape 7: Configuration de la base de données

  1. Importer votre schéma de base de données:
    • Accédez à phpMyAdmin via CPanel
    • Sélectionnez votre base de données
    • Utilisez l’onglet “Importer” pour charger une sauvegarde SQL
    • Ou utilisez les migrations Laravel (voir étape suivante)
  2. Exécuter les migrations Laravel:
# Si vous avez accès SSH
cd /home/votre_utilisateur/laravel
php artisan migrate --force

# Sinon, créez un script temporaire dans public_html
# Créez migrate.php avec ce contenu:
<?php
shell_exec('cd /home/votre_utilisateur/laravel && php artisan migrate --force');
echo "Migrations terminées";
?>

# Accédez à https://votredomaine.com/migrate.php
# Supprimez le fichier après utilisation

Étape 8: Configuration finale et test

  1. Finalisez la configuration Laravel:
# Si accès SSH disponible
cd /home/votre_utilisateur/laravel
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan storage:link
  1. Testez votre application:
    • Visitez https://votredomaine.com
    • Testez la navigation et les fonctionnalités principales
    • Vérifiez que les appels API fonctionnent correctement
    • Inspectez la console du navigateur pour détecter d’éventuelles erreurs
  2. Vérifiez les logs en cas de problème:
    • Dans laravel/storage/logs/laravel.log
    • Dans les logs d’erreur Apache via CPanel

Étape 9: Configuration API React-Laravel

  1. Vérifiez la configuration Axios:
    • Assurez-vous que vos requêtes Axios pointent vers les bonnes URLs:
// Dans votre code React compilé
axios.defaults.baseURL = 'https://votredomaine.com/api';
  1. Configurez CORS sur Laravel:
    • Modifiez le fichier laravel/config/cors.php:
'paths' => ['api/*'],
'allowed_origins' => ['https://votredomaine.com'],
'allowed_methods' => ['*'],
'allowed_headers' => ['*'],
'exposed_headers' => false,
'max_age' => 0,
'supports_credentials' => true,

Étape 10: Mise en place de la maintenance

  1. Configurez des sauvegardes automatiques:
    • Dans CPanel, recherchez l’outil “Backup”
    • Programmez des sauvegardes régulières de votre base de données et fichiers
  2. Configurez un monitoring basique:
    • Inscrivez-vous sur UptimeRobot (gratuit)
    • Ajoutez un moniteur pour vérifier que votre site est en ligne
  3. Préparez une procédure de mise à jour:
    • Pour les futures mises à jour, sauvegardez toujours avant
    • Suivez un processus similaire mais en préservant les données utilisateur

Résolution des problèmes courants

  • Erreur 500 : Vérifiez les logs Laravel et les permissions des dossiers storage et bootstrap/cache
  • API inaccessible : Vérifiez la configuration CORS et les redirections HTTPS
  • Assets React non chargés : Vérifiez les chemins dans le build et le .htaccess
  • Problèmes de base de données : Vérifiez les informations de connexion dans le .env

Ce guide vous permet de déployer efficacement votre application Laravel 11 + React 19 sur O2Switch. Adaptez les étapes selon les spécificités de votre projet et de votre configuration O2Switch.

 

 

Documentation o2switch