एप्लिकेशन लॉगिंग के हिस्से के रूप में, मैं एक स्थानीय फ़ाइल खोलने का प्रयास कर रहा हूं, और यदि वह फ़ाइल पहले से मौजूद नहीं है, तो नया निर्माण करने के लिए। यहाँ मैं क्या है:PHP fopen() फ़ाइल नहीं बना रहा है अगर यह पहले से मौजूद नहीं है
$path = '/home/www/phpapp/logs/myawesome_logfile.txt';
$f = (file_exists($path))? fopen($path, "a+") : fopen($path, "w+");
fwrite($f, $msg);
fclose($f);
chmod($path, 0777);
मैं दोबारा जांच की है, और /logs
निर्देशिका chmod 0777 है, और मैं भी अपाचे के लिए यह chown'ing के अतिरिक्त कदम चला गया: अच्छा उपाय अपाचे। फिर भी, जब स्क्रिप्ट फ़ाइल खोलने के लिए जाती है, तो यह मुझे चेतावनी देता है कि फ़ाइल मौजूद नहीं है और बम बाहर है। कोई फ़ाइल कभी नहीं बनाई गई है।
क्या मुझे फ़ाइल बनाने के लिए fopen()
चेतावनी दबाने की आवश्यकता है?
नोट: मैंने 'file_exists()' के साथ तर्क जोड़ा है, यदि किसी भी कारण से मुझे 'ए +' पकड़ रहा था। –
क्या आप वास्तव में रूट पर अपना रास्ता शुरू करना चाहते हैं? यह आपकी ऐप की रूट निर्देशिका नहीं होगी, यह आपके सिस्टम की मूल निर्देशिका होगी। –
आपको क्यों लगता है कि त्रुटि दमन आपको फ़ाइल खोलने में मदद करेगा? –