Seu script quase certamente está em execução e criando seu arquivo. Apenas não está criando onde você espera que seja. Você não está usando nenhum caminho em seu script, apenas usa um nome de arquivo. Isso significa que o arquivo será criado no diretório em que o script está sendo executado.
É por isso que, quando você entra em um diretório específico e executa o script, acha que funciona. Porque o arquivo é criado no diretório em que você o executou e assim você pode vê-lo. Por padrão, cron
é executado no diretório inicial do usuário que o executa. Como esse é o crontab do root (que, a propósito, é uma má idéia), o arquivo será criado em /root
. Então, vá checar:
sudo ls /root/test.txt
Então, da próxima vez, dê ao seu script um caminho completo em vez de apenas um nome de arquivo:
<?php file_put_contents ('/path/to/test.txt',"test content\n",FILE_APPEND); ?>
Agora, o arquivo será criado em /path/to
.