Gdzie tworzone są pliki tymczasowe?

12

Chcę wiedzieć, gdzie Drupal (lub jego moduły) tworzą pliki tymczasowe. Czy są umieszczone w witrynach / domyślnie?

Mówię szczególnie o Drupalu 6.

Aga
źródło
Moduły mogą próbować tworzyć pliki tymczasowe w dowolnym miejscu na stronie drupal, ale powiedzie się to tylko wtedy, gdy pozwala na to konfiguracja serwera. Patrz: drupal.org/node/244924
sierpień

Odpowiedzi:

16

Pliki są tworzone w katalogu, którego nazwa jest zwracana z file_directory_temp (), który zwraca:

  • Wartość zmiennej Drupal „file_temporary_path”, która jest ustawiana ze strony ustawień admin / config / media / file-system (Drupal 7) lub admin / settings / file-system (Drupal 6).

  • Jeśli ta zmienna Drupal nie jest ustawiona, funkcja sprawdza jeden z następujących katalogów; jeśli jeden z tych katalogów istnieje, to jest zwracany (i używany).

    • katalog zwrócił z ini_get('upload_tmp_dir')
    • w systemie Windows katalogi „c: \ windows \ temp” i „c: \ winnt \ temp.”
    • w systemach operacyjnych innych niż Windows, katalog „/ tmp”.
    • w PHP w wersji 5.2.1 lub wyższej, katalog zwrócony przez sys_get_temp_dir().
  • Jeśli zmienna „file_temporary_path” nie jest ustawiona, a katalogi wymienione w poprzednim punkcie nie istnieją lub nie są zapisywalne, funkcja używa wartości zmiennej Drupal „file_public_path”; domyślnie ten katalog ma wartość conf_path() . '/files'„katalogu” zawartego w katalogu zawierającym plik setting.php używany dla strony Drupal.

Funkcja ustawia zmienną „file_temporary_path” na znaleziony katalog.

O ile mi wiadomo, każdy moduł otwiera pliki tymczasowe przy użyciu ścieżki zaczynającej się od „tymczasowy: //” (dostępny tylko w Drupal 7 i wyższych) lub używa file_directory_temp(). Katalog zwrócony z file_directory_temp()może zmieniać się z systemu na system, ale moduły zawsze używają tego katalogu.

Moduły Drupal nie mają uprawnień do napisania katalogu zawierającego moduły; dość trudno moduł używa tego katalogu do tworzenia plików tymczasowych. Jeśli znajdziesz moduł korzystający z katalogu zawierającego moduły (lub dowolnego podkatalogu tego katalogu), zgłoś to jako błąd.

kiamlaluno
źródło
czy twoja odpowiedź dotyczy Drupala 6 czy tylko Drupala 7?
iStryker
1
Dotyczy to obu, jak file_directory_temp()zdefiniowano również w Drupal 6, a kod funkcji nie zmienia się, przechodząc z Drupal 6 do Drupal 7.
kiamlaluno
3

Strona ustawień w admin / settings / file-system zawiera ustawienia katalogu używanego do plików tymczasowych.

Niektóre moduły mogą wybrać inny katalog dla plików tymczasowych. Nie ma standardowej lokalizacji folderu.

Na przykład moduł ctools utworzy tymczasowe pliki buforowane w katalogu / sites / default / files / ctools. Więc może się różnić.

chrisjlee
źródło
Czy mówisz, że moduł może utworzyć plik tymczasowy w dowolnym miejscu na stronie drupal? Czy można go również tworzyć w katalogu głównym / motywach root / modułów itp.?
AgA
Tak, moduły mogą tworzyć pliki tymczasowe w dowolnym miejscu. Zazwyczaj przechowują je w jednym folderze, podobnie jak narzędzia. Z mojego doświadczenia wynika, że ​​moduły tworzące własny katalog tymczasowy są rzadkie. Większość modułów korzysta z domyślnego katalogu tymczasowego, o którym mówi Chris.
iStryker
@iStryker Dzisiaj zobaczyłem błąd w tej sekcji raportów / statusu na mojej stronie, mówiąc: „katalog plików nie jest chroniony” i zasugerowałem drupal.org/forum/newsletters/... utworzenie .htaccess w katalogu plików, a także umieszczenie „Odmów z wszystko ”w .htaccess znaleziono w katalogu plików tymczasowych w celu zapobiegania wykonywaniu kodu. Jestem zdezorientowany. Czy jest to folder „tmp”, gdzieś lub każdy moduł ma swój własny folder? Czy muszę umieścić plik .htaccess w każdym folderze?
Umair,