2011-10-05 18 views
18

मैं वर्डप्रेस प्लगइन लिखना सीख रहा हूं। मुझे किसी XML फ़ाइल में कुछ डेटा लिखने में कुछ मदद चाहिए। मैं अपनी स्थानीय मशीन पर हूं, मैक चल रहा मैक। मेरे पास PHP 5.2.13 है। मेरी प्लगइन में, मुझे मिल गया है:PHP fopen() त्रुटि: स्ट्रीम खोलने में विफल: अनुमति

Warning: fopen(markers.xml) [function.fopen]: failed to open stream: Permission denied in /Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php on line 73

Warning: fwrite(): supplied argument is not a valid stream resource in /Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php on line 75

Warning: fclose(): supplied argument is not a valid stream resource in /Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php on line 76

मैं $ file_handle लाइन में निरपेक्ष पथ उपयोग करने की कोशिश: http://my_site/wp-content/plugins/my_plugin_folder/markers.xml

$file_handle = fopen('markers.xml', 'w'); 
$stringdata = "Test Info"; 
fwrite($file_handle, $stringdata); 
fclose($file_handle); 

ऊपर चल रहा है मुझे निम्न त्रुटि देता है। लेकिन, यह काम नहीं किया।

मैं भी markers.xml पर अनुमतियां बदलने के रूप में इस की कोशिश की:

(Me): पढ़ें & लिखें (अज्ञात): पढ़ें केवल हर कोई: पढ़ें & लिखें

किसी कारण के लिए, मेरे मैक मुझे पढ़ने के लिए (अज्ञात) & पढ़ने के लिए नहीं जाने देगा। मुझे यकीन नहीं है कि इससे कोई फर्क पड़ता है। मैंने फ़ाइल पर राइट-क्लिक किया और अनुमतियों को बदलने के लिए 'जानकारी प्राप्त करें' चुना।

phpinfo() में, मुझे मिल गया है:

"पंजीकृत पीएचपी स्ट्रीम https, FTPS, compress.zlib, compress.bzip2, php, फ़ाइल, डेटा, HTTP, FTP"

एक है समस्या का कारण WordPress सेटिंग? या यह सिर्फ PHP मुद्दा है?

इस समस्या को हल करने के तरीके पर कोई सुझाव?

धन्यवाद।

+0

की संभावित डुप्लिकेट [पीएचपी - धारा खोलने में विफल: ऐसा कोई फ़ाइल या निर्देशिका] (http://stackoverflow.com/questions/36577020/php-failed-to-open-stream-no-such-file-or- निर्देशिका) –

उत्तर

26

आपको व्यवस्थापक के रूप में अनुमतियों को बदलने की आवश्यकता हो सकती है। अपने मैक पर टर्मिनल खोलें और फिर निर्देशिका कि markers.xml में स्थित है खोलने फिर प्रकार:।

sudo chmod 777 markers.xml 

आप पासवर्ड के लिए संकेत मिल सकता है। साथ ही, यह निर्देशिकाएं हो सकती हैं जो पूर्ण पहुंच की अनुमति नहीं देती हैं। मैं वर्डप्रेस से परिचित नहीं हूं, इसलिए आपको प्रत्येक निर्देशिका की माइस्साइट निर्देशिका में ऊपर की ओर बढ़ने की अनुमति बदलनी पड़ सकती है।

+0

हाय @ क्रिस, संदेश के लिए धन्यवाद। मैंने markers.xml को 777 पर सेट किया है, लेकिन मुझे अभी भी त्रुटि मिल रही है। अगर मैं अपनी साइट पर जाने वाली निर्देशिकाओं को बदलता हूं, तो क्या कोई सुरक्षा समस्या नहीं होगी? कोई सलाह? धन्यवाद। – Laxmidi

+0

हाय @ क्रिस, मैंने chmod को 777 एक स्तर तक बदल दिया। मैंने मेजबान के थैबोलूट पथ की बजाय स्थानीय मशीन पर एक निरपेक्षता का भी उपयोग किया। यह अब काम करता है! धन्यवाद। – Laxmidi

+0

धन्यवाद! इसकी बहुत आवश्यकता में: डी – cwiggo

-3

[function.fopen]: failed to open stream

आप अपने php.ini फ़ाइल के लिए उपयोग किया है, तो fopen सक्षम करके देखें। संबंधित लाइन का पता लगाएं और यह सेट "पर" होने के लिए: & अगर में WP जैसे स्थानीय होस्ट/वर्डप्रेस/php.ini में function.fopen:

allow_url_fopen = off 
should bee this 
allow_url_fopen = On 

And add this line below it: 
allow_url_include = off 
should bee this 
allow_url_include = on 
+3

यह उत्तर पूर्ण बकवास है। समस्या को हल करने के बजाय आप एक सुरक्षा छेद पेश करते हैं। यदि आप पूरी तरह से प्रश्न पढ़ चुके होंगे तो आपने देखा होगा कि वह एक स्थानीय फ़ाइल खोलना चाहता है: fopen ('markers.xml', 'w'); लेकिन आपको allow_url_fopen = केवल Remote फ़ाइलों को खोलने की आवश्यकता है! उदाहरण के लिए fopen ('http://example.com/txml') के लिए; कृपया देखें http://www.antary.de/2011/05/26/php-curl-als-alternative-fuer-allow_url_fopen – Elmue

संबंधित मुद्दे