O processo do Apache provavelmente não tem permissão para entrar em / home / user.
O Apache normalmente é executado como um usuário sem privilégios (comumente chamado de "http", "httpd" ou "www-data", mas existem variações). Esse usuário não tem permissão para entrar no diretório inicial de outro usuário.
Se você não estiver preocupado com segurança, a maneira mais fácil de contornar isso é adicionar permissão de execução mundial nos diretórios (algo como o modo 0711) e permissão de leitura mundial (0644) em os arquivos que você deseja disponibilizar para o servidor da web. Em um diretório, "executar" significa descer e "ler" significa listar os arquivos no diretório. Assim, ao conceder permissão de execução, você permite que o servidor da Web leia arquivos conhecidos (sujeitos às permissões do arquivo), mas não enumera o conteúdo do diretório.
Uma solução mais "correta" seria mover os arquivos para uma hierarquia de diretórios que não seja específica do usuário. Você poderia fazer isso, por exemplo, movendo os arquivos para algum outro local (fora do diretório home de um usuário específico) ou usando montagens de ligação. As permissões de arquivo ainda estariam em vigor, portanto, os arquivos precisariam ser legíveis para o servidor da Web, mas você não precisaria conceder ao servidor da Web qualquer acesso ao seu diretório inicial.