“PHP Warning: move_uploaded_file“ je tipična pogreška web poslužitelja s Nginx i pojavljuje se kada želimo prenijeti datoteku na poslužitelj. Većinu vremena, kada moramo učitati certifikate ili druge datoteke koje ne pripadaju “Media”, ne vidimo pogrešku u sučelju adminCMS registracija.
U konkretnijem obliku, greška “PHP Warning: move_uploaded_file” nalazimo ga u error.log
kao:
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'
Zašto dolazi do greške “PHP Warning: move_uploaded_file“ i kako to rješavamo
Kao što sam već rekao, greška se javlja kada pokušamo učitati datoteke na web poslužitelj.
"FastCGI sent in stderr
”To je tipično za poslužitelje koji imaju PHP-FPM i Nginx kao web softver. Dakle, problem je negdje u odnosu skripte preko koje se datoteke učitavaju.
"move_uploaded_file(): Unable to move
„Vrlo jasno nam govori da se te datoteke ne mogu učitati i premjestiti u drugu mapu na web poslužitelju pomoću skripte koja izvodi operaciju.
Riješite ovu pogrešku PHP rješava se vrlo jednostavno, postavljanjem ispravnih dozvola na poslužitelju, kako za skriptu za izvršavanje, kojoj najvjerojatniji korisnik: nginx nije imao pristup, tako i za odredišnu mapu.
Ako datoteke web stranice ne pripadaju korisniku, kao što je to na cPanelu, VestaCP ili drugim platformama za upravljanje hostingom, tada je gotovo sigurno rješenje dati korisniku nginx pristup mapi za prijenos i skripti.
Za gornji primjer koda, izvršit ćemo sljedeću naredbu u SSH:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
Nastavljamo s prijenosom i sve bi trebalo raditi bez greške “move_uploaded_file(): Unable to move“.
Ako i dalje imate problema, možete ih riješiti u komentarima ovog vodiča.