अस्थायी निर्देशिका को कॉन्फ़िगर करना


48

मैंने हाल ही में एक साइट को लोकलहोस्ट से वीपीएस में स्थानांतरित किया है। मैंने सार्वजनिक और निजी फ़ाइलों को लिखने योग्य बनाने में कामयाबी हासिल की है; हालाँकि, मुझे यकीन नहीं है कि अस्थायी फ़ोल्डर कहाँ से प्राप्त करें और अनुमतियाँ कैसे बदलें। मुझे यह संदेश मिलता रहा:

निर्दिष्ट फ़ाइल अस्थायी: // file3Hl91E को कॉपी नहीं किया जा सकता, क्योंकि गंतव्य निर्देशिका ठीक से कॉन्फ़िगर नहीं की गई है। यह फ़ाइल या निर्देशिका अनुमतियों की समस्या के कारण हो सकता है। अधिक जानकारी सिस्टम लॉग में उपलब्ध है।

मैं Virtualmin, Drupal 7, और एक डेबियन सर्वर का उपयोग कर रहा हूं। मेरे वर्तमान अस्थायी निर्देशिका है /tmp

जवाबों:


46

अपने tmp पथ को निजीकृत करने के लिए प्रशासक -> विन्यास -> मीडिया -> फाइल सिस्टम की जाँच करें। रिश्तेदार पथ का उपयोग करना सुनिश्चित करें और Apache उपयोगकर्ता के लिए सही विशेषाधिकार हैं।

मुझे व्यक्तिगत रूप से यह लेख फिक्स फ़ाइल अपलोड पसंद है । उसके अच्छे अवलोकन हैं। इसने मेरे लिए काम किया।

हाल ही में, मैंने अपनी साइट को अपने मैक कंप्यूटर पर डाउनलोड किया। ऐसा होता है कि मेरे मैक में मैं mod_userdirअपाचे के लिए उपयोग कर रहा था और मैं भूल गया कि /etc/apache2/users/nameofuser.confमुझे सेट करने की आवश्यकता है AllowOverride All, अन्यथा मेरे पास निम्न संदेश होगा:

अस्थायी फ़ाइल को कॉपी नहीं किया जा सकता क्योंकि गंतव्य निर्देशिका ठीक से कॉन्फ़िगर नहीं की गई है।


लिंक नीचे है
pal4life

लिंक वापस आ गया है !! लेखक कृपया साइट वापस रख!
cayerdis

2
उत्तर में इन "टिप्पणियों" के संश्लेषण को जोड़ना अच्छा होगा।
फिंडी

4
लिंक फिर से नीचे है।
कारी वैष्णिन


17

अपनी सेटिंग में

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

यह 99% यूनिक्स सिस्टम पर काम करेगा।

आमतौर पर / tmp निर्देशिका खुली अनुमतियों के साथ UNIX सिस्टम पर मौजूद है, और यह विशेष रूप से अस्थायी फ़ाइलों के लिए मौजूद है और अक्सर प्रदर्शन को बेहतर बनाने के लिए स्थापित किया जाता है।

आप ls -al /tmpकमांड लाइन पर चलकर अनुमति की जांच कर सकते हैं ।

यदि आप इस पर आगे पढ़ने में रुचि रखते हैं, तो https://en.wikipedia.org/wiki/Temporary_folder देखें


1
मेरी राय में यह वास्तव में एक अच्छा जवाब नहीं है। कोई स्पष्टीकरण नहीं है और अगर /tmpसही अनुमति नहीं है तो काम नहीं करने की संभावना है । यह स्वीकृत उत्तर के साथ भी विरोधाभासी है (जो अपने आप में महान नहीं है)।
फिंडी फाइनेंस

मुझे नहीं लगता कि जवाब के लिए बहुत स्पष्टीकरण की आवश्यकता है, मैं कहूंगा कि $ conf चर सेटिंग्स में कैसे काम करता है। Drupal डेवलपर्स के लिए सामान्य ज्ञान है। इस उत्तर के बारे में एक अच्छी बात यह है कि यह संक्षिप्त है। मुझे यकीन नहीं है कि यह स्वीकृत उत्तर का खंडन करता है, स्वीकृत उत्तर काम करेगा और यह एक विकल्प है। इस विधि और UI के माध्यम से इसे करने के बीच का अंतर यह है कि यह कई परिवेशों में काम करेगा, लेकिन आपको इसे प्रत्येक वातावरण के लिए व्यक्तिगत रूप से UI में सेट करना होगा।
चिम

