Spis treści
- Wprowadzenie – Przyczyny błędu rozmiaru pliku
- Zrozumienie dyrektyw PHP upload_max_filesize i post_max_size
- Metody modyfikacji limitów plików
- Konfiguracja php.ini
- Modyfikacja .htaccess
- Użycie funkcji WordPress
- Alternatywne metody przesyłania dużych plików
- Optymalizacja przesyłania plików
- Testowanie poprawności po zmianach
- Podsumowanie – Bezproblemowe przesyłanie plików
Wprowadzenie – Przyczyny błędu rozmiaru pliku
Błąd "The uploaded file exceeds upload_max_filesize" to jeden z najczęstszych problemów spotykanych przez użytkowników WordPress podczas przesyłania plików. Ten komunikat pojawia się, gdy próbujemy wgrać plik większy niż dopuszczalny limit określony w konfiguracji serwera.
Domyślne limity PHP często wynoszą zaledwie 2 MB lub 8 MB, co jest niewystarczające dla współczesnych potrzeb – duże obrazy, pliki wideo, dokumenty PDF czy paczki z motywami mogą łatwo przekroczyć te ograniczenia. Na szczęście istnieje kilka skutecznych metod zwiększenia tych limitów.
W tym przewodniku przeprowadzę Cię przez wszystkie dostępne sposoby modyfikacji limitów przesyłania plików, od najprostszych rozwiązań po zaawansowane techniki konfiguracyjne.
Zrozumienie dyrektyw PHP upload_max_filesize i post_max_size
Zanim przejdziemy do rozwiązań, kluczowe jest zrozumienie dwóch głównych dyrektyw PHP, które kontrolują limity przesyłania plików:
upload_max_filesize
Ta dyrektywa określa maksymalny rozmiar pojedynczego pliku, który można przesłać na serwer. Jest to bezpośrednia przyczyna pojawienia się komunikatu o błędzie.
post_max_size
Ta dyrektywa określa maksymalny rozmiar całych danych POST, które mogą zostać przesłane. Musi być zawsze większa lub równa upload_max_filesize, ponieważ oprócz samego pliku, w danych POST mogą znajdować się również inne informacje.
Ważne zasady konfiguracji:
- post_max_size ≥ upload_max_filesize – zawsze ustawiaj post_max_size na wartość równą lub większą niż upload_max_filesize
- memory_limit ≥ post_max_size – pamięć RAM powinna być wystarczająca do przetworzenia przesłanych danych
- max_execution_time – czas wykonywania skryptu musi być wystarczająco długi dla dużych plików
- max_input_time – czas na przetworzenie danych wejściowych
Metody modyfikacji limitów plików
WordPress i serwer WWW oferują kilka różnych sposobów modyfikacji limitów przesyłania plików. Wybór odpowiedniej metody zależy od dostępu do serwera i poziomu uprawnień:
Hierarchia metod (od najprostszej do najtrudniejszej):
- Panel hostingowy (cPanel, DirectAdmin, Plesk) – najprostsza metoda dla użytkowników hostingu współdzielonego
- Plik .htaccess – działa na serwerach Apache z włączonym modułem mod_php
- Plik functions.php motywu – metoda specyficzna dla WordPress
- Plik php.ini – wymaga dostępu do konfiguracji PHP
- Plik .user.ini – alternatywa dla php.ini na niektórych hostingu
Konfiguracja php.ini
Plik php.ini to główny plik konfiguracyjny PHP, który pozwala na precyzyjne dostosowanie wszystkich parametrów języka. Modyfikacja tego pliku daje najwięcej kontroli nad limitem przesyłania plików.
Lokalizacja pliku php.ini:
- Hosting współdzielony: często dostępny przez panel hostingowy lub w głównym katalogu
- Serwer VPS/dedykowany: zazwyczaj w /etc/php/[wersja]/apache2/php.ini lub /etc/php/[wersja]/cli/php.ini
- Localhost: w folderze instalacji PHP (np. C:/php/php.ini)
Rekomendowane ustawienia dla większości stron WordPress:
- upload_max_filesize = 64M – pozwala na przesyłanie plików do 64 MB
- post_max_size = 128M – podwójna wartość dla bezpieczeństwa
- memory_limit = 256M – wystarczająca pamięć dla operacji na plikach
- max_execution_time = 300 – 5 minut na przetwarzanie
- max_input_time = 300 – 5 minut na odbieranie danych
Procedura modyfikacji:
- Zlokalizuj plik php.ini
- Utwórz kopię zapasową oryginalnego pliku
- Zmodyfikuj odpowiednie dyrektywy
- Zrestartuj serwer Apache/PHP
- Sprawdź efekty w panelu WordPress
Modyfikacja .htaccess
Plik .htaccess to specjalny plik konfiguracyjny serwera Apache, który pozwala na zmianę ustawień dla konkretnego katalogu. Jest to często najprostsza metoda dla użytkowników hostingu współdzielonego.
Dodanie dyrektyw do pliku .htaccess:
W głównym katalogu WordPress znajdź plik .htaccess i dodaj na jego końcu następujące linie:
Podstawowa konfiguracja:
- php_value upload_max_filesize 64M
- php_value post_max_size 128M
- php_value memory_limit 256M
- php_value max_execution_time 300
- php_value max_input_time 300
Ważne uwagi:
- Upewnij się, że mod_php jest włączony – dyrektywy php_value działają tylko z mod_php
- Nie edytuj sekcji WordPress – dodaj nowe dyrektywy po istniejących regułach WordPress
- Testuj po każdej zmianie – błąd w .htaccess może spowodować błąd 500
- Uprawnienia pliku – .htaccess powinien mieć uprawnienia 644
Alternatywa dla serwerów LiteSpeed:
Jeśli używasz serwera LiteSpeed, możesz potrzebować dodatkowej dyrektywy:
- Litespeed php_value upload_max_filesize 64M
Użycie funkcji WordPress
WordPress oferuje wbudowane funkcje, które pozwalają na modyfikację limitów przesyłania plików bez bezpośredniej ingerencji w pliki konfiguracyjne serwera.
Metoda 1: functions.php motywu
Dodaj następujący kod do pliku functions.php swojego motywu (potomek jest zalecany):
Kod do dodania:
- @ini_set('upload_max_filesize', '64M');
- @ini_set('post_max_size', '128M');
- @ini_set('max_execution_time', '300');
Metoda 2: Filtry WordPress
WordPress udostępnia specjalne filtry, które pozwalają na modyfikację limitów:
Filtr upload_size_limit:
Ten filtr pozwala na zmianę limitu wyświetlanego w mediach WordPress:
- function custom_upload_size_limit($size) { return 64 * 1024 * 1024; }
- add_filter('upload_size_limit', 'custom_upload_size_limit');
Metoda 3: Wtyczki zwiększające limity
Jeśli nie czujesz się komfortowo z edycją kodu, możesz użyć dedykowanych wtyczek:
Popularne wtyczki:
- Increase Max Upload Filesize – prosta wtyczka do modyfikacji limitów
- WP Maximum Upload File Size – pozwala na zmianę limitów z panelu
- Big File Uploads – zaawansowane opcje dla dużych plików
Alternatywne metody przesyłania dużych plików
Czasami modyfikacja limitów serwera nie jest możliwa lub niewystarczająca. W takich przypadkach warto rozważyć alternatywne metody przesyłania dużych plików.
Metoda 1: Przesyłanie przez FTP/SFTP
Zamiast używać panelu WordPress, możesz przesłać duże pliki bezpośrednio przez klienta FTP:
Kroki przesłania przez FTP:
- Połącz się z serwerem przez klienta FTP (FileZilla, WinSCP)
- Przejdź do katalogu wp-content/uploads
- Utwórz odpowiedni folder (np. 2025/03)
- Prześlij pliki do odpowiedniego katalogu
- Zaloguj się do WordPress i dodaj pliki do biblioteki mediów
Metoda 2: Użycie wtyczek do przesyłania
Specjalistyczne wtyczki mogą ominąć niektóre limity serwera:
Rekomendowane wtyczki:
- WP File Upload – zaawansowane opcje przesyłania
- FileBird – menedżer plików z dodatkowymi funkcjami
- Media Library Assistant – rozszerzona biblioteka mediów
Metoda 3: Przesyłanie przez chmurę
Dla bardzo dużych plików rozważ usługi chmurowe:
Integracja z usługami chmurowymi:
- Google Drive – przesyłanie i osadzanie plików
- Dropbox – udostępnianie plików na stronie
- Amazon S3 – profesjonalne przechowywanie plików
Optymalizacja przesyłania plików
Zwiększenie limitów to tylko część rozwiązania. Równie ważna jest optymalizacja procesu przesyłania, aby zapewnić stabilność i szybkość.
Optymalizacja obrazów przed przesłaniem:
Zamiast przesyłać ogromne pliki, zoptymalizuj je wcześniej:
Narzędzia do optymalizacji:
- TinyPNG/TinyJPG – bezstratna kompresja
- ImageOptim – optymalizacja na macOS
- Caesium Image Compressor – darmowa alternatywa
- Adobe Photoshop – zapis dla webu
Formaty plików:
Wybieraj odpowiednie formaty dla różnych typów treści:
Rekomendacje formatów:
- Obrazy: WebP, JPEG 2000, AVIF (nowoczesne formaty)
- Grafika wektorowa: SVG (zamiast PNG)
- Dokumenty: PDF z kompresją
- Wideo: MP4 z H.264/H.265
Podział dużych plików:
Dla bardzo dużych plików rozważ podział na mniejsze części:
Metody podziału:
- Archiwa ZIP/RAR – podział na części
- 7-Zip – zaawansowane opcje kompresji
- HJSplit – dedykowane narzędzie do podziału plików
Testowanie poprawności po zmianach
Po wprowadzeniu zmian w konfiguracji serwera kluczowe jest dokładne przetestowanie, czy wszystkie modyfikacje działają poprawnie.
Metoda 1: Sprawdzenie w panelu WordPress
Najprostszy sposób to sprawdzenie informacji o mediach:
Kroki weryfikacji:
- Zaloguj się do panelu administracyjnego WordPress
- Przejdź do Media → Dodaj nowy
- Sprawdź komunikat o maksymalnym rozmiarze pliku
- Przetestuj przesyłanie pliku o rozmiarze bliskim limitowi
Metoda 2: Użycie phpinfo()
Sprawdzenie aktualnych ustawień PHP:
Tworzenie pliku testowego:
- Utwórz plik test.php w głównym katalogu
- Dodaj kod: phpinfo();
- Otwórz plik w przeglądarce
- Znajdź dyrektywy upload_max_filesize i post_max_size
- Usuń plik test.php po sprawdzeniu
Metoda 3: Testowanie rzeczywistych plików
Praktyczny test z różnymi typami plików:
Scenariusze testowe:
- Obraz 10 MB – test podstawowy
- Dokument PDF 25 MB – test średnich plików
- Pakiet 50 MB – test dużych plików
- Wiele plików jednocześnie – test post_max_size
Metoda 4: Monitorowanie logów
Sprawdzenie logów serwera w razie problemów:
Lokalizacje logów:
- Apache: /var/log/apache2/error.log
- Nginx: /var/log/nginx/error.log
- PHP: /var/log/php_errors.log
- Panel hostingowy: sekcja logi błędów
Podsumowanie – Bezproblemowe przesyłanie plików
Rozwiązanie problemu z limitem rozmiaru plików w WordPress wymaga zrozumienia kilku kluczowych koncepcji i zastosowania odpowiednich metod. Pamiętaj o tych najważniejszych zasadach:
Checklista optymalnej konfiguracji:
Podstawowe ustawienia:
- Zwiększ upload_max_filesize do minimum 64 MB
- Ustaw post_max_size na podwójną wartość upload_max_filesize
- Zwiększ memory_limit do co najmniej 256 MB
- Dostosuj czas wykonywania skryptów dla dużych plików
Bezpieczeństwo:
- Nie ustawiaj zbyt wysokich limitów bez potrzeby
- Monitoruj wykorzystanie zasobów serwera
- Stosuj ograniczenia dla różnych typów użytkowników
- Regularnie czyść niepotrzebne pliki
Wydajność:
- Optymalizuj pliki przed przesłaniem
- Używaj nowoczesnych formatów (WebP, AVIF)
- Rozważ CDN dla dużych plików
- Monitoruj czas przesyłania
Najczęstsze problemy i ich rozwiązania:
Problem #1: Zmiany w php.ini nie działają
Rozwiązanie: Sprawdź, czy edytujesz właściwy plik php.ini i zrestartuj serwer. Użyj phpinfo() do weryfikacji.
Problem #2: .htaccess powoduje błąd 500
Rozwiązanie: Upewnij się, że serwer używa mod_php. Sprawdź składnię i uprawnienia pliku.
Problem #3: Limity nadal zbyt niskie
Rozwiązanie: Skontaktuj się z administratorem hostingu. Niektóre serwery mają sztywne limity.
Problem #4: Przesyłanie nadal zawodzi
Rozwiązanie: Sprawdź inne limity – max_execution_time, memory_limit, max_input_time.
Podsumowanie
Skuteczne zarządzanie limitami przesyłania plików to kluczowa umiejętność każdego administratora WordPress. Prawidłowo skonfigurowane limity zapewniają elastyczność w zarządzaniu treścią, jednocześnie utrzymując stabilność i bezpieczeństwo serwera.
Pamiętaj – zawsze testuj zmiany na środowisku deweloperskim przed wdrożeniem na produkcji. Odpowiednio dobrane limity to kompromis między funkcjonalnością a wydajnością.
Jeśli chcesz dowiedzieć się więcej o optymalizacji mediów w WordPress, polecam nasz artykuł o czyszczeniu i optymalizacji katalogu uploads, który zawiera dodatkowe wskazówki dotyczące zarządzania plikami.
Masz problemy z konfiguracją limitów przesyłania plików? Chętnie pomożemy Ci wdrożyć optymalne ustawienia dla Twojej strony WordPress, które pozwolą na bezproblemowe przesyłanie plików o dowolnym rozmiarze. Skontaktuj się z nami, aby uzyskać profesjonalne wsparcie w konfiguracji serwera.