web-gelistirme-sc.com

Geçici dizini yapılandırma

Yakın zamanda bir siteyi bir localhost'tan VPS'ye taşıdım. Genel ve özel dosyaları yazılabilir hale getirmeyi başardım; ancak, geçici klasörü nerede bulacağımı ve izinleri nasıl değiştireceğimi bilmiyorum. Bu mesajı almaya devam ediyorum:

Belirtilen geçici dosya: // file3Hl91E, hedef dizin düzgün yapılandırılmadığından kopyalanamadı. Bunun nedeni dosya veya dizin izinleriyle ilgili bir sorun olabilir. Daha fazla bilgi sistem günlüğünde bulunur.

Virtualmin, Drupal 7 ve bir Debian sunucusu kullanıyorum. Geçerli geçici dizinim /tmp.

49
Jasmine Ahmed

Tmp yolunuzu kişiselleştirmek için Yönetici -> Yapılandırma -> Medya -> Dosya Sistemi öğelerini kontrol edin. Göreli yolları kullandığınızdan ve Apache kullanıcısı için doğru ayrıcalıklara sahip olduğunuzdan emin olun.

Şahsen bu makaleyi beğendim düzeltme dosyası yükleme . İyi gözlemleri var. Benim için çalıştı.

Son zamanlarda sitemi Mac bilgisayarıma indirdim. Mac bilgisayarımda mod_userdir Apache için ve bunu /etc/Apache2/users/nameofuser.confAllowOverride All, aksi takdirde aşağıdaki iletiye sahip olacağım:

Hedef dizin düzgün yapılandırılmadığı için belirtilen geçici dosya kopyalanamadı.

47
cayerdis

Ayarlarınızda. Php

$conf['file_temporary_path'] = '/tmp';

Bu,% 99 oranında unix sistemlerinde çalışacaktır.

Genellikle/tmp dizini, açık izinlere sahip UNIX sistemlerinde bulunur ve özellikle geçici dosyalar için bulunur ve genellikle performansı artırmak için ayarlanır.

Komut satırında ls -al /tmp Çalıştırarak izinleri kontrol edebilirsiniz.

Bununla ilgili daha fazla okumak istiyorsanız, bkz. https://en.wikipedia.org/wiki/Temporary_folder

18
chim

Belirtilen geçici dizinizin (admin/config/media/dosya sisteminde tanımlandığı gibi) hem de geçici dosyanın kopyalanacağı klasörde bir izin sorununun var olabileceğini anlamak önemlidir. Bu hatayı birkaç kez gördüm ve genellikle geçici klasörle ilgili bir sorun değil, ancak bu dosyanın kopyalandığı son klasör sonra temp klasöründe yaşıyor.

Ayrıca, ortak dosya sistemi yolunun doğru ayarlandığından emin olun.

17
sheldonkreger

Ben tam olarak bu sorun vardı ve önerilen olarak benim tmp klasörü konumu için göreli yol (sites/default/files/tmp) kullandığınızdan emin oldum ve ben de Apache tarafından yazılabilir olduğundan emin olmak için tmp klasörü izinlerini değiştirdim ama sorunum hala mevcut . bu yüzden sorunun ne olduğunu daha iyi anlayabildiğini görmek için günlük mesajlarını (Raporlar >> Son günlük mesajları) kontrol etmeye karar verdim. Bunu yaparak daha özel bir mesaj aldım:

Dosya izinleri herkese açık olarak ayarlanamadı: // js.

Bu siteler/varsayılan/dosyaları js klasöründe izinleri kontrol etmem için beni uyardı ve Apache yazdıramadı bu yüzden izinleri 775 olarak değiştirerek o klasörde hata iletimi kurtuldum. Bu yüzden, sorununuzu henüz çözmediyseniz, siteler/varsayılan/dosyalardaki tüm alt klasörlerin izinlerini kontrol etmenizi öneririz. Sadece bu bilgiyi paylaşacağımı düşündüm.

7
Andew

dosya sistemi ayarlarını admin/config/media/file-system/tmp olarak değiştirin

ayrıca herhangi bir ayar sorunu için admin/raporları/durumunu kontrol edebilirsiniz

