Geçici dosyalar nerede oluşturulur?


12

Drupal'ın (veya modüllerinin) geçici dosyaları nerede oluşturduğunu bilmek istiyorum. Sitelere mi konuyorlar / varsayılan mı?

Özellikle Drupal 6'dan bahsediyorum.


Modüller , drupal sitesinin herhangi bir yerinde geçici dosyalar oluşturmayı deneyebilir , ancak yalnızca sunucu yapılandırmasının izin verdiği yerlerde başarılı olur. Bakınız: drupal.org/node/244924
Ağustos1914

Yanıtlar:


16

Dosyalar, döndürülen dizinde oluşturulur ve döndüren: file_directory_temp () :

  • Admin / config / media / dosya sistemi (Drupal 7) veya admin / settings / dosya sistemi (Drupal 6) ayar sayfasından ayarlanan Drupal değişkeni "file_temporary_path" değeri.

  • Bu Drupal değişkeni ayarlanmamışsa, işlev aşağıdaki dizinlerden birini denetler; bu dizinlerden biri varsa, geri döndürülür (ve kullanılır).

    • dizinden döndü ini_get('upload_tmp_dir')
    • Windows'ta "c: \ windows \ temp" ve "c: \ winnt \ temp" dizinleri.
    • Windows'dan farklı işletim sistemlerinde "/ tmp" dizini.
    • PHP sürüm 5.2.1 veya üzeri sürümlerde, dizin tarafından döndürülür sys_get_temp_dir().
  • "File_temporary_path" değişkeni ayarlanmamışsa ve önceki noktada listelediğim dizinler mevcut değilse veya yazılamazsa, işlev Drupal değişkeni "file_public_path" değerini kullanır; varsayılan olarak bu dizin, conf_path() . '/files'Drupal sitesi için kullanılan setting.php dosyasını içeren dizinde bulunan "files" dizini değerine sahiptir .

İşlev, "file_temporary_path" değişkenini bulduğu dizine ayarlar.

Bildiğim kadarıyla, herhangi bir modül geçici dosyaları "geçici: //" (yalnızca Drupal 7 ve üzeri sürümlerde) ile başlayan bir yol kullanarak açar veya kullanır file_directory_temp(). Döndürülen dizin file_directory_temp()sistemden sisteme değişebilir, ancak modüller her zaman bu dizini kullanır.

Drupal modüllerinin modülleri içeren dizini yazma izni yoktur; bir modülün geçici dosyalar oluşturmak için bu dizini kullanması oldukça zordur. Modülleri içeren dizini (veya bu dizinin herhangi bir alt dizinini) kullanan bir modül bulursanız, bunu bir hata olarak bildirin.


cevabınız Drupal 6 veya sadece Drupal 7 için mi geçerli?
iStryker

1
file_directory_temp()Drupal 6'da da tanımlandığı gibi her ikisi için de geçerlidir ve fonksiyonun kodu Drupal 6'dan Drupal 7'ye geçişi değişmez.
kiamlaluno

3

Admin / settings / dosya sistemindeki ayar sayfası geçici dosyalar için kullanılan dizin ayarlarını içerir.

Bazı modüller geçici dosyalar için farklı bir dizin seçebilir. Standart klasör konumu yok.

Örneğin, ctools modülü / sites / default / files / ctools dizininde geçici önbellek dosyaları oluşturur. Bu yüzden değişebilir.


Bir modülün drupal sitenin herhangi bir yerinde geçici dosya oluşturabileceğini mi söylüyorsunuz? Kök / tema kökü / modülleri vb. De oluşturabilir mi?
AgA

Evet, modüller her yerde geçici dosyalar oluşturabilir. Genellikle ctools gibi onları tek bir klasörde tutarlar. Kendi geçici dizinlerini oluşturmak benim deneyim modülleri nadirdir. Çoğu modül, Chris'in bahsettiği varsayılan geçici dizini kullanır.
iStryker

@iStryker Bugün web sitemin raporlar / durum bölümünde "dosyalar dizini korumalı değil" diyerek bir hata gördüm ve drupal.org/forum/newsletters/… ' ı dosya dizininde .htaccess oluşturup "Deny from Tümü ".htaccess kod yürütme engellemesi için geçici dosyalar dizininde bulundu. Kafam karıştı. Bu 'tmp' klasörü mü, her modülün kendi klasörü var mı? Her klasöre .htaccess dosyası koymalı mıyım?
Umair
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.