दिलचस्प पोस्ट
एचटीटीपीएस पर @ फ़ॉन्ट चेहरा ईओटी लोड नहीं हो रहा है PHP में एक छवि आउटपुट करें Android AsyncTask थ्रेड की सीमाएं? ArrayIndexOutOfBoundsException जब किसी सरणी के सभी तत्वों के जरिए घुमाने जाते हैं बाएं Outer रेल 3 में मिलती है जावा BufferedWriter utf-8 के साथ वस्तु पीएचपी आउटपुट एक प्रश्न चिह्न के साथ छोटे काले हीरे दिखाते हैं मैं पारदर्शी UIView के पीछे एक बटन कैसे पर क्लिक कर सकता हूं? .NET के लिए सबसे परिपक्व बीडीडी फ्रेमवर्क क्या है? ओपनएमपी, परमाणु बनाम महत्वपूर्ण? क्या स्ट्रस्ट को गड़बड़ में बदलना चाहिए? नया आउटलेट कनेक्शन सम्मिलित नहीं किया जा सका कैसे आप दृश्य स्टूडियो में ऑटो प्रारूप कोड करते हैं? onClick मोबाइल (टच) पर काम नहीं कर रहा है ग्रहण "त्रुटि: मुख्य वर्ग को ढूँढ या लोड नहीं किया जा सका"

file_put_contents अनुमति अस्वीकृत

मैं डीबगिंग के लिए एक फ़ाइल में कोई क्वेरी लिखने का प्रयास कर रहा हूं। फ़ाइल database/execute.php मैं जिस फ़ाइल को लिखना चाहता हूँ वह database/queries.php

मैं file_put_contents('queries.txt', $query) का उपयोग करने की कोशिश कर रहा हूं

लेकिन मुझे मिल रहा है

file_put_contents (queries.txt) [function.file-put-content]: स्ट्रीम को खोलने में असफल: अनुमति अस्वीकृत

मेरे पास प्रश्न है। 7। 7। फाइल करने के लिए। 777, यह समस्या क्या हो सकती है?

Solutions Collecting From Web of "file_put_contents अनुमति अस्वीकृत"

निर्देशिका अनुमति समायोजित करने का प्रयास करें

टर्मिनल से, chmod 777 database चलाएं (निर्देशिका से जिसमें डेटाबेस फ़ोल्डर है)

अपाचे और किसी को भी इस निर्देशिका का उपयोग नहीं होगा यदि यह सही ढंग से chmodded है

दूसरी बात यह है कि "getcwd ()" गूंज है यह आपको वर्तमान निर्देशिका दिखाएगा, और यदि यह '/something…/database/' नहीं है तो आपको 'query.txt' को अपने सर्वर के पूर्ण पथ में बदलने की आवश्यकता होगी।

एहसास यह अब बहुत पुराना है, लेकिन इस तरह से एक फाइल में मैन्युअल रूप से प्रश्नों को लिखने की आवश्यकता नहीं है। MySQL में लॉगिंग समर्थन का निर्माण किया गया है, आपको इसे अपने देव वातावरण में सक्षम करने की आवश्यकता है।

'सामान्य प्रश्न लॉग' के लिए दस्तावेज़ीकरण पर एक नज़र डालें:

http://dev.mysql.com/doc/refman/5.1/en/query-log.html

दूसरा विकल्प

यह है कि आप Apache (www-data) , फ़ोल्डर के स्वामी कर सकते हैं

 sudo chown -R www-data:www-data /var/www 

जिससे file_put_contents अब काम करना चाहिए लेकिन अधिक सुरक्षा के लिए आप नीचे की तरह अनुमतियों को बेहतर सेट भी कर सकते हैं

 find /var/www -type d -print0 | xargs -0 chmod 0755 # folder find /var/www -type f -print0 | xargs -0 chmod 0644 # files 
  • अपने php फ़ाइलों के मूल फ़ोल्डर में /var/www बदलें

दोस्तों, मुझे 1 महीने के लिए इस समस्या थी और सब कुछ किया लेकिन इसे ठीक नहीं किया जा सका, लेकिन अब मुझे समाधान पता है

