WordPress nie wgrywa plików większych niż 2 MB – jak zwiększyć limit?

Spis treści

Wprowadzenie – Pliki większe niż 2 MB nie są wgrywane

Próba wgrania pliku większego niż 2 MB kończy się błędem "Wgrany plik przekracza dyrektywę upload_max_filesize w php.ini". To jeden z najczęstszych problemów, z jakimi spotykają się użytkownicy WordPress, szczególnie przy pracy z dużymi obrazami, filmami czy dokumentami PDF.

Problem wynika z domyślnych ustawień PHP na większości serwerów hostingowych, które dla bezpieczeństwa i optymalizacji ustawiają konserwatywne limity. Jednak w praktyce biznesowej, gdzie strony często wymagają wgrywania wysokiej jakości materiałów, te limity stają się poważnym ograniczeniem.

W tym kompletnym przewodniku przeprowadzę Cię przez cały proces diagnostyki i zwiększania limitów uploadu, uwzględniając różne konfiguracje serwerów i scenariusze użycia.

Krok 1: Sprawdzenie upload_max_filesize w php.ini

Jak znaleźć i edytować plik php.ini

Plik php.ini to główny plik konfiguracyjny PHP, który kontroluje wszystkie ustawienia związane z przetwarzaniem plików. Aby go znaleźć:

  1. Zaloguj się do panelu administracyjnego swojego hostingu
  2. Poszukaj sekcji "PHP Settings", "PHP Configuration" lub "File Manager"
  3. Jeśli masz dostęp do cPanel, przejdź do "PHP Version" lub "MultiPHP INI Editor"
  4. W panelu Plesk szukaj "PHP Settings" dla danej domeny

Kluczowe parametry do zmiany

W pliku php.ini znajdź i zmień następujące wartości:

  • upload_max_filesize = 64M – maksymalny rozmiar pojedynczego pliku
  • post_max_size = 128M – maksymalny rozmiar całego żądania POST
  • memory_limit = 256M – maksymalna ilość pamięci dla skryptu PHP
  • max_execution_time = 300 – maksymalny czas wykonania skryptu
  • max_input_time = 300 – maksymalny czas przetwarzania danych wejściowych

Przykładowa konfiguracja dla średniej strony

Dla typowej strony firmowej lub bloga zalecane wartości to:

  • upload_max_filesize: 32M (dla obrazów i dokumentów)
  • post_max_size: 64M (większy niż upload_max_filesize)
  • memory_limit: 128M-256M (w zależności od zasobów serwera)
  • max_execution_time: 180-300 sekund

Krok 2: Analiza post_max_size i memory_limit

Rola post_max_size w procesie uploadu

Parametr post_max_size kontroluje maksymalny rozmiar całego żądania HTTP POST, które obejmuje nie tylko plik, ale także wszystkie inne dane formularza. Dlatego musi być większy niż upload_max_filesize.

Zasada: post_max_size ≥ upload_max_filesize + rozmiar pozostałych danych formularza

Optymalizacja memory_limit

Memory_limit określa ile pamięci RAM może użyć pojedynczy skrypt PHP. Podczas uploadu dużych plików WordPress potrzebuje dodatkowej pamięci do przetworzenia pliku.

Zalecane ustawienia: memory_limit powinno być co najmniej 2-3 razy większe niż upload_max_filesize.

Sprawdzenie aktualnych wartości

Aby sprawdzić aktualne wartości, utwórz plik info.php w głównym katalogu WordPress:

  1. Utwórz plik info.php z zawartością: funkcja phpinfo()
  2. Otwórz w przeglądarce: twojadomena.pl/info.php
  3. Znajdź sekcje "Core" i sprawdź wartości limitów
  4. Usuń plik info.php po sprawdzeniu (ze względów bezpieczeństwa)

Krok 3: Testowanie konfiguracji serwera

Testowanie nowych limitów

Po zmianie ustawień w php.ini przetestuj konfigurację:

  1. Zrestartuj serwer WWW (jeśli to konieczne)
  2. Sprawdź czy zmiany zostały zastosowane przez phpinfo()
  3. Przetestuj upload pliku o rozmiarze bliskim nowemu limitowi
  4. Sprawdź logi błędów PHP i serwera

Monitorowanie zasobów serwera

Podczas testowania dużych uploadów monitoruj:

  • Zużycie CPU serwera
  • Wykorzystanie pamięci RAM
  • Czasy ładowania strony
  • Błędy w logach serwera

Rozwiązywanie typowych problemów

Jeśli zwiększenie limitów nie pomaga:

  • Sprawdź czy zmiany w php.ini zostały zapisane
  • Upewnij się że restartowałeś serwer WWW
  • Sprawdź czy nie ma konfliktów z plikiem .htaccess
  • Przetestuj na różnych przeglądarkach

Krok 4: Rozwiązanie konfliktów z wtyczkami upload

Wtyczki które mogą wpływać na upload

