neonail-database/fix-apache-headers.sh
2025-08-10 18:09:07 +02:00

104 lines
3.0 KiB
Bash
Executable File

#!/bin/bash
echo "🔧 Fix: Apache mod_headers aktivieren"
echo "===================================="
# 1. Prüfe verfügbare Apache-Module
echo "1. 🔍 Verfügbare Apache-Module prüfen..."
apache2ctl -M 2>/dev/null | grep -E "(headers|rewrite)" || echo " ⚠️ apache2ctl nicht verfügbar"
# 2. Aktiviere mod_headers
echo "2. 🔧 mod_headers aktivieren..."
a2enmod headers 2>/dev/null || echo " ⚠️ a2enmod headers fehlgeschlagen"
# 3. Aktiviere mod_rewrite (falls nicht aktiviert)
echo "3. 🔧 mod_rewrite aktivieren..."
a2enmod rewrite 2>/dev/null || echo " ⚠️ a2enmod rewrite fehlgeschlagen"
# 4. Apache neu laden
echo "4. 🔄 Apache neu laden..."
systemctl reload apache2 2>/dev/null || service apache2 reload 2>/dev/null || echo " ⚠️ Apache reload fehlgeschlagen"
# 5. Prüfe .htaccess Syntax
echo "5. 🔍 .htaccess Syntax prüfen..."
if [ -f public/.htaccess ]; then
echo " 📋 public/.htaccess gefunden"
echo " 📄 Header-Befehle in .htaccess:"
grep -n "Header" public/.htaccess || echo " ⚠️ Keine Header-Befehle gefunden"
else
echo " ❌ public/.htaccess nicht gefunden"
fi
# 6. Alternative .htaccess ohne Header erstellen
echo "6. 🔧 Alternative .htaccess erstellen..."
cat > public/.htaccess.simple << 'EOF'
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Force HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
# Protect sensitive files
<Files ".env">
Order allow,deny
Deny from all
</Files>
<Files "database.sqlite">
Order allow,deny
Deny from all
</Files>
<Files "*.sqlite">
Order allow,deny
Deny from all
</Files>
EOF
echo " ✅ Alternative .htaccess erstellt"
# 7. Backup und ersetze .htaccess
echo "7. 🔄 .htaccess ersetzen..."
if [ -f public/.htaccess ]; then
cp public/.htaccess public/.htaccess.backup
echo " ✅ Backup erstellt: public/.htaccess.backup"
fi
cp public/.htaccess.simple public/.htaccess
echo " ✅ .htaccess ersetzt"
# 8. Test Apache-Konfiguration
echo "8. 🧪 Apache-Konfiguration testen..."
apache2ctl -t 2>/dev/null && echo " ✅ Apache-Konfiguration OK" || echo " ❌ Apache-Konfiguration fehlerhaft"
echo ""
echo "✅ Apache mod_headers Fix abgeschlossen!"
echo ""
echo "🔗 Testen Sie jetzt:"
echo "1. https://neonail.vogt.de.com"
echo "2. Admin-Panel: https://neonail.vogt.de.com/admin/users"
echo ""
echo "📝 Falls Problem besteht:"
echo "- Prüfen Sie: apache2ctl -M | grep headers"
echo "- Schauen Sie in: /var/log/apache2/error.log"