मैं एक साझा लिनक्स होस्टिंग का उपयोग करता हूं, जब मेरे व्यवस्थापक ने PHP को 5.3 में बदल दिया है, तो मुझे "file_put_contents" कोड के लिए बहुत सी त्रुटि मिलती है। मेरी योजना का परीक्षण करने का प्रयास करें:

अपने मेजबान में एक फ़ाइल बनाते हैं जैसे mytest.php, और इस कोड में डाल दिया और सहेजें:

 <?php mail('Your-EMail','Email-Title','Email-Message'); ?> 

एक बार यूआरएल "www.your-domain.com/mytest.php" खोलें और फिर अपना ईमेल जांचें आपके पास आपके होस्ट से आपके द्वारा दर्ज की गई जानकारी के साथ एक ईमेल होना चाहिए, प्रेषक का नाम जांचें। अगर इसकी कोई भी आपके पास "अनुमति अस्वीकृत" के बारे में समस्या है, क्योंकि कुछ परिभाषित नहीं है और यदि प्रेषक का नाम मेरी आईडी जैसा है: iietj8qy@hostname5.netly.net आपको समस्या नहीं है

मेरे व्यवस्थापक ने सर्वर को बदल दिया और मेजबान को फिर से स्थापित किया और मुझे लगता है कि समस्या हल हो गई है, अपने होस्ट प्रशासन को बताओ कि मैंने आपको क्या बताया और शायद उन्हें जवाब मिल जाए।

आशा है कि यह आपको मदद करता है!

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

लिनक्स में अनुमतियाँ तीन अंकों के साथ प्रदर्शित की जा सकती हैं। पहला अंक फ़ाइलों के मालिक की अनुमति को परिभाषित करता है। उपयोगकर्ताओं के एक विशिष्ट समूह की अनुमतियों का दूसरा अंक। तीसरा अंक उन सभी उपयोगकर्ताओं के लिए अनुमतियों को परिभाषित करता है जो स्वामी नहीं हैं और न ही समूह के सदस्य हैं।

वेबसर्वर को एक ऐसे आईडी से निष्पादित करना चाहिए जो समूह का सदस्य है। फ़ाइलों और निर्देशिकाओं के स्वामी के रूप में वेब सर्वर को एक ही आईडी के साथ कभी नहीं चलाना चाहिए। उबंटू में आईडी-डेटा के तहत अपाचे चलाया जाता है वह आईडी समूह का सदस्य होना चाहिए जिसके लिए अनुमतियां निर्दिष्ट हैं।

उस निर्देशिका को देने के लिए जिसमें आप उचित अधिकारों की फ़ाइलों की सामग्री को बदलना चाहते हैं, कथन निष्पादित करें:

 find %DIR% -type d -exec chmod 770 {} \; 

.कि ओपी के सवाल में संकेत मिलता है कि निर्देशिका% ROOT% / डेटाबेस के लिए अनुमतियों को तदनुसार बदला जाना चाहिए। यह महत्वपूर्ण है कि उस निर्देशिका में ऐसी फाइलें न करें जो कि कभी भी बदले, या हटाए जाएं। यह उन फ़ाइलों के लिए एक अलग निर्देशिका बनाने के लिए सर्वोत्तम अभ्यास है, जिनकी सामग्री को बदलना होगा।

एक निर्देशिका के लिए अनुमतियाँ (4) पढ़ना मतलब है कि सभी फाइलों और निर्देशिकाओं को एक निर्देशिका में अपने मेटाडेटा के साथ एकत्रित किया जा रहा है। लिखने की अनुमतियाँ (2) निर्देशिका की सामग्री को बदलने की अनुमति देता है। फाइलों को जोड़ने और हटाने, अनुमतियों को बदलने आदि की इजाज़त। क्रियान्वयन की अनुमति (1) का अर्थ है कि आपको उस निर्देशिका में जाने का अधिकार है बाद के बिना यह निर्देशिका में गहरी जाना असंभव है। जब किसी फ़ाइल की सामग्री को परिवर्तित किया जाना चाहिए, तो वेबसर्वर को पढ़ने, लिखने और निष्पादित करने की आवश्यकता है इसके लिए समूह की संख्या 7 की आवश्यकता है

