Sempre que tenho esse tipo de problema, dou www-data um shell em /etc/passwd . Você pode alterá-lo de volta para nologin assim que terminar o teste.
Então eu su - www-data e manualmente tento executar o script. Se você tiver problemas relacionados a permissões, isso deve ajudá-lo a restringir o escopo. A execução de scripts de shell do php pode ocasionalmente produzir resultados inesperados.