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

159 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
echo "🚨 Force Fix: Upload-Limits erzwingen"
echo "===================================="
# 1. Laravel Cache komplett leeren
echo "1. 🧹 Laravel Cache komplett leeren..."
php artisan cache:clear 2>/dev/null || echo " ⚠️ cache:clear übersprungen"
php artisan config:clear 2>/dev/null || echo " ⚠️ config:clear übersprungen"
php artisan route:clear 2>/dev/null || echo " ⚠️ route:clear übersprungen"
php artisan view:clear 2>/dev/null || echo " ⚠️ view:clear übersprungen"
php artisan config:cache 2>/dev/null || echo " ⚠️ config:cache übersprungen"
# 2. Bootstrap Cache leeren
echo "2. 🗂️ Bootstrap Cache leeren..."
rm -f bootstrap/cache/*.php 2>/dev/null || echo " ⚠️ bootstrap/cache/*.php nicht gefunden"
# 3. .htaccess Upload-Limits erzwingen
echo "3. 🔧 .htaccess Upload-Limits erzwingen..."
cat > public/.htaccess << 'EOF'
<IfModule mod_rewrite.c>
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>
# Upload-Limits für Bild-Upload
php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value max_file_uploads 20
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300
# 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 " ✅ .htaccess mit Upload-Limits erstellt"
# 4. PHP-Konfiguration prüfen
echo "4. 🔍 PHP-Konfiguration prüfen..."
php fix-upload-limits.php
# 5. Apache neu laden
echo "5. 🔄 Apache neu laden..."
systemctl reload apache2 2>/dev/null || service apache2 reload 2>/dev/null || echo " ⚠️ Apache reload fehlgeschlagen"
# 6. Test-Script erstellen
echo "6. 🧪 Test-Script erstellen..."
cat > test-upload-limits.php << 'EOF'
<?php
// Test der Upload-Limits
echo "📸 Test der Upload-Limits\n";
echo "========================\n\n";
// 1. PHP-Upload-Limits
echo "1. PHP-Upload-Limits:\n";
$limits = [
'upload_max_filesize' => ini_get('upload_max_filesize'),
'post_max_size' => ini_get('post_max_size'),
'max_file_uploads' => ini_get('max_file_uploads'),
'memory_limit' => ini_get('memory_limit')
];
foreach ($limits as $setting => $value) {
echo " - $setting: $value\n";
}
// 2. Laravel Validierungsregeln prüfen
echo "\n2. Laravel Validierungsregeln:\n";
$controllerPath = 'app/Http/Controllers/UserNailPolishController.php';
if (file_exists($controllerPath)) {
$content = file_get_contents($controllerPath);
if (preg_match('/image.*max:(\d+)/', $content, $matches)) {
$maxKB = $matches[1];
$maxMB = $maxKB / 1024;
echo " - Bild-Upload-Limit: {$maxKB}KB ({$maxMB}MB)\n";
if ($maxMB >= 10) {
echo " ✅ Upload-Limit ist ausreichend (>= 10MB)\n";
} else {
echo " ❌ Upload-Limit ist zu klein (< 10MB)\n";
}
} else {
echo " ❌ Keine Bild-Upload-Validierung gefunden\n";
}
} else {
echo " ❌ Controller nicht gefunden\n";
}
// 3. View-Text prüfen
echo "\n3. View-Text:\n";
$viewPath = 'resources/views/user-nail-polishes/create.blade.php';
if (file_exists($viewPath)) {
$content = file_get_contents($viewPath);
if (preg_match('/Maximale Größe: (\d+MB)/', $content, $matches)) {
echo " - Angezeigte Größe: {$matches[1]}\n";
if ($matches[1] === '10MB') {
echo " ✅ View zeigt korrekte Größe an\n";
} else {
echo " ❌ View zeigt falsche Größe an\n";
}
} else {
echo " ❌ Keine Größenangabe in View gefunden\n";
}
} else {
echo " ❌ View nicht gefunden\n";
}
echo "\n✅ Upload-Limits Test abgeschlossen!\n";
echo "🔗 Testen Sie jetzt: https://neonail.vogt.de.com/create-nail-polish\n";
?>
EOF
echo " ✅ Test-Script erstellt"
echo ""
echo "✅ Force Upload-Limits Fix abgeschlossen!"
echo ""
echo "🔗 Testen Sie jetzt:"
echo "1. https://neonail.vogt.de.com/create-nail-polish"
echo "2. Versuchen Sie ein Handy-Foto hochzuladen"
echo ""
echo "📝 Falls Problem besteht:"
echo "- Führen Sie php test-upload-limits.php aus"
echo "- Leeren Sie Browser-Cache"
echo "- Testen Sie in einem Inkognito-Fenster"