दूसरा वक्तव्य ओपी के प्रश्न में है:

 find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \; 

दस्तावेज़ पढ़ने और लिखने में सक्षम होने की आवश्यकता है, लेकिन फ़ाइल को निष्पादित करने की आवश्यकता नहीं है। 7 फाइलों के मालिक को दिया जाता है, समूह के लिए 6। वेबसर्वर को इसकी सामग्री बदलने के लिए फ़ाइल निष्पादित करने की अनुमति नहीं है। उन लिखने की अनुमतियां केवल उस निर्देशिका में फ़ाइलों को दी जानी चाहिए।

अन्य सभी उपयोगकर्ताओं को कोई अनुमति नहीं दी जानी चाहिए

उन निर्देशिकाओं के लिए जिनकी फाइलों को बदलने की आवश्यकता नहीं है, उन्हें 5 पर्याप्त समूह अनुमतियां हैं अनुमतियों और कुछ उदाहरणों के बारे में दस्तावेज़ीकरण:

https://wiki.debian.org/Permissions

https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions

http://www.linux.org/threads/file-permissions-chmod.4094/

उबंटू का उपयोग करने वाले और स्थानीय रूप से पेज लोड करते समय यह त्रुटि प्राप्त करने के लिए, लेकिन किसी वेब होस्टिंग सेवा पर नहीं,

मैंने नॉटिलस ( sudo nautilus ) खोलकर इसे तय किया है और उस फ़ाइल पर ठीक क्लिक करें जिसे आप खोलने का प्रयास कर रहे हैं, गुण> सेटिंग्स> पर क्लिक करें और 'हर किसी के लिए'

इस लिंक से जानकारी इकट्ठा करना stackoverflow-image save chmod 777 के साथ काम नहीं करता है और यूजर अज़रबैटी और लुक बर्गमैन से

अगर आप / etc / apache / envvars फाइल के नीचे देखने के लिए चाहते हैं तो आप कुछ देखेंगे:

 export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data 

अपाचे यूज़रनेम 'www-data' के तहत चलाया जाता है

'0755' का अर्थ है फ़ाइल स्वामी पढ़ / लिख / निष्पादित कर सकता है लेकिन समूह और अन्य उपयोगकर्ता लिख ​​नहीं सकते। इसलिए उर टर्मिनल में, आपके 'चित्र' फ़ोल्डर वाले फ़ोल्डर में सीडी। फिर टाइप करें:

 find images -type d -exec chmod 0755 {} \; find images -type f -exec chmod 0755 {} \; sudo chown -R www-data:www-data images 

मालिक को बदलने से पहले आपको पहले ही प्रमोशन बदलना होगा संकेत दिए जाने पर अपना पासवर्ड दर्ज करें यह चित्र फ़ोल्डर के 'www-data' मालिक को बनाएगा।

आपका अपलोड अब काम करना चाहिए

इस मुद्दे को हल करने के लिए 2 तरीके हैं
1. chmod 777 path-to-your-directory
अगर यह तब काम नहीं करता है
2. बस अपनी फ़ाइल query.txt का पूरा पथ प्रदान करें।

यहाँ समाधान एक यूआरएल से आईएमजी कॉपी करने के लिए यह यूआरएल: http://img.hiwab.com/php/img.jpg

 $image_Url=file_get_contents('http://img.hiwab.com/php/img.jpg'); 

इच्छित पाथ को .jpg साथ समाप्त करें

 $file_destino_path="imagenes/my_image.jpg"; file_put_contents($file_destino_path, $image_Url) 

इसके अलावा, जैसा कि file_put_contents man page में कहा गया है php.net , मुद्दों के नामकरण से सावधान रहना

 file_put_contents($dir."/file.txt", "hello"); 

काम नहीं कर सकते (भले ही यह वाक्यविन्यास पर सही है), लेकिन

 file_put_contents("$dir/file.txt", "hello"); 

काम करता है। मैंने इसे विभिन्न php स्थापित सर्वरों पर अनुभव किया