16

यह समझना महत्वपूर्ण है कि अनुमतियाँ समस्या आपके निर्दिष्ट अस्थायी निर्देशिका (जो व्यवस्थापक / कॉन्फ़िगरेशन / मीडिया / फ़ाइल-सिस्टम में परिभाषित की गई है) और उस फ़ोल्डर में जहां अस्थायी फ़ाइल की प्रतिलिपि बनाई जा सकती है, वहां मौजूद हो सकती है। मैंने इस त्रुटि को कुछ बार देखा है और यह आमतौर पर अस्थायी फ़ोल्डर के साथ कोई समस्या नहीं है, लेकिन अंतिम फ़ोल्डर जहां उस फ़ाइल को अस्थायी फ़ोल्डर में रहने के बाद कॉपी किया जाता है ।

यह भी सुनिश्चित करें कि सार्वजनिक फ़ाइल सिस्टम पथ सही तरीके से सेट है।


1
यह मेरे लिए मामला था। मेरे मामले में, मुझे USERNAME: apache (कुछ प्रणालियों पर समूह को कोई भी नहीं कहा जाएगा) पर नव-निर्मित / साइटों / डिफ़ॉल्ट / फ़ाइल निर्देशिका के स्वामित्व को सेट करने की आवश्यकता है।
इवान डोनोवन

8

मुझे यह सटीक समस्या थी और सुझाव के अनुसार अपने tmp फ़ोल्डर स्थान के लिए रिश्तेदार पथ (साइट / डिफ़ॉल्ट / फ़ाइलें / tmp) का उपयोग करना सुनिश्चित किया और मैंने यह सुनिश्चित करने के लिए tmp फ़ोल्डर में अनुमतियाँ भी बदल दीं ताकि यह सुनिश्चित हो सके कि यह अपाचे द्वारा योग्य है लेकिन मेरी समस्या अभी भी मौजूद है । इसलिए मैंने यह देखने के लिए लॉग संदेश (रिपोर्ट >> हाल के लॉग संदेश) की जांच करने का फैसला किया कि क्या मुझे समस्या की बेहतर समझ मिल सकती है। ऐसा करने से मुझे एक और विशिष्ट संदेश मिला:

फ़ाइल अनुमतियां सार्वजनिक नहीं की जा सकीं: // js।

इसने मुझे साइट्स / डिफॉल्ट / फाइलों में जेएस फोल्डर पर अनुमतियों की जांच करने के लिए प्रेरित किया और जैसा कि यह पता चलता है कि अपाचे इसे नहीं लिख सकता था इसलिए उस फ़ोल्डर में अनुमतियों को 775 में बदलकर मैंने अपने त्रुटि संदेश से छुटकारा पा लिया। तो मैं आपको सुझाव दूंगा कि आप सभी उप-फ़ोल्डर के लिए साइट्स / डिफॉल्ट / फाइलों की अनुमति की जांच करें और केवल tmp फ़ोल्डर की ही नहीं, अगर आपने अपनी समस्या को अभी तक हल नहीं किया है। बस सोचा था कि मैं यह जानकारी साझा करूंगा।


मेरा मुद्दा ऐसा ही था, लेकिन मैं इसे सही करने के लिए निम्नलिखित का उपयोग करता हूं: sudo chgrp -R www-data / var / www / mysite
वेव्सैलर

मान लें कि आप "775 में अनुमतियों को बदल रहे हैं " केsudo chgrp -R www-data /var/www/mysite साथ संयोजन कर रहे हैं । इसकी जरूरत नहीं है। Drupal को प्रत्येक फ़ोल्डर में लिखने की आवश्यकता नहीं है । केवल आपके सार्वजनिक, निजी और tmp फ़ाइलें फ़ोल्डर।
rovr138

