Apache Won't load after PHP Upgrade
I upgraded ubuntu from 19 to 20. In the process PHP 7.3 was removed & 7.4 was added
Then apache wouldn't start
sudo apachectl restart gave an error pointing at
/etc/apache2/apache2.conf, and subsequently pointing at
/etc/apache2/mods-enabled/php-7.3.load, so I opened it & saw it was pointing to
/usr/lib/apache2/modules/libphp7.3.so... which turned out not to exist any more.
/etc/apache2/apache2.conf has wildcard loading of enabled mods:
IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf
cd /etc/apache2/mods-enabled; ls; & confirmed the php-7.3 .load & .conf are there. I move them with
sudo mv php-7.3.conf ~/Documents/temp-backup/php-7.3.conf;sudo mv php-7.3.load ~/Documents/temp-backup/php-7.3.load;, which isn't really necessary because these are, I believe, the basic php 7.3 install files. I never modified them, anyway.
The php-7.3 module files are gone now (because I used
mv instead of
For good measure, I remove 7.3 before installing PHP 7.4
sudo apt-get remove php7.3 sudo apt autoremove # Once upon a time, my system broke because of this. Good thing I had backed up the list of packages sudo apt-get install php7.4 sudo apt-get install php # Not sure if I needed this, but I did it anyway sudo apt-get update # for good measure sudo apt-get upgrade
sudo apachectl start
dev.localhost in the browser AND!!!
... I see PHP code.
So I do a quick search, ending up on techrepublic.
They suggest adding a
<FilesMatch \.php$>\nSetHander application/x-httpd-php\n</FilesMatch> (note the two \n for new lines) to
/etc/apache2/apache2.conf, which I try... running
sudo apachectl restart & refreshing my
They suggest running
a2dismod mpm_event &
a2enmod mpm_prefork, which I ignore. Though I DO use
sudo a2enmod php7.4
sudo apachectl restart
And everything is working!
You may want to change the php versions from 7.3 & 7.4 & you may not need the removal step.
mkdir ~/Documents/temp-backup/; sudo mv /etc/apache2/mods-enabled/php-7.3.conf ~/Documents/temp-backup/php-7.3.conf; sudo mv /etc/apache2/mods-enabled/php-7.3.load ~/Documents/temp-backup/php-7.3.load; sudo apt-get remove php7.3 sudo apt autoremove # Once upon a time, my system broke because of this. Good thing I had backed up the list of packages sudo apt-get install php7.4 sudo apt-get install php # Not sure if I needed this, but I did it anyway sudo apt-get update # for good measure sudo apt-get upgrade sudo a2enmod php7.4 sudo apachectl start
You also might just skip that
mv / backup step. If you want to keep the old PHP version, you might need to remove it & reinstall it