2014-07-01 5 views
8

पर PHP के साथ फ़ाइल में लिखने में परेशानी होने के बाद मैं उबंटू 14.04 पर PHP 5.5.9 चला रहा हूं। मुझे एक फाइल में लिखने में परेशानी हो रही है। मुझे लगता है कि यह एक फ़ाइल अनुमति समस्या होनी चाहिए क्योंकि मुझे पूरा यकीन है कि कोड सही है। जिस उपयोगकर्ता को मैंने लॉग इन किया है, उस फ़ोल्डर में लिखने की अनुमति है जिसे मैं लिखने की कोशिश कर रहा हूं, लेकिन मुझे यकीन नहीं है कि लोकहोस्ट करता है या नहीं। मुझे यकीन नहीं है कि स्थानीयहोस्ट उपयोगकर्ता का नाम chmod का उपयोग करने के लिए क्या है। मैंने chmod 777 -R /var/www/html का उपयोग करने का प्रयास किया और स्क्रिप्ट अभी भी मेरे लक्षित फ़ोल्डर में लिखने में सक्षम नहीं है, जिसमें पथ /var/www/html/Projects/MD_ScrapingTool/files है।उबंटू

$file = 'filetest.txt'; 
if($handle = fopen($file, 'w')) { 
    $content = "123\n456"; 
    fwrite($handle, $content); 
    fclose($handle); 
} else { 
    echo "Could not open file for writing."; 
} 
+4

आपकी PHP फ़ाइल के शीर्ष पर 'error_reporting (E_ALL) 'के साथ, कौन सी त्रुटियां आउटपुट हो रही हैं? – ljacqu

+1

जब आप यह कोड चलाते हैं तो क्या होता है? क्या आप अपना गूंज स्टेटमेंट देखते हैं? यदि ऐसा है, तो इसका मतलब है कि आप एक फ़ाइल हैंडल नहीं खोल सकते हैं, जो एक संभावित संकेत है कि जिस फ़ाइल को आप फ़ाइल में निर्दिष्ट कर रहे हैं वह सही नहीं है। आप फ़ाइल के पूर्ण पथ का उपयोग करने का प्रयास कर सकते हैं। आप is_file का उपयोग कर सकते हैं और is_writable भी आपको डीबग करने में मदद के लिए कर सकते हैं। साथ ही, आप fopen, fwrite और fclose के साथ काम करने के बजाय file_put_contents का उपयोग करने पर विचार कर सकते हैं। – oliakaoil

+0

यदि आप स्वयं से अपनी समस्या का समाधान करते हैं तो आपको इसे एक उत्तर के रूप में पोस्ट करना चाहिए। यद्यपि उत्तर जोड़ने के लिए कृपया * प्रश्न * को संपादित न करें। – Flexo

उत्तर

16

कुछ और शोध के बाद, मुझे यह पता चला है। यहां किसी भी समस्या का समाधान करने का समाधान यहां दिया गया है:

चूंकि लोकलहोस्ट www-data समूह से संबंधित है, इसलिए मैंने अभी अपना उपयोगकर्ता उस समूह में जोड़ा है।

sudo usermod -a -G www-data my_username 

फिर, मैंने समूह में फ़ोल्डर जोड़ा।

sudo chgrp -R www-data /var/www 

फिर, मैंने www-data समूह को लिखने की अनुमति दी।

sudo chmod -R g+w /var/www 

यह किसी अन्य मुद्दे के बिना मेरे लिए काम करता है। धन्यवाद!

+0

बस जो मैं खोज रहा था! धन्यवाद। –

+1

आप नायक हैं <3। इसके अलावा एक है। – Gogol

0

open साथ पूर्ण पथ और फ़ाइल नाम देने का प्रयास करें::

$file = '/html/Projects/MD_ScrapingTool/files/filetest.txt'; 

तो फाइल मौजूद नहीं है, fopen'w' मोड के साथ फ़ाइल बनाने चाहिए यहाँ मेरी कोड है।

0

आप यह सत्यापित कर सकते हैं कि आपके पास फ़ोल्डर '/ html/Projects/MD_ScrapingTool/files /' फ़ोल्डर पर अनुमति है और एक पूर्ण पथ के साथ प्रयास करें।