Why do my PHP pages download or display the source, rather than executing the PHP code?
If you’re seeing this issue, it’s likely that a newly installed PHP version setup some Apache configuration options that’s overriding your Virtualmin PHP settings.
It’s a simple fix though, you just need to find the offending configuration and comment it out. The configuration to look for are “SetHandler” lines — those can be found using the following:
find /etc/httpd -type f | xargs grep -i sethandler
find /etc/apache2 -type f | xargs grep -i sethandler
Look for any lines like the following:
Note : There could be more than one — comment them all out, and then restart Apache.
And then comment that out, and restart Apache using the command
service httpd restart on CentOS or
service apache2 restart on Ubuntu/Debian.