Niektóre wtyczki WordPress mają własne ustawienia dotyczące uploadu plików:

  • Wtyczki bezpieczeństwa (Wordfence, Sucuri) – mogą blokować duże uploady
  • Optymalizatory obrazów – mogą mieć własne limity przetwarzania
  • Wtyczki cache – mogą powodować problemy z przetwarzaniem formularzy
  • Firewalle aplikacyjne – mogą blokować duże żądania POST

Diagnostyka konfliktów wtyczek

Aby zdiagnozować konflikty:

  1. Wyłącz wszystkie wtyczki
  2. Przetestuj upload dużego pliku
  3. Włączaj wtyczki pojedynczo, testując za każdym razem
  4. Znajdź wtyczkę która powoduje problem
  5. Sprawdź jej ustawienia lub poszukaj alternatywy

Konfiguracja wtyczek bezpieczeństwa

W popularnych wtyczkach bezpieczeństwa sprawdź:

  • Wordfence: Firewall → Rate Limiting → Maximum request size
  • Sucuri: Settings → Post Types → Maximum upload size
  • iThemes Security: Settings → System Tweaks → Upload file types

Jeśli interesuje Cię szersze spojrzenie na problemy z uploadem plików w WordPress, polecam przeczytać artykuł: WordPress nie wgrywa plików PDF – jak naprawić błąd uploadu?, gdzie znajdziesz więcej szczegółów na temat rozwiązywania różnych problemów z uploadem różnych typów plików.

Krok 5: Weryfikacja .htaccess dla Apache

Konfiguracja .htaccess dla zwiększenia limitów

Jeśli nie masz dostępu do php.ini, możesz użyć pliku .htaccess w głównym katalogu WordPress:

Przykładowa konfiguracja w pliku .htaccess dla zwiększenia limitów uploadu:

  • upload_max_filesize: 64M - maksymalny rozmiar pojedynczego pliku
  • post_max_size: 128M - maksymalny rozmiar całego żądania POST
  • memory_limit: 256M - maksymalna ilość pamięci dla skryptu PHP
  • max_execution_time: 300 - maksymalny czas wykonania skryptu
  • max_input_time: 300 - maksymalny czas przetwarzania danych wejściowych

Ograniczenia metody .htaccess

Pamiętaj że nie wszystkie hostingi pozwalają na zmianę limitów przez .htaccess. Ograniczenia zależą od:

  • Konfiguracji serwera Apache
  • Ustawień bezpieczeństwa hostingu
  • Wersji PHP i trybu działania

Rozwiązywanie problemów z .htaccess

Jeśli zmiany w .htaccess nie działają:

  1. Sprawdź czy plik .htaccess jest w głównym katalogu WordPress
  2. Upewnij się że serwer Apache obsługuje dyrektywy php_value
  3. Sprawdź czy nie ma błędów składni w .htaccess
  4. Przetestuj na czystym pliku .htaccess

Krok 6: Alternatywne metody uploadu dużych plików

Wtyczki do chunk upload

Dla bardzo dużych plików (>100MB) zaleca się użycie wtyczek które dzielą upload na mniejsze części:

  • Media File Uploader – obsługuje pliki do 2GB
  • Chunked File Upload – podział na części 5-10MB
  • Uploadify – zaawansowane zarządzanie uploadem

Upload przez FTP/SFTP

Dla plików powyżej 500MB najskuteczniejszą metodą jest bezpośredni upload przez FTP:

  1. Pobierz klienta FTP jak FileZilla lub Cyberduck
  2. Połącz się z serwerem używając danych z panelu hostingowego
  3. Prześlij pliki do folderu wp-content/uploads
  4. Użyj wtyczki jak "Add From Server" do importu do biblioteki mediów

Integracja z usługami chmurowymi

Dla profesjonalnych rozwiązań rozważ integrację z:

  • Amazon S3 z wtyczką WP Offload Media
  • Google Cloud Storage
  • Dropbox lub Google Drive
  • CDN z funkcją uploadu

Krok 7: Konfiguracja serwera Nginx

Specyfika serwerów Nginx

Dla serwerów Nginx konfiguracja wygląda inaczej niż dla Apache. Kluczowe parametry w pliku nginx.conf:

Kluczowe parametry konfiguracyjne dla serwerów Nginx w pliku nginx.conf:

  • client_max_body_size: 100m - maksymalny rozmiar ciała żądania klienta
  • client_body_timeout: 300 - maksymalny czas oczekiwania na ciało żądania
  • client_header_timeout: 300 - maksymalny czas oczekiwania na nagłówek żądania

Integracja z PHP-FPM

Dla prawidłowej pracy z PHP-FPM sprawdź również:

  • Ustawienia php.ini dla PHP-FPM
  • Konfigurację pool PHP-FPM
  • Limity pamięci i czasu wykonania

Testowanie konfiguracji Nginx

