मैं php fopen फ़ंक्शन के साथ मेरी/tmp निर्देशिका (अपाचे सर्वर पर) फ़ाइल लिखने की कोशिश कर रहा हूं, लेकिन यह विफल रहता है:777 अनुमतियों के बावजूद php के साथ/tmp पर नहीं लिख सकता है और कोई open_basedir मान
<?php
$handle = fopen("/tmp/test.txt", "x");
if ($handle) echo "Success!";
else print_r(error_get_last());
?>
यह त्रुटि संदेश देता है "स्ट्रीम खोलने में विफल: ऐसी कोई फ़ाइल या निर्देशिका नहीं"।/Tmp निर्देशिका में अनुमतियां drwxrwxrwt पर सेट हैं और मैं देख सकता हूं कि वेब उपयोगकर्ता अन्य फाइलें लिख रहा है। रहस्यमय रूप से, अगर मैं अनुमति 777 के साथ स्क्रिप्ट को किसी अन्य फ़ोल्डर में इंगित करता हूं, तो यह सफलता देता है। लेकिन मेरे open_basedir के पास "कोई मूल्य नहीं है"। मेरे पास safe_mode = चालू है और allow_url_fopen = off है, लेकिन मुझे नहीं लगता कि इसे समझाया जाना चाहिए?
यह apache 2.0 पर php 5.3.10 है।
'test.txt' मौजूद है? – maialithar
नहीं, उपरोक्त स्क्रिप्ट का बिंदु यह जांचना है कि क्या मैं अपने/tmp फ़ोल्डर में फाइलें बना सकता हूं। मैंने स्क्रिप्ट को 'एक्स' और 'डब्ल्यू' झंडे दोनों के साथ करने की कोशिश की है। –
शायद chrooted? – Robus