Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator .htaccess PHP

Limity PHP i ochrona katalogu uploads

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Ustaw parametry i wygeneruj reguły .htaccess.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator ustawień PHP w .htaccess

Na serwerach z PHP jako modułem Apache limity PHP można ustawiać w pliku .htaccess. To wygodne, gdy nie masz dostępu do głównego php.ini.

Dyrektywy php_value

DyrektywaEfekt
memory_limitlimit pamięci skryptu
upload_max_filesizelimit rozmiaru pliku
post_max_sizelimit żądania POST
max_execution_timelimit czasu działania

Blokada PHP w uploads

Katalog z plikami od użytkowników to częsty wektor ataku. Wyłączenie tam silnika PHP (php_flag engine off) i zablokowanie plików .php uniemożliwia wykonanie przesłanego skryptu.

Przykład

<IfModule mod_php.c>
    php_value memory_limit 256M
    php_value upload_max_filesize 64M
</IfModule>

Jak generator składa reguły PHP w .htaccess

Generator nie ma wbudowanych tablic stałych i nie dobiera limitów za użytkownika. Działa jak formularz, który składa tekst: pobiera wartości wpisane w polach, sprawdza podstawowe zależności i tworzy blok dyrektyw PHP. W praktyce sprowadza się to do trzech kroków: zbierz dane, złóż dyrektywy, opakuj w warunek. Jeśli wybierzesz opakowanie IfModule, wynik zostanie otoczony warunkiem. Dzięki temu plik .htaccess nie wywoła błędu na serwerze, na którym PHP nie jest ładowane jako mod_php.

Mechanizm opiera się na składni Apache. Dyrektywy php_value ustawiają konkretną wartość, a php_flag włącza albo wyłącza opcję binarną. Generator nie wysyła nic na serwer i nie zapisuje pliku. Zwraca tylko kod do skopiowania. To istotne, bo .htaccess działa lokalnie dla katalogu i jego podkatalogów. Zmiana jest odczytywana przy żądaniu, ale tylko gdy Apache obsługuje PHP jako moduł. Nie ma tu miejsca na ukryte wartości domyślne, ponieważ kod narzędzia nie zawiera tablic stałych.

Narzędzie nie przelicza automatycznie jednostek ani nie wykrywa konfliktów między dyrektywami. Nie wie, jaki masz hosting, jaki moduł PHP jest aktywny i jakie limity narzucił administrator. Wynik jest więc propozycją konfiguracji. Przed wdrożeniem sprawdź, czy serwer pozwala na AllowOverride i czy PHP nie działa w trybie FPM. Jeśli nie wiesz, jakie wartości są bezpieczne, zacznij od ostrożnych zmian i obserwuj logi.

Przykład krok po kroku: limit 256M i plik 128M

  1. Wpisz w polu memory_limit wartość 256M. W bajtach to 268 435 456 B. Ta wartość określa górny limit pamięci dla skryptu.
  2. Wpisz upload_max_filesize jako 128M. W bajtach to 134 217 728 B. To dwukrotność 64M, czyli wartość często używaną w domyślnych przykładach.
  3. Ustaw post_max_size na 256M, czyli 268 435 456 B. To większe niż upload_max_filesize, więc całe żądanie POST zmieści plik 128M oraz pola formularza i nagłówki.
  4. Wybierz opcję IfModule mod_php.c. Generator otoczy dyrektywy warunkiem, który zapobiega błędom, gdy PHP nie jest modułem Apache.
  5. Skopiuj wygenerowany blok do pliku .htaccess w katalogu, który ma mieć nowe limity. Nie wklejaj go do katalogu głównego, jeśli chcesz ograniczyć zmianę tylko do wybranej aplikacji.
  6. Zapisz plik i wykonaj testowe żądanie. Jeśli serwer zwróci błąd 500, cofnij zmianę i sprawdź log błędów Apache oraz ustawienie AllowOverride.

Zależności między limitami PHP w .htaccess

ZależnośćZasadaSkutek
post_max_size a upload_max_filesizepost_max_size musi być większy lub równyInaczej plik nie dotrze do skryptu
memory_limit a upload_max_filesizeDuży plik wymaga pamięci na obróbkęZbyt niski memory_limit przerwie skrypt
max_execution_time a rozmiar operacjiWiększy plik to dłuższe przetwarzanieLimit czasu może zakończyć skrypt przed końcem
php_value a mod_phpDziała tylko przy PHP jako moduł ApachePrzy PHP-FPM potrzebny jest .user.ini
php_flag a uploadsWyłącza wykonywanie PHP w kataloguZmniejsza ryzyko uruchomienia przesłanego skryptu
IfModule a nieznany serwerChroni przed błędem 500, gdy brak modułuBlok jest ignorowany, a strona działa dalej
AllowOverride a .htaccessDecyduje, czy plik może zmieniać ustawieniaBez AllowOverride dyrektywy są odrzucane
kolejność dyrektywPóźniejsze wpisy mogą nadpisać wcześniejszeWarto trzymać jedną spójną konfigurację

