Ciao Giuseppe,
Scusami dove mancherebbe DirectoryIndex index.php index.html index.htm ?
ho provato ad indovinare il problema .
Se funziona con 127.0.0.1 e non con localhost immagino che tu abbia IPv6 abilitato e che Apache sia "bindato" solo su 0.0.0.0 cioè IPv4 (cfr il file hosts dove è dichiarato come si risolve localhost) o ancora un differente <VirtualHost />.
Mi accorgo solo ora che hai detto Linux e non so perché immaginavo Windows : per il database e la sua raggiungibilità anche qui in assenza di maggiori dettagli posso immaginare che SELinux ti stia bloccando l'accesso al DB da parte di Apache/PHP:
setsebool -P httpd_can_network_connect 1 setsebool -P httpd_can_network_connect_db 1
HTH,
Matteo