हां - यहाँ महत्वपूर्ण बात, कि किसी अन्य उत्तर का उल्लेख नहीं किया गया है, गंतव्य निर्देशिका ढूंढ रहा है (आमतौर पर कहीं साइटों / डिफ़ॉल्ट / फाइलों के तहत - / css और / js प्रमुख उम्मीदवार हैं यदि आपके पास जेएस / सीएसएस का संघटन चालू है) और आप कर सकते हैं केवल लॉग देखकर।
विलियम टरेल

… * फिर भी * - व्यवस्थापक फॉर्म पर लेबल कहता है कि "यह निर्देशिका वेब पर पहुंच योग्य नहीं होनी चाहिए।", इसलिए जब तक आप अपाचे या नग्नेक्स में / साइट्स / डिफ़ॉल्ट / फाइलों / tmp को सुरक्षित करने के लिए कदम नहीं उठाते हैं, तब तक इसे डाल दें। एक बुरा विचार है।
विलियम टरेल

5

आप admin/config/media/file-system इसे / tmp में बदलने के लिए फ़ाइल सिस्टम सेटिंग्स पा सकते हैं

इसके अलावा, आप किसी भी सेटिंग समस्या के लिए व्यवस्थापक / रिपोर्ट / स्थिति देख सकते हैं

के बारे में / tmp अनुमति आप इसे 755 दे सकते हैं और आपको यह / public_html में मिल जाएगा


2

त्रुटि संदेश somteimes भ्रामक हो सकता है

यदि यह कहता है कि समस्या गंतव्य निर्देशिका के साथ है, तो Apache के पास शायद उन साइटों / डिफ़ॉल्ट / फ़ाइलों को लिखने की अनुमति नहीं है जो ड्रुपल चाहती है कि फ़ाइल को अंदर रखा जाए।

एक अच्छा समाधान है अपाचे उपयोगकर्ता को साइटों / डिफ़ॉल्ट / फाइलों के तहत सभी फाइलों और निर्देशिकाओं का मालिक बनाना

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

या कुछ इसी तरह गंतव्य निर्देशिका मुद्दों को फिर से करना चाहिए। डबल जांचें कि मालिक ने सभी उपनिर्देशिकाओं पर अनुमतियों को लिखा और निष्पादित किया है।


1
इस समाधान ने मेरा दिन बचा लिया, मैं Ubuntu 14.014 पर काम कर रहा हूं और यह किया हैchown -R www-data:www-data /var/www/html/sites/default/files/
ऋषि कुलश्रेष्ठ

2

फ़ाइलें निर्देशिका: समस्या निवारण अपाचे-आधारित वेब सर्वर

यदि वेब सर्वर द्वारा निर्देशिका फ़ाइलों का "स्वामित्व" नहीं है, तो आगे बढ़ने के दो तरीके हैं। ये निर्देश मानते हैं कि आपके पास वेब सर्वर तक शेल पहुंच है। यदि आपके पास शेल एक्सेस नहीं है, तो कृपया अतिरिक्त सहायता के लिए अपने होस्टिंग प्रदाता से संपर्क करें।

आदर्श रूप से आप वेब सर्वर के नाम से मिलान करने के लिए निर्देशिका फ़ाइलों के "मालिक" को बदल पाएंगे। यूनिक्स या लिनक्स-आधारित सर्वर पर आप निम्न कमांड जारी करके वेब सर्वर को "कौन" सत्यापित कर सकते हैं।

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

आपके वेब सर्वर के आधार पर इनमें से एक कमांड इस तरह की लाइनों की एक श्रृंखला लौटाएगा:

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

लौटे पाठ में पहला कॉलम "उपयोगकर्ता" है जिसे आपका वेब सर्वर के रूप में संचालित कर रहा है। इस मामले में उपयोगकर्ता www-data है। वेब सर्वर द्वारा आपकी फ़ाइलों की निर्देशिका को लेखनीय बनाने के लिए, आपको निम्नलिखित आदेश का उपयोग करके इसके स्वामित्व को पुन: असाइन करने की आवश्यकता है:

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

यदि आपके पास फ़ोल्डर के स्वामित्व को बदलने के लिए आपके सर्वर पर पर्याप्त अनुमति नहीं है, तो अगला सबसे अच्छा विकल्प निम्नलिखित कमांड के साथ फ़ोल्डर में समूह-लेखन की पहुंच प्रदान करना है:

