Como o Apache usa o usuário www-data, qualquer coisa que possa ser acessada pelo www-data (e está no diretório raiz da web) pode ser acessada por qualquer pessoa que se conecte ao seu servidor com um navegador da web. Pense nisso como se os visitantes do seu site fossem o usuário www-data.
A maneira mais fácil de corrigir o problema que você está tendo é simplesmente mover os arquivos que você deseja que somente o PHP acesse fora do diretório raiz da web. Por exemplo, digamos que sua raiz da web seja "/ var / www /" e você queira colocar seus arquivos em "/ data". Coloque seu script PHP no diretório "/ var / www /" e acesse os arquivos no script usando nomes absolutos:
<?php
// Load the contents of the file at "/data/test.txt" into the $data variable.
$data = file_get_contents("/data/test.txt");