159 lines
4.8 KiB
Bash
Executable File
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"
|