Configuration Apache
Guide complet de configuration Apache pour FeedbackPulse SaaS.
Prérequis
- Apache 2.4+
mod_rewriteactivémod_headersactivé (pour les en-têtes de sécurité)- PHP 8.4+ (via
mod_phpou 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
- Téléversez tous les fichiers dans
public_html/feedbackpulse/ - Dans cPanel → Domaines ou Domaines additionnels, définissez la racine du document sur
public_html/feedbackpulse/public - 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
- Créez un sous-domaine dans cPanel (ex. :
feedback.yourdomain.com) - Définissez sa racine de document sur le dossier
public/ - 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 :
- Téléversez tous les fichiers dans un répertoire hors de
public_html/(ex. :/home/user/feedbackpulse/) - Copiez le contenu de
public/danspublic_html/ - 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 :
- Placez le dossier
feedbackpulse-saasdansC:\laragon\www\ - Laragon crée automatiquement un hôte virtuel :
feedbackpulse-saas.test - Visitez
http://feedbackpulse-saas.testdans votre navigateur - 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 surpublic/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
- Certificats SSL — configurer HTTPS
- Configuration DNS Wildcard — activer les sous-domaines locataires
- Présentation de l'installateur web — lancer l'installateur