“PHP Warning: move_uploaded_file“ er en typisk webserverfeil med Nginx og vises når vi vil laste opp en fil til serveren. Mesteparten av tiden, når vi må laste opp sertifikater eller andre filer som ikke tilhører “Media”, ser vi ikke feilen i grensesnittet til adminCMS registrering.
I en mer konkret form, feilen “PHP Warning: move_uploaded_file” vi finner 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 feilen oppstår “PHP Warning: move_uploaded_file“ og hvordan vi løser det
Som jeg sa ovenfor, oppstår feilen når vi prøver å laste opp filer til webserveren.
"FastCGI sent in stderr
"Er typisk for servere som har PHP-FPM og Nginx som webprogramvare. Så problemet er et sted i forholdet til skriptet som filene lastes opp gjennom.
"move_uploaded_file(): Unable to move
"Forteller oss veldig tydelig at disse filene ikke kan lastes opp og flyttes til en annen mappe på webserveren av skriptet som utfører operasjonen.
Løs denne feilen PHP det løses veldig enkelt ved å angi de riktige tillatelsene på serveren, både for utførelsesskriptet, som den mest sannsynlige brukeren: nginx ikke hadde tilgang til, og for målmappen.
Hvis nettsidefilene ikke tilhører en bruker, slik det er på cPanel, VestaCP eller andre hosting-administrasjonsplattformer, så er løsningen nesten helt sikkert å gi nginx-brukeren tilgang til opplastingsmappen og scriptet.
For kodeeksemplet ovenfor vil vi utføre følgende kommando i SSH:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
Vi gjenopptar opplastingen og alt skal fungere uten feil “move_uploaded_file(): Unable to move“.
Hvis du fortsatt har problemer, kan det løses i kommentarene til denne opplæringen.