Jak wdrażać wygenerowany .htaccess bez błędów

  • Ustawiaj w podkatalogu — jeśli chcesz zmienić limity tylko dla jednej aplikacji, wklej blok do .htaccess w jej katalogu, a nie do głównego pliku serwera. Ograniczysz wpływ na inne strony i łatwiej będzie cofnąć zmianę. Pamiętaj, że .htaccess działa na katalog i wszystkie podkatalogi, więc zasięg może być większy niż oczekujesz.
  • Zmieniaj jedną dyrektywę na raz — po każdej modyfikacji sprawdź działanie strony. Łatwiej wtedy ustalić, która wartość powoduje błąd 500 lub nieoczekiwane zachowanie. Notuj, co zmieniłeś, aby móc wrócić do działającej wersji.
  • Nie ufaj ślepo gotowym wartościom — generator nie zna Twojego hostingu. Wartości 256M, 128M czy 64M są tylko przykładem. Dostosuj je do realnego zapotrzebowania skryptu. Lepiej zacząć od wartości mniejszych i zwiększać je tylko wtedy, gdy skrypt naprawdę tego potrzebuje.
  • Sprawdź tryb PHP — jeśli hosting używa PHP-FPM, .htaccess może nie działać. W takiej sytuacji poszukaj pliku .user.ini lub ustawień w panelu hostingu. W panelu często znajdziesz przełącznik wersji PHP i informację o trybie.
  • Rób kopię przed zmianą — zapisz stary .htaccess lub trzymaj go w repozytorium. W razie błędu 500 szybko przywrócisz poprzednią konfigurację. Dobra praktyka to trzymanie .htaccess razem z konfiguracją aplikacji.

Czego generator nie sprawdzi

  • Konfiguracji serwera — narzędzie nie wie, czy Apache pozwala na AllowOverride, jaki moduł PHP jest aktywny i jakie limity narzuca hosting. To wszystko może zmienić działanie wygenerowanego pliku. Generator nie sprawdza też, czy inny plik .htaccess wyżej w drzewie nadpisuje te ustawienia.
  • Realnego zużycia pamięci — memory_limit to tylko górna granica. Generator nie mierzy, ile pamięci faktycznie potrzebuje skrypt przy danym pliku, obrazie czy bibliotece. Nie wykryje wycieków pamięci ani błędów w kodzie.
  • Zgodności z PHP-FPM — dyrektywy php_value i php_flag są charakterystyczne dla mod_php. Przy PHP-FPM .htaccess zwykle nie zmienia ustawień PHP. Narzędzie nie zamieni automatycznie wygenerowanego bloku na .user.ini.
  • Bezpieczeństwa całej aplikacji — wyłączenie PHP w uploads pomaga, ale nie zastępuje walidacji plików, kontroli dostępu i trzymania danych poza katalogiem publicznym. Nie zastąpi też poprawnych uprawnień plików i katalogów.

Najczęstsze pytania

Czy php_value działa zawsze?

Nie. Działa tylko przy PHP jako moduł Apache (mod_php). Przy PHP-FPM użyj pliku .user.ini.

Dlaczego dostaję błąd 500?

Serwer może nie zezwalać na te dyrektywy (AllowOverride). Sprawdź log błędów Apache.

Jak zabezpieczyć uploads inaczej?

Trzymaj pliki użytkowników poza katalogiem publicznym i serwuj je przez skrypt kontrolujący dostęp.

Czy w .htaccess można ustawić memory_limit?

Tak, ale tylko wtedy, gdy PHP działa jako moduł Apache i serwer pozwala na dyrektywy php_value. W innym przypadku użyj pliku .user.ini albo ustawień w panelu hostingu. Sam wpis w .htaccess nie obejdzie limitów narzuconych przez operatora.

Co ustawić najpierw: upload_max_filesize czy post_max_size?

Najpierw ustal docelowy rozmiar pliku w upload_max_filesize, a potem ustaw post_max_size na wartość większą lub równą. Dzięki temu całe żądanie POST zmieści plik i pozostałe dane formularza. Jeśli post_max_size będzie za mały, plik nie dotrze do skryptu.

Czy php_value memory_limit działa na hostingu współdzielonym?

Nie zawsze. Wielu operatorów blokuje zmiany PHP w .htaccess ze względu na bezpieczeństwo i wydajność. Sprawdź dokumentację hostingu lub log błędów Apache, jeśli po zmianie pojawia się błąd 500.

Jak sprawdzić, czy PHP działa jako moduł Apache?

Najprościej przez plik phpinfo lub zapytanie do administratora hostingu. Jeśli w informacjach pojawia się Server API Apache 2.0 Handler, to zwykle mod_php. Przy FPM zobaczysz PHP-FPM albo FPM/FastCGI.

Czy .htaccess może zwiększyć max_execution_time?

Tak, przy mod_php można użyć php_value max_execution_time. Pamiętaj jednak, że hosting może mieć własny limit, którego nie da się obejść z poziomu katalogu. Warto też sprawdzić, czy długie operacje nie są lepiej przeniesione do kolejki.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!