about/tmp izni 755 verebilirsiniz ve/public_html içinde bulabilirsiniz

5
Ahmed

Hata mesajı bazen yanıltıcı olabilir

Sorunun hedef dizinle ilgisi olduğunu söylüyorsa, Apache muhtemelen Drupal dosyasının dosyayı koymak istediği sites/default/files alt klasörüne yazma iznine sahip değildir.

Apache kullanıcısını sites/default/files altındaki tüm dosyaların ve dizinlerin sahibi yapmak iyi bir çözümdür

cd /path/to/sites/default
Sudo chown -R _www:_www files

Veya benzer bir şey, hedef dizin sorunlarını çözmelidir. Sahibinin tüm alt dizinlerde yazma ve yürütme izinleri olduğunu iki kez kontrol edin.

2
chim

Dosya dizini: Apache Tabanlı Web Sunucularında Sorun Giderme

Dizin dosyaları Web sunucusu tarafından "sahiplenilmezse" ilerlemenin iki yolu vardır. Bu talimatlar, Web sunucusuna Shell erişiminiz olduğunu varsayar. Shell erişiminiz yoksa, ek destek için lütfen barındırma sağlayıcınıza başvurun.

İdeal olarak, dizin dosyalarının "sahibini" Web sunucusunun adıyla eşleşecek şekilde değiştirebilirsiniz. Unix veya Linux tabanlı bir sunucuda, aşağıdaki komutları vererek Web sunucusunun "kimlerin" çalıştığını doğrulayabilirsiniz:

$ ps aux  |grep Apache # for Apache 2.x
$ ps aux  |grep httpd # for Apache 1.x

Web sunucunuza bağlı olarak, bu komutlardan biri aşağıdaki gibi bir dizi satır döndürür:

www-data 13612  0.1  0.9  50640 20340 ? S 12:29   0:08 /usr/sbin/Apache2 -k start

Döndürülen metindeki ilk sütun, Web sunucunuzun çalıştığı "kullanıcı" dır. Bu durumda kullanıcı www-verisidir. Dosya dizininizi Web sunucusu tarafından yazılabilir yapmak için, aşağıdaki komutu kullanarak sahipliğini yeniden atamanız gerekir:

$ chown -R www-data sites/default/files
$ chmod -R 0700 sites/default/files

Sunucunuzda klasörün sahipliğini değiştirmek için yeterli izniniz yoksa, en iyi ikinci seçenek, aşağıdaki komutla klasöre grup yazma erişimi sağlamaktır:

$ chmod -R 0770 sites/default/files

Yönetmenin izinlerini, yukarıda açıklandığı gibi bir FTP programı kullanarak da ayarlayabilmeniz gerekir.

Bu adımları tamamladıktan sonra Yönet -> Raporlar -> Durum raporuna giderek uygun izinlerin atandığını onaylayın. "Dosya sistemi" etiketli bölüme gidin ve ayarlarınızın doğru olduğundan emin olun.

Kaynak: Dosya dizini

2
Sukhjinder Singh

Bazı durumlarda bu, varsayılan/dosyalar içindeki 'ctools' ve 'js' klasörleri silinerek kolayca düzeltilebilir. Bu klasörler gerekirse sistem tarafından yeniden oluşturulur. Bazen varolan bir sitenin yeni yüklemesini yaparken bu klasörler zaten sorunlara neden olur. Ayrıca, CSS'niz mevcut bir sitenin yeni bir yüklemesini yaptıktan sonra çalışmazsa, bu dosyalar silinip drupal onları yeniden oluşturarak) düzeltilebilir.

2
Paul Trotter

Mevcut cevapların hiçbirini sevmiyorum, bu yüzden muhtemelen kendime bir tane başlatacağım, muhtemelen zamanla güncelleyeceğim. Temelde Shell komutlarıyla.

Şimdilik bunu sites/example.com:

MYSITE=example.com
FILES=sites/$MYSITE/files  
# CSS and JS might also cause trouble and advagg has its own dirs
TMPDIRS=$FILES/tmp $FILES/js $FILES/css $FILES/advagg_*
drush vset file_temporary_path $FILES/tmp # seems better than using /tmp
drush vset file_directory_temp $FILES/tmp
cd $(drush drupal-directory)   
chown www-data -R $TMPDIRS
chmod 755 -R $TMPDIRS
1
kqw

