Cuando estamos manejando Archivos con PHP en un servidor linux tenemos que estar atentos a que manejaremos permisos en carpetas y archivos, probablemente muchas veces batallaste al subir archivos y manipularlos con PHP y al hacer el tipico print_r($_FILES) te retorna lo siguiente :
Esto se debe ha que subimos un archivo a nuestro servidor linux y de alguna manera linux lo almacena en algún lado, lo guarda en la carpeta tmp situada en raíz.
El problema es que la carpeta por defecto linux las pone como 644 archivos y 755 carpetas, en mi caso lo que yo hice fue asignarle permisos de 777 a la carpeta de tmp:
Ahora con el cambio de permisos a la carpeta tmp, si ejecutamos nuestro código php de nuevo ahora si podremos manipular nuestro archivo:
Conclusión: Este tipo de problemas son un dolor de cabeza y uno busca y busca por otros lado menos, hasta que te das cuenta que el problema no es de la lógica de programación sino de la configuración de tu server.