Jak Zwiększyć Limit Uploadu (Max Filesize) w WordPressie na Serwerze VPS z ISPConfig, Nginx i OLS

WordPress PHP limit

Czy próbujesz wgrać duży plik do biblioteki mediów WordPressa i za każdym razem napotykasz frustrujący limit 2MB? Ten problem jest powszechny na serwerach z zaawansowaną konfiguracją (taką jak ISPConfig zarządzający Nginxem i OpenLiteSpeed/PHP-FPM), ponieważ limit jest ustawiony w kilku miejscach jednocześnie.

Oto przewodnik, jak poprawnie ustawić maksymalny rozmiar przesyłanego pliku na 200MB (lub więcej).

🧐 Skąd się bierze limit 2MB?

W złożonej architekturze serwerowej, gdzie żądanie przechodzi przez Reverse Proxy (Nginx), trafia do serwera WWW (OpenLiteSpeed) i jest przetwarzane przez PHP-FPM, limit rozmiaru pliku jest kontrolowany na trzech głównych poziomach:

  1. Poziom Nginx (Reverse Proxy): Domyślny limit na poziomie serwera, który akceptuje żądanie. Nginx może odrzucić plik, zanim trafi on do PHP.
  2. Poziom PHP-FPM: Dyrektywy upload_max_filesize i post_max_size.
  3. Poziom OpenLiteSpeed (Web Server): Własne limity żądań serwera WWW.

W naszym przypadku, mimo ręcznych zmian w pliku php.ini, limit 2MBbył nadpisywany na poziomie konfiguracji Virtual Hosta generowanej przez Nginx/ISPConfig, która miała wyższy priorytet.

🛠️ Rozwiązanie Krok po Kroku

Aby skutecznie podnieść limit, musimy go podnieść na poziomie Nginx/ISPConfig oraz PHP-FPM.

Krok 1: Zmiana Dyrektywy w Nginx (Kluczowe Działanie)

Ponieważ używasz ISPConfig, najbezpieczniej jest wprowadzić zmiany za pomocą jego interfejsu, dzięki czemu zostaną one automatycznie wdrożone do konfiguracji Nginx dla Twojej strony.

  • Zaloguj się do ISPConfig.
  • Przejdź do Sites (Strony) -> Websites (Strony internetowe).
  • Edytuj (ikonka ołówka) Twoją stronę WordPress.
  • Przejdź do zakładki Options (Opcje).
  • Odszukaj pole tekstowe: Nginx Directives (Dyrektywy Nginx).
  • Wprowadź tam następującą dyrektywę, ustawiając żądany rozmiar (w tym przykładzie 200MB)Nginx: client_max_body_size 200M;
  • Zapisz zmiany. ISPConfig automatycznie przeładowuje konfigurację Nginx.

Wyjaśnienie: Dyrektywa client_max_body_size informuje Nginx, że może zaakceptować żądanie o wielkości do 200MB. To jest „bramka”, która wcześniej blokowała pliki np 100MB.

Krok 2: Zwiększenie Limitów w PHP-FPM (Jeśli Konieczne)

Mimo że dyrektywa Nginx często bywa głównym blokerem, musisz upewnić się, że PHP jest na to przygotowane.

Jeśli ISPConfig nie pozwala na edycję limitów PHP w interfejsie (jak w Twoim przypadku), użyj pliku .user.ini, który ma najwyższy priorytet w konfiguracji:

  1. Przejdź do głównego katalogu Twojej instalacji WordPress (tam, gdzie znajduje się plik wp-config.php).
  2. Utwórz plik o nazwie: .user.ini
  3. Wklej do niego dyrektywy PHP, również ustawiając 200MB: .user.iniIni, TOMLupload_max_filesize = 200M post_max_size = 200M
  4. Wykonaj restart usługi PHP-FPM (np. sudo systemctl restart php8.4-fpm), aby przyspieszyć odczyt nowego pliku .user.ini.

Krok 3: Sprawdzenie Opcji OLS (Zapobieganie Problemom)

Użycie OLS dodaje jeszcze jedną warstwę. Zaloguj się do konsoli WebAdmin OLS (port 7080) i upewnij się, że ustawienia serwera nie są niższe niż 200MB:

  • Configuration -> Server -> Tuning.
  • Sprawdź Max Request Body Size i ustaw na $200\text{M}$ lub wyższą wartość.

🎉 Podsumowanie

Podniesienie limitu uploadu to taniec między trzema warstwami serwera. W przypadku zaawansowanych konfiguracji z ISPConfig, ręczne wpisanie dyrektywy Nginx jest najszybszym i najpewniejszym sposobem na przebicie limitu 200MB.

Od teraz Twoje pliki binarne o rozmiarze do 200MB mogą bez problemu wylądować w WordPressie!

Andre Selfie
Andrzej Majewski

Moja fascynacja technologią zaczęła się podczas studiów informatycznych na Uniwersytecie Zielonogórskim. Od czasu przeprowadzki do Wielkiej Brytanii w 2015 roku i osiedlenia się na stałe w Bournemouth, przekułem tę pasję w karierę zawodową poświęconą infrastrukturze o wysokiej wydajności.W głębi duszy jestem entuzjastą Linuxa – to zaangażowanie wykracza poza moją pracę zawodową w SolutionsInc i obejmuje również mój rozbudowany, prywatny homelab. Niezależnie od tego, czy zarządzam złożonymi architekturami serwerowymi przez ISPConfig, buduję systemy VoIP w ramach Phones Rescue, czy tworzę narzędzia do automatyzacji w Pythonie, najlepiej czuję się, podejmując wyzwania związane z projektowaniem wydajnych rozwiązań open-source

Komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *