leyendo la documentacion de fopen() hay una nota que dice esto
Código:
Nota:
Si está experimentando problemas al leer y escribir ficheros y está usando la versión de módulo de servidor de PHP, asegúrese de que los ficheros y directorios que está usando sean accesibles por el proceso del servidor.
tiene toda la pinta de que sea por esto, por tema de privilegios o algo, porque al codigo no le veo fallo