$ chmod -R 0770 sites/default/files

आपको एफ़टीपी प्रोग्राम का उपयोग करके निर्देशिका की अनुमतियों को समायोजित करने में सक्षम होना चाहिए जैसा कि ऊपर उल्लिखित है।

एक बार जब आप इन चरणों को पूरा कर लेते हैं, तो यह पुष्टि करने के लिए उपयुक्त अनुमतियाँ दी जाती हैं कि व्यवस्थापक -> रिपोर्ट -> स्थिति रिपोर्ट पर नेविगेट करके असाइन किया गया है। "फ़ाइल सिस्टम" लेबल वाले अनुभाग पर स्क्रॉल करें और पुष्टि करें कि आपकी सेटिंग्स अब सही हैं।

स्रोत: फ़ाइलें निर्देशिका


1

त्रुटि का एक अन्य स्रोत यह है कि यह फाइल फ़ोल्डर में नहीं लिख सकता है। मेरे मामले में मैंने इसका उपयोग करके हल किया:

$chmod 777 sites/default/files/pictures/

15
वाह, सचमुच? 777 क्या स्पष्ट रूप से एक उत्पादन स्थल है? यह सिर्फ गैर जिम्मेदाराना सलाह है।
डेविड मिस्टर

हाँ, इसे 755 कम से कम दें।
user1359

@DavidMeister मैंने आपको अपटेड किया है लेकिन दुर्भाग्य से साझा होस्टिंग (उल्टी) पर कभी-कभी 777 एकमात्र तरीका है अपाचे एक फ़ोल्डर में लिख सकता है

@andrewtweber क्या आप इस बारे में निश्चित हैं? एक साझा होस्टिंग वातावरण में भी, 775 को लगभग उतना ही ढीला होना चाहिए जितना आपको मिलना चाहिए। क्या आप कृपया एक साझा होस्टिंग प्रदाता का उदाहरण दे सकते हैं जिसके लिए 777 की आवश्यकता है? यदि आप एक साझा सर्वर पर 777 का उपयोग करते हैं और आपके पास VPS नहीं है, तो सर्वर पर मौजूद अन्य सभी लोग आपकी फ़ाइलों तक पहुँच सकते हैं।
डेविड मिस्टर

3
@andrewtweber ने भी हाँ, सबक यह नहीं है कि "साझा होस्टिंग" के लिए 777 की आवश्यकता होती है, लेकिन "आकर्षक होस्टिंग" के लिए 777 की आवश्यकता होती है।
डेविड मिस्टर

1

कुछ स्थितियों में इसे डिफ़ॉल्ट रूप से / फ़ाइलों के भीतर 'ctools' और 'js' फ़ोल्डर को हटाकर आसानी से तय किया जा सकता है। यदि आवश्यक हो तो इन फ़ोल्डरों को सिस्टम द्वारा पुनः बनाया जाता है। कभी-कभी किसी मौजूदा साइट की नई स्थापना करते समय ये फ़ोल्डर पहले से ही समस्या पैदा करते हैं। इसके अलावा अगर आपका CSS किसी मौजूदा साइट की नई स्थापना करने के बाद काम नहीं कर रहा है, तो यह इन फ़ाइलों को हटाकर और ड्रुपल को फिर से बनाने के द्वारा भी तय किया जा सकता है।


0

मेरा पुराना और समस्याग्रस्त विन्यास

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

मेरा नया और काम ठीक विन्यास

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

हां, फ़ोल्डर का उपयोग करने में सक्षम होने के लिए निष्पादन आवश्यक है। 775 संभवतः 774 से अधिक उपयुक्त होगा। आपके मामले में आपका स्वामित्व 755 निर्धारित करने के तरीके के साथ भी एक अच्छा विकल्प होगा।
रॉबी

0

अस्थायी फ़ोल्डर के लिए सही अनुमतियाँ आपके वेब सर्वर कॉन्फ़िगरेशन पर निर्भर करती हैं।

यदि PHP के साथ Drupal को वेब सर्वर के मॉड्यूल के रूप में चलाया जा रहा है, उदाहरण के लिए Apache, जब उपयोगकर्ता जो उपयोगकर्ता के निर्देश का उपयोग करते हुए मुख्य वेब सर्वर कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया गया है, तो उसे लिखना चाहिए।

