“PHP Warning: move_uploaded_file“ é um erro típico do servidor web com NGINX e aparece quando queremos fazer upload de um arquivo para o servidor. Na maioria das vezes, quando temos que fazer upload de certificados ou outros arquivos que não pertencem “Media”, não vemos o erro na interface de adminCadastro CMS.
De uma forma mais concreta, o erro “PHP Warning: move_uploaded_file” nós o encontramos em error.log
Como:
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'
Por que o erro ocorre “PHP Warning: move_uploaded_file“ e como resolvemos
Como eu disse acima, o erro ocorre quando tentamos fazer upload de arquivos para o servidor web.
"FastCGI sent in stderr
”É típico para servidores que possuem PHP-FPM e NGINX como software web. Portanto, o problema está em algum lugar no relacionamento do script por meio do qual os arquivos são carregados.
"move_uploaded_file(): Unable to move
”Nos diz muito claramente que esses arquivos não podem ser carregados e movidos para outra pasta no servidor web pelo script que realiza a operação.
Resolva este erro PHP é resolvido de forma muito simples, definindo as permissões corretas no servidor, tanto para o script de execução, ao qual o usuário mais provável: nginx não teve acesso, quanto para a pasta de destino.
Se os arquivos do site não pertencem a um usuário, como é no cPanel, VestaCP ou outras plataformas de gerenciamento de hospedagem, então quase certamente a solução é dar ao usuário nginx acesso à pasta de upload e ao script.
Para o exemplo de código acima, executaremos o seguinte comando em SSH:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
Retomamos o upload e tudo deve funcionar sem erros “move_uploaded_file(): Unable to move“.
Se você ainda encontrar problemas, pode ser resolvido nos comentários deste tutorial.