“PHP Warning: move_uploaded_file“ er en typisk webserverfejl med Nginx og vises, når vi vil uploade en fil til serveren. Det meste af tiden, når vi skal uploade certifikater eller andre filer, der ikke hører til “Media”, ser vi ikke fejlen i grænsefladen af adminCMS registrering.
I en mere konkret form, fejlen “PHP Warning: move_uploaded_file” vi finder det i error.log
som:
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'
Hvorfor fejlen opstår “PHP Warning: move_uploaded_file“ og hvordan vi løser det
Som jeg sagde ovenfor, opstår fejlen, når vi forsøger at uploade filer til webserveren.
"FastCGI sent in stderr
”Er typisk for servere, der har PHP-FPM og Nginx som websoftware. Så problemet er et sted i forholdet til scriptet, hvorigennem filerne uploades.
"move_uploaded_file(): Unable to move
”Fortæller os meget tydeligt, at disse filer ikke kan uploades og flyttes til en anden mappe på webserveren af det script, der udfører handlingen.
Løs denne fejl PHP det løses meget enkelt ved at indstille de korrekte tilladelser på serveren, både for udførelsesscriptet, som den mest sandsynlige bruger: nginx ikke havde adgang til, og for destinationsmappen.
Hvis webstedsfilerne ikke tilhører en bruger, som det er på cPanel, VestaCP eller andre hosting-administrationsplatforme, så er løsningen næsten helt sikkert at give nginx-brugeren adgang til upload-mappen og scriptet.
For ovenstående kodeeksempel vil vi udføre følgende kommando i SSH:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
Vi genoptager upload, og alt skulle fungere uden fejl “move_uploaded_file(): Unable to move“.
Hvis du stadig har problemer, kan det løses i kommentarerne til denne vejledning.