Πώς να φτιάξεις: FastCGI sent in stderr – PHP message: PHP Warning: move_uploaded_file

PHP Warning: move_uploaded_file είναι ένα τυπικό σφάλμα διακομιστή ιστού με nginx και εμφανίζεται όταν θέλουμε να ανεβάσουμε ένα αρχείο στον διακομιστή. Τις περισσότερες φορές, όταν πρέπει να ανεβάσουμε πιστοποιητικά ή άλλα αρχεία που δεν ανήκουν “Media”, δεν βλέπουμε το σφάλμα στη διεπαφή του adminΕγγραφή CMS.

Σε πιο συγκεκριμένη μορφή, το λάθος “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 και πώς το λύνουμε

Όπως είπα παραπάνω, το σφάλμα παρουσιάζεται όταν προσπαθούμε να ανεβάσουμε αρχεία στον διακομιστή web.

"FastCGI sent in stderr"Είναι τυπικό για διακομιστές που έχουν PHP-FPM και nginx ως λογισμικό web. Άρα το πρόβλημα βρίσκεται κάπου στη σχέση του σεναρίου μέσω του οποίου ανεβαίνουν τα αρχεία.

"move_uploaded_file(): Unable to move"Μας λέει πολύ ξεκάθαρα ότι αυτά τα αρχεία δεν μπορούν να μεταφορτωθούν και να μετακινηθούν σε άλλο φάκελο στον διακομιστή ιστού από το σενάριο που εκτελεί τη λειτουργία.

Επιλύστε αυτό το σφάλμα PHP λύνεται πολύ απλά, ορίζοντας τα σωστά δικαιώματα στον διακομιστή, τόσο για το σενάριο εκτέλεσης, στο οποίο δεν είχε πρόσβαση ο πιο πιθανός χρήστης: 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.

Εάν εξακολουθείτε να αντιμετωπίζετε προβλήματα, μπορεί να λυθεί στα σχόλια αυτού του σεμιναρίου.

Παθιασμένος με την τεχνολογία, μου αρέσει να δοκιμάζω και να γράφω σεμινάρια για λειτουργικά συστήματα macOS, Το Linux, Windows, σχετικά με WordPress, WooCommerce και ρυθμίστε τους διακομιστές web LEMP (Linux, NGINX, MySQL και PHP). γράφω επάνω StealthSettings.com από το 2006 και λίγα χρόνια αργότερα άρχισα να γράφω στο iHowTo.Tips σεμινάρια και ειδήσεις σχετικά με συσκευές στο οικοσύστημα Apple: iPhone, iPad, Apple Παρακολουθήστε, HomePod, iMac, MacBook, AirPods και αξεσουάρ.

Αφήστε ένα σχόλιο