Acabei de testar seu arquivo php no meu servidor e ele funciona muito bem.
O problema deve ser que o usuário www-data
não tenha permissões de gravação para essa pasta.
Se, de fato, esse usuário não tiver permissões de gravação para essa pasta, você verá mensagens de erro no arquivo /var/log/apache2/error.log
Para ver os últimos erros, faça
tail -n 15 /var/log/apache2/error.log
Por exemplo, se eu, em vez de "test.txt", coloco "/test.txt" (escrevo para /, eram apenas root can) recebo este erro dentro do arquivo de log:
[:error] [pid 7505] [client 127.0.0.1:47066] PHP Warning: fopen(/test.txt): failed to open stream: Permission denied in /var/www/html/a.php on line 2
O texto acima afirma claramente que a permissão é negada.
Você pode corrigir esse problema dando permissão de gravação para essa pasta para o usuário www-data
.
dê permissão específica ao usuário para escrever para uma pasta usando a notação + w