임시 파일은 어디에 생성됩니까?


12

Drupal (또는 해당 모듈)이 임시 파일을 생성하는 위치를 알고 싶습니다. 그들은 사이트 / 기본에 넣었습니까?

특히 Drupal 6에 대해 이야기하고 있습니다.


모듈 수 하려고 어디서나 드루팔 사이트의 임시 파일을 만들 수 있지만, 서버 구성이 허용하는 경우에만 성공합니다. 참조 : drupal.org/node/244924
August1914에게

답변:


16

파일은 다음을 리턴하는 file_directory_temp () 에서 이름이 리턴되는 디렉토리에 작성됩니다 .

  • Drupal 변수 "file_temporary_path"의 값은 admin / config / media / file-system (Drupal 7) 또는 admin / settings / file-system (Drupal 6)의 설정 페이지에서 설정됩니다.

  • Drupal 변수가 설정되어 있지 않으면 함수는 다음 디렉토리 중 하나를 검사합니다. 해당 디렉토리 중 하나가 존재하면 리턴되어 사용됩니다.

    • 반환 된 디렉토리 ini_get('upload_tmp_dir')
    • Windows에서 "c : \ windows \ temp"및 "c : \ winnt \ temp"디렉토리
    • Windows와 다른 OS 인 경우 "/ tmp"디렉토리
    • PHP 버전 5.2.1 이상에서는에서 반환 된 디렉토리 sys_get_temp_dir()입니다.
  • "file_temporary_path"변수가 설정되지 않고 이전 지점에 나열된 디렉토리가 존재하지 않거나 쓸 수없는 경우, 함수는 Drupal 변수 "file_public_path"의 값을 사용합니다. 기본적으로 해당 디렉토리는 conf_path() . '/files'Drupal 사이트에 사용 된 setting.php 파일을 포함하는 디렉토리에 포함 된 "files"디렉토리 값 을가집니다.

이 함수는 "file_temporary_path"변수를 찾은 디렉토리로 설정했습니다.

내가 아는 한, 모든 모듈은 "temporary : //"(Drupal 7 이상에서만 사용 가능)로 시작하는 경로를 사용하거나 임시 파일을 엽니 다 file_directory_temp(). 에서 반환 된 디렉토리는 file_directory_temp()시스템에서 시스템으로 변경할 수 있지만 모듈은 항상 해당 디렉토리를 사용합니다.

Drupal 모듈은 모듈을 포함하는 디렉토리를 작성할 수있는 권한이 없습니다. 모듈이 해당 디렉토리를 사용하여 임시 파일을 작성하는 것은 매우 어렵습니다. 모듈이 포함 된 디렉토리 (또는 해당 디렉토리의 하위 디렉토리)를 사용하는 모듈을 찾으면 버그로보고합니다.


귀하의 답변이 Drupal 6 또는 Drupal 7에만 적용됩니까?
iStryker

1
이것은 file_directory_temp()Drupal 6에 정의 된 대로 두 가지 모두에 적용되며, 기능 코드는 Drupal 6에서 Drupal 7로 전달되지 않습니다.
kiamlaluno

3

admin / settings / file-system의 설정 페이지에는 임시 파일에 사용되는 디렉토리에 대한 설정이 포함되어 있습니다.

일부 모듈은 임시 파일을 위해 다른 디렉토리를 선택할 수 있습니다. 표준 폴더 위치가 없습니다.

예를 들어, ctools 모듈은 / sites / default / files / ctools 디렉토리에 임시 캐시 파일을 작성합니다. 다를 수 있습니다.


모듈이 드루팔 사이트의 어느 곳에서나 임시 파일을 만들 수 있다고 말하고 있습니까? 루트 / 테마 루트 / 모듈 등에서도 만들 수 있습니까?
AgA

예, 모듈은 어디에서나 임시 파일을 만들 수 있습니다. 그들은 ctools처럼 보통 하나의 폴더에 보관합니다. 내 경험상 모듈이 자체 임시 디렉토리를 만드는 것은 드 rare니다. 대부분의 모듈은 Chris가 말하는 기본 임시 디렉토리를 사용합니다.
iStryker

@iStryker 오늘 저는 웹 사이트의 해당 보고서 / 상태 섹션에서 "파일 디렉토리가 보호되지 않습니다"라는 오류를보고 drupal.org/forum/newsletters/… 를 제안 하여 파일 디렉토리에 .htaccess를 만들고 "Deny from from 코드 실행 방지를 위해 임시 파일 디렉토리에있는 .htaccess의 all " 혼란 스러워요. 모든 모듈에 자체 폴더가있는 'tmp'폴더입니까? 모든 폴더에 .htaccess 파일을 넣어야합니까?
Umair
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.