Apache-Konfiguration
Vollständige Apache-Einrichtungsanleitung für FeedbackPulse SaaS.
Voraussetzungen
- Apache 2.4+
mod_rewriteaktiviertmod_headersaktiviert (für Sicherheits-Header)- PHP 8.4+ (über
mod_phpoder PHP-FPM)
Erforderliche Module aktivieren
sudo a2enmod rewrite headers ssl
sudo systemctl restart apache2
Einfacher Virtual Host
Erstellen Sie eine neue Virtual-Host-Datei:
sudo nano /etc/apache2/sites-available/feedbackpulse.conf
Fügen Sie Folgendes ein:
<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>
# Protokollierung
ErrorLog ${APACHE_LOG_DIR}/feedbackpulse-error.log
CustomLog ${APACHE_LOG_DIR}/feedbackpulse-access.log combined
</VirtualHost>
Site aktivieren und neu starten:
sudo a2ensite feedbackpulse.conf
sudo a2dissite 000-default.conf # Standard-Site deaktivieren (optional)
sudo systemctl restart apache2
HTTPS Virtual Host (mit Let's Encrypt)
Nach dem Erhalt eines SSL-Zertifikats:
<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>
# Sicherheits-Header
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>
# HTTP auf HTTPS umleiten
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
Wildcard-Subdomain-Unterstützung (optional)
Wenn Sie Mandanten-Subdomains wie acme.yourdomain.com verwenden möchten:
<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>
Wichtig: Sie benötigen außerdem einen Wildcard-DNS-Eintrag (
*.yourdomain.com) und ein Wildcard-SSL-Zertifikat. Siehe Wildcard-DNS-Setup und SSL-Zertifikate.
Die .htaccess-Datei
FeedbackPulse enthält eine .htaccess-Datei im public/-Verzeichnis. Sie kümmert sich um:
- URL-Rewriting (schöne URLs ohne
index.php) - HTTPS erzwingen
- Sicherheits-Header setzen
Falls Ihre .htaccess nicht funktioniert, stellen Sie sicher, dass AllowOverride All in Ihrer Virtual-Host-Konfiguration gesetzt ist.
Die Standard-.htaccess enthält:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Und in public/.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
cPanel / Shared Hosting
Falls Sie Shared Hosting mit cPanel nutzen:
Option A: In public_html installieren
- Alle Dateien in
public_html/feedbackpulse/hochladen - In cPanel → Domains oder Addon-Domains das Document Root auf
public_html/feedbackpulse/publicsetzen - Falls Sie das Document Root nicht ändern können, verwenden Sie diesen Trick:
Erstellen Sie eine .htaccess in Ihrem public_html/-Stammverzeichnis:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ feedbackpulse/public/$1 [L]
</IfModule>
Option B: In einer Subdomain installieren
- Eine Subdomain in cPanel erstellen (z. B.
feedback.yourdomain.com) - Das Document Root auf den
public/-Ordner setzen - Alle FeedbackPulse-Dateien in das Subdomain-Verzeichnis hochladen
Option C: public/-Inhalte verschieben
Als letzten Ausweg bei restriktivem Hosting:
- Alle Dateien in ein Verzeichnis außerhalb von
public_html/hochladen (z. B./home/user/feedbackpulse/) - Den Inhalt von
public/inpublic_html/kopieren public_html/index.phpbearbeiten — die Pfade aktualisieren:
// Ändern Sie dies:
require __DIR__.'/../vendor/autoload.php';
// In dies:
require '/home/user/feedbackpulse/vendor/autoload.php';
// Ändern Sie dies:
$app = require_once __DIR__.'/../bootstrap/app.php';
// In dies:
$app = require_once '/home/user/feedbackpulse/bootstrap/app.php';
Warnung: Bei Option C müssen die Pfade nach jedem Update aktualisiert werden. Verwenden Sie wenn möglich Option A oder B.
Laragon (Lokale Windows-Entwicklung)
Laragon macht das sehr einfach:
- Den Ordner
feedbackpulse-saasinC:\laragon\www\ablegen - Laragon erstellt automatisch einen Virtual Host:
feedbackpulse-saas.test http://feedbackpulse-saas.testim Browser aufrufen- Laragon zeigt automatisch auf
public/!
Laragon Auto-Virtual-Host: Laragon erstellt Apache-Virtual-Hosts für jeden Ordner in
www/. Das Document Root wird automatisch aufpublic/gesetzt, wenn dieses Verzeichnis existiert.
Apache-Konfiguration prüfen
# Konfigurationssyntax testen
sudo apachectl configtest
# Prüfen ob mod_rewrite aktiviert ist
apache2ctl -M | grep rewrite
# Prüfen ob die Site aktiviert ist
ls /etc/apache2/sites-enabled/
# Apache neu starten
sudo systemctl restart apache2
Besuchen Sie https://yourdomain.com — Sie sollten die FeedbackPulse Landing-Page oder den Installer sehen.
Nächste Schritte
- SSL-Zertifikate — HTTPS einrichten
- Wildcard-DNS-Setup — Mandanten-Subdomains aktivieren
- Web-Installer-Walkthrough — den Installer ausführen