% grep -i "उपयोगकर्ता" /etc/httpd/conf/httpd.conf

उपयोगकर्ता अपाचे


0

एक सर्वर से दूसरे सर्वर पर जाने के बाद मुझे यही समस्या थी।

मैंने यहाँ सुझाए गए सभी चीज़ों की कोशिश की, फ़ोल्डर्स को 755 पर सेट करना और इसी तरह।

मेरा अस्थायी फ़ोल्डर "" tmp7zXhVVCO "पर सेट किया गया था और यह वास्तव में स्थापना फ़ाइलों को अच्छी तरह से कॉपी करता है, हर रिट्री के बाद मैंने टेम्प फाइल को वहां कॉपी किया, लेकिन स्थापना विफल रही।

हालांकि समस्या यह है कि मालिक अधिकार नहीं है, जो 777 इस त्रुटि को दूर करता है, लेकिन हम सभी जानते हैं कि यह उत्पादन साइटों पर जाने का एक तरीका नहीं है।

आपको क्या करना चाहिए, अपने अस्थायी फ़ोल्डर को किसी भी चीज़ में बदल दें, जैसे कि "अस्थायी" या जो भी आपको सूट करता है, जब तक यह अभी तक मौजूद नहीं है , ड्रुपल इस नए फ़ोल्डर को अपाचे अधिकारों के साथ बनाएगा , न कि उपयोगकर्ता अधिकारों और आपकी समस्या के लिए। हल हो जाएगा।


जब मैं ऐसा करता हूं तो मुझे त्रुटि मिलती हैThe directory ../temp2 does not exist and could not be created.
पॉल ट्रॉट्टर

0

मैं वास्तव में किसी भी मौजूदा जवाब को पसंद नहीं करता हूं, इसलिए मैं सिर्फ एक खुद को शुरू करने जा रहा हूं जिसे मैं समय के साथ अपडेट करूंगा। मुख्य रूप से शेल कमांड के साथ।

अभी के लिए, इसे यहां से चलाएं 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

0

कॉन्फ़िगरेशन से -> मीडिया -> फ़ाइल सिस्टम मैंने / अस्थायी-कैटलॉग को हटा दिया। उसके बाद मुझे कोई समस्या नहीं हुई।


0

प्रवास पर मेरा भी यही मुद्दा था। मैं सभी साइटों / डिफ़ॉल्ट / फ़ाइलों को 777 chmod है, लेकिन त्रुटि अभी भी होता है। मैं 775 साइटों / डिफ़ॉल्ट / फाइलों और संदेश के गायब होने की अनुमति देता हूं। मैं एक निजी पथ समस्या नहीं थी, मेरा / var / tmp लेकिन 775 अनुमति है।


0

यदि आप Pantheon का उपयोग कर इस समस्या को चलाते हैं और (temp) फ़ाइल निर्देशिका पथ (ओं) को सेट करने के बाद त्रुटि प्राप्त करना जारी रखते हैं, तो आपको Git से SFTP तक अपने देव उदाहरण डैशबोर्ड पर कनेक्शन मोड को स्विच करना पड़ सकता है।

आपकी Drupal साइट Git द्वारा प्रबंधित निर्देशिका में फ़ाइलों को सहेजने का प्रयास कर सकती है (जैसे कि यदि आप लेआउट सेटिंग्स बदल रहे हैं और अनुकूली विषयवस्तु थीम में पसंद कर रहे हैं)। ऐसा करने के लिए, SFTP पर स्विच करें। एक बार फाइल सेव हो जाने के बाद, आप Git पर वापस जा सकते हैं, और डैशबोर्ड आपको सर्वर पर किए गए परिवर्तनों को करने के लिए प्रेरित करेगा।


0

मुझे भी यही समस्या थी।

मैं Windows में IIS का उपयोग कर रहा था। अंत में समस्या फ़ोल्डर साइटों / डिफ़ॉल्ट / फ़ाइलों में अनुमतियों के लिए थी और जाहिर है, साइटों / डिफ़ॉल्ट / फाइलों / tmp में।

अंत में मैंने फिर से फ़ोल्डरों को "पूर्ण अनुमति" दी, और यह काम किया।

सादर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.