Zum Hauptinhalt springen

Apache-Konfiguration

Vollständige Apache-Einrichtungsanleitung für FeedbackPulse SaaS.


Voraussetzungen

  • Apache 2.4+
  • mod_rewrite aktiviert
  • mod_headers aktiviert (für Sicherheits-Header)
  • PHP 8.4+ (über mod_php oder 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

  1. Alle Dateien in public_html/feedbackpulse/ hochladen
  2. In cPanel → Domains oder Addon-Domains das Document Root auf public_html/feedbackpulse/public setzen
  3. 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

  1. Eine Subdomain in cPanel erstellen (z. B. feedback.yourdomain.com)
  2. Das Document Root auf den public/-Ordner setzen
  3. Alle FeedbackPulse-Dateien in das Subdomain-Verzeichnis hochladen

Option C: public/-Inhalte verschieben

Als letzten Ausweg bei restriktivem Hosting:

  1. Alle Dateien in ein Verzeichnis außerhalb von public_html/ hochladen (z. B. /home/user/feedbackpulse/)
  2. Den Inhalt von public/ in public_html/ kopieren
  3. public_html/index.php bearbeiten — 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:

  1. Den Ordner feedbackpulse-saas in C:\laragon\www\ ablegen
  2. Laragon erstellt automatisch einen Virtual Host: feedbackpulse-saas.test
  3. http://feedbackpulse-saas.test im Browser aufrufen
  4. 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 auf public/ 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