Brak katalogu plików tymczasowych WordPress - jak naprawić błąd?

Dodajesz zdjęcie do WordPressa. Pasek przesyłania rusza i zamiast miniatury pojawia się "Brak katalogu plików tymczasowych". Próbujesz z mniejszym zdjęciem. To samo. JPG nie działa, PDF też nie. W takiej sytuacji problemu raczej nie ma sensu szukać w samych plikach. WordPress nie może skorzystać z miejsca, przez które przesyłany plik powinien przejść, zanim trafi do biblioteki mediów. Czasem da się to naprawić przez utworzenie własnego katalogu tymczasowego. Ale jeśli błąd pojawił się nagle po migracji, zmianie PHP albo pracach na serwerze, lepiej najpierw sprawdzić, co właściwie się zmieniło.

Co właściwie oznacza "Brak katalogu plików tymczasowych"?

Najczęściej zaczyna się niewinnie. Wchodzisz do biblioteki mediów, wybierasz zdjęcie i czekasz na miniaturę. Zamiast niej WordPress zgłasza błąd.

Pierwsza myśl: coś jest nie tak ze zdjęciem.

Tyle że próbujesz drugiego. Potem trzeciego. W końcu wrzucasz mały plik, który wcześniej bez problemu przesyłałeś na inne strony. Nadal nic.

To już dość mocna wskazówka, że nie chodzi o JPG czy PDF.

Przesyłany przez formularz plik nie trafia od razu do wp-content/uploads. Po drodze PHP korzysta z miejsca przeznaczonego na pliki tymczasowe. Dopiero później WordPress może zająć się plikiem i przenieść go tam, gdzie powinien się znaleźć.

Jeżeli tego tymczasowego miejsca nie ma albo PHP nie może z niego korzystać, cały proces zatrzymuje się wcześniej. WordPress zgłasza więc brak katalogu plików tymczasowych.

Co ważne, nie oznacza to automatycznie, że zniknął katalog uploads. Możesz wejść przez FTP i zobaczyć, że wp-content/uploads istnieje, stare zdjęcia są na swoim miejscu, strona normalnie je wyświetla, a nowych nadal nie da się dodać.

To jak najbardziej możliwe. Problem występuje wcześniej.

Zdjęcia działały wczoraj, a dzisiaj już nie - dlaczego?

To jest moment, w którym zamiast od razu zmieniać pliki WordPressa, dobrze odpowiedzieć sobie na jedno pytanie:

co wydarzyło się ze stroną albo serwerem tuż przed pojawieniem się błędu?

Jeśli od dwóch lat dodawałeś zdjęcia bez problemu, a dzisiaj nagle nie możesz, katalog tymczasowy raczej nie obraził się na WordPressa bez powodu.

Może wczoraj zmieniłeś wersję PHP z poziomu panelu hostingu. Może hosting przenosił konta na inny serwer. Strona została właśnie zmigrowana do innej firmy. Administrator zmienił konfigurację PHP. Albo problem zaczął się po odtworzeniu kopii zapasowej.

Każda z tych informacji jest bardziej użyteczna niż przypadkowe instalowanie kolejnej wtyczki.

Jeżeli natomiast strona jest świeża i błąd występuje od pierwszej próby dodania pliku, podejrzenie od razu mocniej pada na konfigurację środowiska.

Własny katalog tymczasowy w wp-config.php

Jednym ze sposobów rozwiązania problemu jest wskazanie WordPressowi konkretnego katalogu tymczasowego.

Potrzebujesz dostępu do plików strony. Może to być FTP, SFTP, menedżer plików dostępny w panelu hostingowym albo SSH. W głównym katalogu instalacji znajdź:

wp-config.php

Przed końcową częścią konfiguracji można dodać:

define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp/');

Co właśnie zrobiliśmy?

Wskazaliśmy WordPressowi, że ma korzystać z katalogu temp umieszczonego wewnątrz wp-content.

Jest tylko jeden szczegół. Samo wpisanie ścieżki nie tworzy folderu.

Jeżeli wp-content/temp nie istnieje, trzeba go utworzyć.

Jak utworzyć katalog temp i sprawdzić, czy działa?

Przejdź do wp-content i utwórz katalog:

temp

Po wszystkim fragment instalacji powinien wyglądać mniej więcej tak:

wp-content/
├── plugins/
├── themes/
├── uploads/
└── temp/

Teraz nie testowałbym od razu pliku wideo ważącego 200 MB. Wystarczy zwykły JPG, najlepiej niewielki.

Wejdź do biblioteki mediów i prześlij go.

Pojawiła się miniatura? Dobrze. Sprawdź jeszcze drugi plik, a następnie miejsce, w którym wcześniej występował błąd. Jeżeli wszystko działa, mamy rozwiązanie.

Nadal "Brak katalogu plików tymczasowych"?

Nie twórz temp2, tmp, temporary i kilku innych folderów w nadziei, że WordPress któryś polubi. Trzeba zejść poziom niżej i zobaczyć, co robi PHP.

Kiedy winny jest PHP albo hosting?

PHP ma własne ustawienie dotyczące miejsca używanego przy przesyłaniu plików - upload_tmp_dir.

Jeżeli konfiguracja wskazuje katalog, który nie istnieje albo nie jest dostępny dla procesu PHP, przesyłanie plików może zakończyć się właśnie takim błędem.

Na serwerze, którym sam zarządzasz, możesz sprawdzić i poprawić konfigurację. Na typowym hostingu współdzielonym sytuacja wygląda inaczej. Część ustawień PHP zmienisz w panelu, części nie.

I tutaj nie ma nic złego w napisaniu do pomocy technicznej hostingu. Tylko dobrze napisać konkretnie.

Zgłoszenie:

