Katalog tymczasowy /tmp na hostingu w home.pl

W katalogu /tmp przechowywane są wszystkie dane tymczasowe, można powiedzieć, że jest to miejsce do przechowywania rzeczy „na chwilę”, które potrzebne są tylko na określony okres czasu. Oznacza to tyle, że uruchamiane na serwerze aplikacje umieszczają w tym miejscu pliki tymczasowe, które są im potrzebne przez krótki czas. Katalog /tmp stosowany jest również podczas instalacji, np. przy systemie Joomla.

Sporo systemów oraz aplikacji automatycznie czyści katalog /tmp, więc nie umieszczaj w nim danych, które chciałbyś zachować.

Zabroniony dostęp do katalogu /tmp poza domowym katalogiem

Na hostingu w home.pl katalog /tmp znajdujący się bezpośrednio nad katalogiem, na który wskazuje domena jest w home.pl specjalnie traktowany i do tego katalogu nie ma dostępu (403). Wynika to z wprowadzonych mechanizmów bezpieczeństwa przy konfiguracji webserwera, które zabraniają dostępu do katalogu /tmp i innych poza domowym katalogiem.

Z tego względu warto uważać na zasoby statyczne (obrazki, pliki CSS), które aplikacja zapisuje w katalogu /tmp, ponieważ każde wywołanie takich plików np.: twojadomena.pl/tmp/obrazek.jpg zostanie zakończone błędem 403. Webserver nie posiada dostępu do katalogu /tmp, ale PHP już tak.

W przypadku aplikacji (np. CMS), które wymuszają użycie zablokowanego katalogu /tmp należy utworzyć i zadeklarować w aplikacji inny katalog niż /tmp. Przykładowo, należy zmodyfikować skrypty w taki sposób, aby używały katalogów wewnątrz lokalizacji: /home/IDkonta/, ponieważ dostęp do innych katalogów jest zabroniony.

Jako przykład takiego rozwiązania można podać użytkowników hostingu w home.pl, którzy w przypadku „znikających” sesji PHP z powodu stosowania nieodpowiedniego katalogu /tmp korzystają z poniższego przykładowego skryptu:

session_name('nazwa_sesji');
session_save_path('/katalog_zapisu_sesji');
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 100);
ini_set('session.gc_maxlifetime', czas_sesji_w_sek);
session_set_cookie_params(czas_sesji_w_sek);
session_start();
  • Czy artykuł był pomocny ?
  • Tak   Nie