“PHP Warning: move_uploaded_file“ ir tipiska tīmekļa servera kļūda ar nginx un parādās, kad mēs vēlamies augšupielādēt failu serverī. Lielāko daļu laika, kad mums ir jāaugšupielādē sertifikāti vai citi faili, kas nepieder “Media”, mēs neredzam kļūdu saskarnē adminCMS reģistrācija.
Konkrētāk sakot, kļūda “PHP Warning: move_uploaded_file” mēs to atrodam error.log
kā:
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'
Kāpēc rodas kļūda “PHP Warning: move_uploaded_file“ un kā mēs to risinām
Kā jau teicu iepriekš, kļūda rodas, mēģinot augšupielādēt failus tīmekļa serverī.
"FastCGI sent in stderr
”Tipisks serveriem, kuriem ir PHP-FPM un nginx kā tīmekļa programmatūra. Tātad problēma ir kaut kur saistībā ar skriptu, caur kuru tiek augšupielādēti faili.
"move_uploaded_file(): Unable to move
"Ļoti skaidri norāda, ka šos failus nevar augšupielādēt un pārvietot uz citu tīmekļa servera mapi ar skriptu, kas veic darbību.
Atrisiniet šo kļūdu PHP tas tiek atrisināts ļoti vienkārši, iestatot serverī pareizās atļaujas gan izpildes skriptam, kuram nebija piekļuves visticamākajam lietotājam: nginx, gan mērķa mapei.
Ja vietnes faili nepieder lietotājam, kā tas ir cPanel, VestaCP vai citās hostinga pārvaldības platformās, tad gandrīz noteikti risinājums ir nodrošināt nginx lietotājam piekļuvi augšupielādes mapei un skriptam.
Iepriekš minētajā koda piemērā mēs SSH izpildīsim šādu komandu:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
Mēs atsākam augšupielādi, un visam vajadzētu darboties bez kļūdām “move_uploaded_file(): Unable to move“.
Ja jums joprojām ir problēmas, tās var atrisināt šīs apmācības komentāros.