Jak ustawić prawidłowe uprawnienia plików i katalogów (chmod) w WordPressie
Złe uprawnienia plików to jedna z najczęstszych furtek, przez które złośliwe skrypty wgrywają się na serwer i infekują WordPressa. Jeśli katalog ma uprawnienia 777, każdy proces na serwerze może do niego zapisywać – łącznie ze złośliwym kodem, który już gdzieś się wkradł. To samo dotyczy pliku wp-config.php, w którym leżą dane dostępowe do bazy danych. Ten poradnik pokazuje, krok po kroku, jak sprawdzić i poprawić uprawnienia, tak żeby WordPress mógł normalnie działać i aktualizować się, a jednocześnie żeby ograniczyć ryzyko przejęcia strony.
- Zaloguj się na serwer przez klienta FTP (np. FileZilla) albo przez menedżer plików w panelu hostingowym i przejdź do głównego katalogu WordPressa (tam, gdzie znajdują się foldery wp-admin, wp-content i wp-includes).
- Sprawdź obecne uprawnienia. W FileZilli kliknij prawym przyciskiem myszy na katalog lub plik i wybierz „Uprawnienia do plików”. W menedżerze plików hostingu najczęściej wystarczy spojrzeć na kolumnę z liczbami przy każdym pliku (np. 755, 644, 777).
- Zrób pełną kopię zapasową strony – plików i bazy danych – zanim zaczniesz cokolwiek zmieniać, żeby w razie błędu łatwo wrócić do stanu wyjściowego.
- Ustaw uprawnienia 755 dla wszystkich katalogów. W FileZilli zaznacz katalog główny, wybierz „Uprawnienia do plików”, wpisz 755, zaznacz „Zastosuj do katalogów” i „Powtórz dla podkatalogów”, a następnie zatwierdź.
- Ustaw uprawnienia 644 dla wszystkich plików. W tym samym oknie wpisz 644, zaznacz „Zastosuj do plików” i „Powtórz dla podkatalogów”, a opcję „Zastosuj do katalogów” zostaw odznaczoną, żeby nie nadpisać ustawień z poprzedniego kroku.
- Znajdź plik wp-config.php w katalogu głównym WordPressa i ustaw dla niego uprawnienia 600 (dostęp tylko dla właściciela). Jeśli po tej zmianie strona przestanie działać, zmień na 640, bo niektóre hostingi wymagają odczytu także dla grupy.
- Sprawdź uprawnienia katalogu wp-content/uploads oraz wp-content – WordPress musi móc w nich zapisywać nowe pliki, więc 755 dla katalogów i 644 dla plików powinno wystarczyć; nie nadawaj tam 777, nawet jeśli znajdziesz taką podpowiedź w starym poradniku.
- Otwórz stronę w przeglądarce w nowej, niezalogowanej karcie i sprawdź, czy wszystko się wyświetla normalnie, bez błędu 500 i bez białego ekranu.
- Zaloguj się do wp-admin i spróbuj zaktualizować jedną wtyczkę albo motyw – jeśli aktualizacja przebiegnie bez błędu „nie udało się zapisać pliku”, uprawnienia są ustawione prawidłowo.
- Wgraj testowy plik do biblioteki mediów (np. mały obrazek), żeby potwierdzić, że WordPress może zapisywać nowe pliki w katalogu uploads – jeśli upload się powiedzie, możesz uznać zmianę uprawnień za zakończoną sukcesem.
Co zrobić, gdy coś pójdzie nie tak
Błąd 500 po zmianie uprawnień
Jeśli po ustawieniu uprawnień strona przestaje się wyświetlać i widzisz błąd 500, najczęstszą przyczyną jest zbyt restrykcyjne uprawnienie na wp-config.php (np. 400 albo 440, które hosting nie akceptuje) albo pomyłka przy rekurencyjnym ustawianiu – np. katalogi dostały 644 zamiast 755, co blokuje do nich dostęp. Wróć do 755 dla katalogów i 644 dla plików, a dla wp-config.php spróbuj 640 zamiast 600. Jeśli błąd nie mija, sprawdź log błędów PHP w panelu hostingowym – zwykle dokładnie wskazuje, którego pliku dotyczy problem z dostępem.
Wtyczki lub motywy nie chcą się aktualizować
Gdy WordPress przy aktualizacji pokazuje komunikat o braku uprawnień do zapisu, zwykle oznacza to, że katalog wp-content (albo jego podkatalogi plugins/themes) ma uprawnienia niższe niż 755, albo że właściciel plików (owner) różni się od użytkownika, pod którym działa PHP na serwerze. Ustaw z powrotem 755 dla katalogów w wp-content i sprawdź w panelu hostingowym, czy nie trzeba też poprawić właściciela plików – to się robi inaczej niż chmod, a hosting zwykle robi to za ciebie po zgłoszeniu do supportu.
Hosting współdzielony narzuca własne reguły uprawnień
Część hostingów współdzielonych (shared hosting) automatycznie nadpisuje uprawnienia przy każdym uploadzie plików albo blokuje ustawienie 600 na wp-config.php, bo ich konfiguracja PHP (np. suPHP czy PHP-FPM z określonym użytkownikiem) wymaga innego schematu. W takiej sytuacji nie walcz z systemem – sprawdź dokumentację swojego hostingu albo napisz do supportu z pytaniem, jakie uprawnienia są u nich zalecane dla WordPressa, i trzymaj się tych wartości, nawet jeśli różnią się od klasycznych 755/644.