“PHP Warning: move_uploaded_file“ के साथ एक विशिष्ट वेब सर्वर त्रुटि है nginx और तब प्रकट होता है जब हम सर्वर पर फ़ाइल अपलोड करना चाहते हैं। अधिकांश समय, जब हमें प्रमाण पत्र या अन्य फाइलें अपलोड करनी होती हैं जो संबंधित नहीं होती हैं “Media”, हम के इंटरफ़ेस में त्रुटि नहीं देखते हैं adminसीएमएस पंजीकरण।
अधिक ठोस रूप में, त्रुटि “PHP Warning: move_uploaded_file” हम इसे में पाते हैं error.log
जैसा:
FastCGI sent in stderr: "PHP message: PHP Warning: move_uploaded_file(/srv/www/domain.test/public/file.file): failed to open stream: Permission denied in /srv/www/domain.test/public/script.php on line 748 PHP message: PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpqAVtWy'
त्रुटि क्यों होती है “PHP Warning: move_uploaded_file“ और हम इसे कैसे हल करते हैं
जैसा कि मैंने ऊपर कहा, त्रुटि तब होती है जब हम वेब सर्वर पर फाइल अपलोड करने का प्रयास करते हैं।
"FastCGI sent in stderr
"सर्वर के लिए विशिष्ट है जिसमें PHP-FPM है और nginx वेब सॉफ्टवेयर के रूप में। तो समस्या कहीं न कहीं स्क्रिप्ट के संबंध में है जिसके माध्यम से फ़ाइलें अपलोड की जाती हैं।
"move_uploaded_file(): Unable to move
"हमें बहुत स्पष्ट रूप से बताता है कि उन फ़ाइलों को अपलोड नहीं किया जा सकता है और ऑपरेशन करने वाली स्क्रिप्ट द्वारा वेब सर्वर पर किसी अन्य फ़ोल्डर में ले जाया जा सकता है।
इस त्रुटि का समाधान करें पीएचपी यह बहुत ही सरलता से हल किया जाता है, सर्वर पर सही अनुमतियाँ सेट करना, दोनों निष्पादन स्क्रिप्ट के लिए, जिसमें सबसे संभावित उपयोगकर्ता: nginx की पहुँच नहीं थी, और गंतव्य फ़ोल्डर के लिए।
यदि वेबसाइट फाइलें किसी उपयोगकर्ता की नहीं हैं, जैसा कि यह cPanel, VestaCP या अन्य होस्टिंग प्रबंधन प्लेटफॉर्म पर है, तो लगभग निश्चित रूप से समाधान nginx उपयोगकर्ता को अपलोड फ़ोल्डर और स्क्रिप्ट तक पहुंच प्रदान करना है।
उपरोक्त कोड उदाहरण के लिए, हम SSH में निम्न कमांड निष्पादित करेंगे:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
हम अपलोड करना फिर से शुरू करते हैं और सब कुछ त्रुटि के बिना काम करना चाहिए “move_uploaded_file(): Unable to move“.
यदि आपको अभी भी समस्या है, तो इसे इस ट्यूटोरियल की टिप्पणियों में हल किया जा सकता है।