"WordPress nie działa. Proszę naprawić."

niewiele mówi administratorowi.

Znacznie lepiej podać, że przy przesyłaniu każdego pliku WordPress zwraca komunikat "Brak katalogu plików tymczasowych" i poprosić o sprawdzenie katalogu tymczasowego PHP, ustawienia upload_tmp_dir oraz możliwości zapisu w katalogu używanym przez PHP.

Administrator od razu wie, czego szukać.

Praktyczne przykłady - gdzie szukać przyczyny?

Sam komunikat jest zawsze podobny, ale droga do rozwiązania może być zupełnie inna. Kilka typowych sytuacji dobrze pokazuje różnicę.

Przykład 1: błąd pojawił się zaraz po migracji strony

Na starym hostingu zdjęcia dodawały się normalnie. Robisz kopię, przenosisz WordPressa na nowy serwer, zmieniasz DNS i wszystko wygląda dobrze. Strona się otwiera. Panel działa. Dopiero przy pierwszej próbie dodania zdjęcia pojawia się "Brak katalogu plików tymczasowych".

W takiej sytuacji nie zaczynałbym od wyłączania wszystkich wtyczek.

Co się zmieniło? Serwer.

To właśnie konfigurację PHP na nowym hostingu sprawdziłbym jako pierwszą. Warto również zobaczyć, czy podczas migracji nie przeniesiono do wp-config.php ustawienia odwołującego się do ścieżki charakterystycznej dla poprzedniego serwera.

Przykład 2: problem zaczął się po zmianie wersji PHP

Rano przełączasz w panelu PHP na inną wersję. Strona działa, więc temat uznajesz za zamknięty. Kilka godzin później ktoś próbuje dodać zdjęcie i nie może.

Zbieżność jest zbyt wyraźna, żeby ją ignorować.

Można na chwilę wrócić do poprzedniej, nadal wspieranej przez stronę wersji PHP i powtórzyć test. Jeżeli przesyłanie nagle zaczyna działać, mamy bardzo dobry punkt zaczepienia. Nie oznacza to jeszcze, że poprzednia wersja PHP ma zostać na serwerze na zawsze. Trzeba ustalić, czym różni się konfiguracja obu środowisk.

Przykład 3: nie działa JPG, PNG, PDF - właściwie nic

To też ważna informacja.

Jeżeli jeden konkretny plik nie chce się przesłać, można podejrzewać jego rozmiar, format, nazwę albo uszkodzenie. Jeśli jednak bierzesz trzy zupełnie różne, niewielkie pliki i każdy kończy się identycznym komunikatem o katalogu tymczasowym, trudno nadal obwiniać same pliki.

Wtedy zdecydowanie bardziej interesuje nas serwer.

Przykład 4: administrator hostingu właśnie wykonywał prace

Jeszcze wczoraj wszystko działało. Dzisiaj nie możesz niczego przesłać, a w panelu hostingu znajduje się informacja o nocnych pracach technicznych albo migracji kont.

Nie musi to oznaczać, że hosting coś zepsuł. Ale jest to konkretna zmiana w czasie i trzeba ją uwzględnić.

W zgłoszeniu można wtedy dopisać, że problem pojawił się po pracach lub przeniesieniu konta. Pomoc techniczna ma znacznie więcej informacji niż po otrzymaniu samego zrzutu ekranu z WordPressa.

Przykład 5: strona działa, ale serwerowi kończy się miejsce

To sytuacja, którą łatwo przeoczyć, bo strona nadal może się normalnie wyświetlać.

Jeśli konto hostingowe albo odpowiednia partycja serwera nie ma już wolnej przestrzeni, zaczynają pojawiać się problemy z operacjami wymagającymi zapisu. Dlatego przy nagłych problemach z plikami dobrze sprawdzić również wykorzystanie miejsca na hostingu.

Zwłaszcza jeśli oprócz biblioteki mediów zaczynają dziać się inne dziwne rzeczy - nie tworzą się kopie zapasowe, aktualizacje kończą się błędami albo wtyczka nie może zapisać pliku.

Katalog temp nie pomógł. Co dalej?

Jeżeli dodałeś WP_TEMP_DIR, katalog temp istnieje, a WordPress nadal zgłasza ten sam błąd, nie brnąłbym w kolejne przypadkowe zmiany.

Wróć do momentu, w którym problem się pojawił.

Po migracji? Porównaj środowiska. Po zmianie PHP? Sprawdź konfigurację obu wersji. Po pracach na hostingu? Napisz do administratora. Problem występuje od uruchomienia nowej instalacji? Zacznij od konfiguracji PHP i praw zapisu.

Sprawdź też wolne miejsce na koncie oraz uprawnienia do katalogów. Tylko bez leczenia wszystkiego przez 777.

Nie ustawiaj na chybił trafił uprawnień 777 dla całego wp-content albo instalacji WordPressa. Jeśli po takiej zmianie coś zacznie działać, nadal nie wiesz, gdzie naprawdę leżał problem. Za to niepotrzebnie osłabiasz bezpieczeństwo plików strony.

I jeszcze jedna rzecz. Jeżeli WordPress nie pozwala dodać jednego zdjęcia, ale dziesięć innych przesyła bez problemu, nie jest to typowy obraz błędu katalogu tymczasowego. Wtedy trzeba przyjrzeć się właśnie temu plikowi, jego rozmiarowi i ograniczeniom przesyłania.

Jeżeli natomiast przestaje przyjmować wszystko, komunikat pojawia się za każdym razem, a problem zaczął się po zmianie na serwerze - mamy już całkiem sensowny kierunek.

Nie trzeba naprawiać całego WordPressa. Trzeba znaleźć miejsce, w którym przesyłany plik przestaje mieć gdzie trafić.

Komentarze