Po zmianach w konfiguracji Nginx:

  1. Sprawdź poprawność składni: nginx -t
  2. Zrestartuj Nginx: systemctl restart nginx
  3. Przetestuj upload dużego pliku
  4. Sprawdź logi błędów Nginx

Krok 8: Monitorowanie i optymalizacja wydajności

Narzędzia do monitorowania wydajności

Podczas zwiększania limitów uploadu monitoruj wydajność strony:

  • Google PageSpeed Insights
  • GTmetrix lub Pingdom
  • Wtyczki monitorujące jak Query Monitor
  • Logi serwera i bazy danych

Optymalizacja dla dużych uploadów

Aby zminimalizować wpływ dużych uploadów na wydajność:

  • Używaj CDN do serwowania statycznych plików
  • Optymalizuj obrazy przed uploadem
  • Rozważ oddzielny serwer dla mediów
  • Implementuj progresywny upload

Zabezpieczenia przy zwiększonych limitach

Większe limity oznaczają większe ryzyko bezpieczeństwa:

  • Regularnie aktualizuj WordPress i wtyczki
  • Używaj firewall aplikacyjnego
  • Monitoruj nietypowe aktywności uploadu
  • Backupuj stronę regularnie

Krok 9: Rozwiązania dla bardzo dużych plików

Pliki powyżej 500MB – podejście enterprise

Dla plików przekraczających 500MB standardowe rozwiązania mogą nie wystarczyć. Rozważ:

  • Dedykowany serwer mediów
  • Rozwiązania chmurowe jak AWS S3
  • Streaming przez specjalistyczne wtyczki
  • Integrację z zewnętrznymi platformami

Optymalizacja bazy danych

Duże uploady mogą wpływać na wydajność bazy danych:

  • Regularnie optymalizuj tabele WordPress
  • Używaj cachingu bazy danych
  • Rozważ oddzielną bazę dla mediów
  • Monitoruj zapytania SQL

Planowanie skalowania

Przy planowaniu długoterminowym uwzględnij:

  • Wzrost ruchu i liczby uploadów
  • Potrzebę większych zasobów serwera
  • Koszty przechowywania dużych plików
  • Strategia backupu i odzyskiwania danych

Podsumowanie – Bezproblemowy upload dużych plików

Zwiększenie limitów uploadu w WordPress to proces wymagający uwzględnienia wielu czynników – od konfiguracji serwera przez optymalizację wydajności po kwestie bezpieczeństwa.

Checklista skutecznej konfiguracji

Podstawowe ustawienia PHP:

  • upload_max_filesize: 32-64M (w zależności od potrzeb)
  • post_max_size: 64-128M (zawsze większy niż upload_max_filesize)
  • memory_limit: 128-256M (2-3x większy niż post_max_size)
  • max_execution_time: 180-300 sekund

Bezpieczeństwo i monitoring:

  • Regularne aktualizacje WordPress i wtyczek
  • Firewall aplikacyjny
  • Monitorowanie logów serwera
  • Backup całej strony

Optymalizacja wydajności:

  • CDN dla statycznych plików
  • Optymalizacja obrazów przed uploadem
  • Caching na różnych poziomach
  • Monitorowanie zasobów serwera

Najczęstsze błędy i ich rozwiązania

Błąd #1: Tylko upload_max_filesize zwiększone

Rozwiązanie: Zawsze zwiększaj wszystkie trzy kluczowe limity razem

Błąd #2: Brak restartu serwera

Rozwiązanie: Po zmianie php.ini zawsze restartuj serwer WWW

Błąd #3: Konflikty z wtyczkami

Rozwiązanie: Testuj upload z wyłączonymi wtyczkami

Błąd #4: Niewystarczające zasoby serwera

Rozwiązanie: Upgrade hostingu lub optymalizacja istniejących zasobów

Podsumowanie

Prawidłowo skonfigurowany system uploadu w WordPress to podstawa efektywnej pracy z treścią. Pamiętaj że zwiększenie limitów to nie tylko zmiana kilku wartości w konfiguracji, ale kompleksowe podejście uwzględniające wydajność, bezpieczeństwo i skalowalność.

Dla większości stron biznesowych wystarczające są limity w zakresie 32-64MB dla pojedynczych plików. Dla specjalistycznych zastosowań z bardzo dużymi plikami rozważ dedykowane rozwiązania chmurowe lub enterprise.

Pamiętaj – testuj każdą zmianę konfiguracji i miej plan backupu na wypadek problemów. Dzięki temu zwiększenie limitów uploadu stanie się bezproblemowym procesem, który usprawni pracę z Twoją stroną WordPress.

Masz problemy z konfiguracją limitów uploadu w WordPress? Chętnie pomożemy Ci zoptymalizować ustawienia serwera i wdrożyć skuteczne rozwiązania dla dużych plików. Skontaktuj się z nami, aby uzyskać profesjonalne wsparcie w konfiguracji.