Eski ve sorunlu yapılandırma

chmod 664 -R /var/drupal-bc/sites/default/files
chmod 664 -R /var/drupal-bc/sites/default/private

drw-rw-r-- 2 www-data www-data  4096 Jul 31 12:35 files
drw-rw-r-- 3 www-data www-data  4096 Jul  5 15:08 private

Yeni ve iyi çalışır yapılandırma

chmod 774 -R /var/drupal-bc/sites/default/files
chmod 774 -R /var/drupal-bc/sites/default/private

drwxrwxr-- 2 www-data www-data  4096 Jul 31 12:35 files
drwxrwxr-- 3 www-data www-data  4096 Jul  5 15:08 private
1
Claudio Lente

Başka bir hata kaynağı da files klasörüne yazamamasıdır. Benim durumumda kullanarak çözdüm:

$chmod 777 sites/default/files/pictures/
1
freeman

Bir sunucudan diğerine geçtikten sonra aynı sorunu yaşadım.

Burada önerilen her şeyi denedim, klasörleri 755'e ayarladım.

Geçici klasörüm "" tmp7zXhVVCO "olarak ayarlandı ve aslında her yeniden denemeden sonra geçici dosyanın orada kopyalandığını gördüm, ancak yükleme başarısız oldu.

Ancak sorun hakların sahibi değil, 777'nin bu hatayı neden kaldırdığını, ancak hepimizin bunun üretim sitelerine gitmenin bir yolu olmadığını biliyoruz.

Yapmanız gereken geçici klasörünüzü "temp" veya sizin için uygun olan herhangi bir şeyle değiştirmek olduğu sürece, henüz mevcut değil, drupal Bu yeni klasörü Apache haklar ile oluşturacak, değil kullanıcı haklarla karşılaşacaksınız ve probleminiz çözüldü.

1
Kevin G

Pantheon'u kullanarak bu sorunla karşılaşırsanız ve (temp) dosya dizini yollarını ayarladıktan sonra hatayı almaya devam ederseniz, geliştirici kontrol panelinizdeki Bağlantı modunu Git'ten SFTP'ye değiştirmeniz gerekebilir.

Drupal siteniz Git tarafından yönetilen bir dizine dosya kaydetmeye çalışıyor olabilir (örneğin, Uyarlanabilir Temalar temasındaki mizanpaj ayarlarını ve benzerini değiştiriyorsanız). Bunu yapmak için, Dosyalar kaydedildikten sonra Git'e geri dönebilirsiniz ve kontrol paneli sizden sunucuda yapılan değişiklikleri yapmanızı isteyecektir.

1
Kay V

Göç konusunda da aynı sorunu yaşadım. Tüm siteler/varsayılan/dosyaları chmod 777 var ama hata hala oluyor. Sitelerde/varsayılan/dosyalarda 775 iznini değiştiriyorum ve mesaj kayboldu. Ben özel bir yol sorunu değildi, benim/var/tmp ama 775 iznidir.

1
Wood

Yapılandırma -> Medya -> Dosya Sisteminden/temp-catalogu kaldırdım. Ondan sonra hiç problem yaşamadım.

1
Filip

Ben de aynı problemi yaşadım.

IIS kullanıyordum. Son olarak sorun klasör siteleri/varsayılan/dosyalar ve tabii ki siteler/varsayılan/dosya/tmp izinleri içindi.

Sonunda klasörlere tekrar "Tam izinler" verdim ve işe yaradı.

Saygılarımızla

1
jorge_vicente

Geçici klasör için doğru izinler web sunucusu yapılandırmanıza bağlıdır.

Drupal ile PHP web sunucusunun modülü olarak, örneğin Apache gibi) çalıştırılıyorsa, Kullanıcı yönergesi kullanılarak ana web sunucusu yapılandırma dosyasında tanımlanan kullanıcının yazma özelliği olmalıdır ona erişim.

% grep -i "kullanıcı" /etc/httpd/conf/httpd.conf

Kullanıcı Apache

1
Taras