Tập tin tạm thời được tạo ở đâu?


12

Tôi muốn biết nơi Drupal (hoặc các mô-đun của nó) tạo các tệp tạm thời. Họ có đặt trong các trang web / mặc định?

Tôi đặc biệt nói về Drupal 6.


Các mô-đun có thể cố gắng tạo các tệp tạm thời ở bất cứ đâu trên trang web drupal, nhưng sẽ chỉ thành công khi cấu hình máy chủ cho phép. Xem: drupal.org/node/244924
August1914

Câu trả lời:


16

Các tệp được tạo trong thư mục có tên được trả về từ file_directory_temp () trả về:

  • Giá trị của biến Drupal "file_t tạm_path", được đặt từ trang cài đặt trên admin / config / media / file-system (Drupal 7) hoặc admin / settings / file-system (Drupal 6).

  • Nếu biến Drupal đó không được đặt, thì hàm sẽ kiểm tra một trong các thư mục sau; nếu một trong những thư mục đó tồn tại, thì nó được trả về (và được sử dụng).

    • thư mục trở về từ ini_get('upload_tmp_dir')
    • trên Windows, các thư mục "c: \ windows \ temp" và "c: \ winnt \ temp."
    • trên các hệ điều hành khác với Windows, thư mục "/ tmp."
    • trên phiên bản PHP 5.2.1 trở lên, thư mục được trả về bởi sys_get_temp_dir().
  • Nếu biến "file_t tạm_path" không được đặt và các thư mục tôi liệt kê ở điểm trước không tồn tại hoặc không thể ghi được, thì hàm sử dụng giá trị của biến Drupal "file_public_path"; theo mặc định, thư mục đó có giá trị conf_path() . '/files'là thư mục "tệp" có trong thư mục chứa tệp settings.php được sử dụng cho trang web Drupal.

Hàm đặt biến "file_t tạm_path" vào thư mục mà nó tìm thấy.

Theo tôi biết, bất kỳ mô-đun nào cũng mở các tệp tạm thời bằng cách sử dụng đường dẫn bắt đầu bằng "tạm thời: //" (chỉ khả dụng trong Drupal 7 trở lên) hoặc sử dụng file_directory_temp(). Thư mục được trả về từ file_directory_temp()có thể thay đổi từ hệ thống này sang hệ thống khác, nhưng các mô-đun luôn sử dụng thư mục đó.

Các mô-đun Drupal không có quyền viết thư mục chứa các mô-đun; một mô-đun sử dụng thư mục đó để tạo các tệp tạm thời khá khó khăn. Nếu bạn tìm thấy một mô-đun sử dụng thư mục chứa các mô-đun (hoặc bất kỳ thư mục con nào của thư mục đó) thì đó là một lỗi.


câu trả lời của bạn áp dụng cho Drupal 6 hay chỉ Drupal 7?
iStryker

1
Nó cũng áp dụng cho cả hai, như file_directory_temp()được định nghĩa trong Drupal 6, và mã cho chức năng không thay đổi chuyển từ Drupal 6 sang Drupal 7.
kiamlaluno

3

Trang cài đặt tại admin / settings / file-system chứa các cài đặt cho thư mục được sử dụng cho các tệp tạm thời.

Một số mô-đun có thể chọn một thư mục khác cho các tệp tạm thời. Không có vị trí thư mục tiêu chuẩn.

Ví dụ, mô-đun ctools sẽ tạo các tệp được lưu trong bộ nhớ cache tạm thời trong thư mục / sites / default / files / ctools. Vì vậy, nó có thể thay đổi.


Bạn đang nói rằng một mô-đun có thể tạo tệp tạm thời ở bất cứ đâu trong trang web drupal? Nó cũng có thể tạo trong root / chủ đề gốc / mô-đun vv?
AgA

Có, các mô-đun có thể tạo các tập tin tạm thời ở bất cứ đâu. Họ thường giữ chúng trong một thư mục, cũng như ctools. Từ mô-đun kinh nghiệm của tôi tạo thư mục tạm thời của riêng họ là rất hiếm. Hầu hết các mô-đun sử dụng thư mục tạm thời mặc định Chris nói về.
iStryker

@iStryker Hôm nay tôi thấy một lỗi trong các báo cáo / phần trạng thái của trang web của tôi nói rằng "các thư mục file không được bảo vệ" và đề nghị drupal.org/forum/newsletters/... để tạo .htaccess trong thư mục tập tin và cũng đặt "Từ chối từ tất cả "trong .htaccess được tìm thấy trong thư mục tệp tạm thời để ngăn chặn thực thi mã. Tôi bị bối rối. Đây có phải là thư mục 'tmp' một số nơi hoặc mỗi mô-đun có thư mục riêng không? Tôi có phải đặt tệp .htaccess vào mọi thư mục không?
Umair
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.