Aller au contenu principal

Configuration Apache

Guide complet de configuration Apache pour FeedbackPulse SaaS.


Prérequis

  • Apache 2.4+
  • mod_rewrite activé
  • mod_headers activé (pour les en-têtes de sécurité)
  • PHP 8.4+ (via mod_php ou PHP-FPM)

Activer les modules requis

sudo a2enmod rewrite headers ssl
sudo systemctl restart apache2

Hôte virtuel de base

Créez un nouveau fichier d'hôte virtuel :

sudo nano /etc/apache2/sites-available/feedbackpulse.conf

Collez le contenu suivant :

<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/feedbackpulse-saas/public

<Directory /var/www/feedbackpulse-saas/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>

# Journaux
ErrorLog ${APACHE_LOG_DIR}/feedbackpulse-error.log
CustomLog ${APACHE_LOG_DIR}/feedbackpulse-access.log combined
</VirtualHost>

Activez le site et redémarrez :

sudo a2ensite feedbackpulse.conf
sudo a2dissite 000-default.conf # Désactiver le site par défaut (optionnel)
sudo systemctl restart apache2

Hôte virtuel HTTPS (avec Let's Encrypt)

Après avoir obtenu un certificat SSL :

<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/feedbackpulse-saas/public

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem

<Directory /var/www/feedbackpulse-saas/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>

# En-têtes de sécurité
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

ErrorLog ${APACHE_LOG_DIR}/feedbackpulse-ssl-error.log
CustomLog ${APACHE_LOG_DIR}/feedbackpulse-ssl-access.log combined
</VirtualHost>

# Redirection HTTP vers HTTPS
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>

Support des sous-domaines génériques (optionnel)

Pour les sous-domaines locataires comme acme.yourdomain.com :

<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias *.yourdomain.com
DocumentRoot /var/www/feedbackpulse-saas/public

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem

<Directory /var/www/feedbackpulse-saas/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Important : Vous avez également besoin d'un enregistrement DNS générique (*.yourdomain.com) et d'un certificat SSL générique. Consultez Configuration DNS Wildcard et Certificats SSL.


Le fichier .htaccess

FeedbackPulse est livré avec un fichier .htaccess dans le répertoire public/. Il gère :

  • La réécriture d'URL (URLs propres sans index.php)
  • La redirection forcée vers HTTPS
  • La définition des en-têtes de sécurité

Si votre .htaccess ne fonctionne pas, assurez-vous que AllowOverride All est défini dans la configuration de votre hôte virtuel.

Le .htaccess par défaut inclut :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Et dans public/.htaccess :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

cPanel / Hébergement partagé

Si vous utilisez un hébergement partagé avec cPanel :

Option A : Installation dans public_html

  1. Téléversez tous les fichiers dans public_html/feedbackpulse/
  2. Dans cPanel → Domaines ou Domaines additionnels, définissez la racine du document sur public_html/feedbackpulse/public
  3. Si vous ne pouvez pas modifier la racine du document, utilisez cette astuce :

Créez un .htaccess à la racine de votre public_html/ :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ feedbackpulse/public/$1 [L]
</IfModule>

Option B : Installation dans un sous-domaine

  1. Créez un sous-domaine dans cPanel (ex. : feedback.yourdomain.com)
  2. Définissez sa racine de document sur le dossier public/
  3. Téléversez tous les fichiers FeedbackPulse dans le répertoire du sous-domaine

Option C : Déplacer le contenu de public/

En dernier recours sur un hébergement restrictif :

  1. Téléversez tous les fichiers dans un répertoire hors de public_html/ (ex. : /home/user/feedbackpulse/)
  2. Copiez le contenu de public/ dans public_html/
  3. Modifiez public_html/index.php — mettez à jour les chemins :
// Changer ceci :
require __DIR__.'/../vendor/autoload.php';
// En ceci :
require '/home/user/feedbackpulse/vendor/autoload.php';

// Changer ceci :
$app = require_once __DIR__.'/../bootstrap/app.php';
// En ceci :
$app = require_once '/home/user/feedbackpulse/bootstrap/app.php';

Attention : L'option C nécessite de mettre à jour les chemins après chaque mise à jour. Préférez l'option A ou B si possible.


Laragon (développement local Windows)

Laragon rend cette configuration incroyablement simple :

  1. Placez le dossier feedbackpulse-saas dans C:\laragon\www\
  2. Laragon crée automatiquement un hôte virtuel : feedbackpulse-saas.test
  3. Visitez http://feedbackpulse-saas.test dans votre navigateur
  4. Laragon pointe automatiquement vers public/ !

Hôte virtuel automatique Laragon : Laragon crée des hôtes virtuels Apache pour chaque dossier dans www/. La racine du document est automatiquement définie sur public/ si ce répertoire existe.


Vérifier la configuration Apache

# Tester la syntaxe de la configuration
sudo apachectl configtest

# Vérifier si mod_rewrite est activé
apache2ctl -M | grep rewrite

# Vérifier si le site est activé
ls /etc/apache2/sites-enabled/

# Redémarrer Apache
sudo systemctl restart apache2

Visitez https://yourdomain.com — vous devriez voir la page d'accueil ou l'installateur de FeedbackPulse.


Étapes suivantes