I am a bit stuck as to how to fix this. I did a distro upgrade a server running Apache2.
Since the upgrade it has not worked. I ran a config test and below is the error. I had no issues with my configuration on the previous version of Ubuntu (21.10)
$ apache2ctl configtest
apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 3 of /etc/apache2/mods-enabled/php8.0.load: Cannot load /usr/lib/apache2/modules/libphp8.0.so into server: /usr/lib/apache2/modules/libphp8.0.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
Any ideas where to begin? I’m still fairly inexperienced when it comes to Apache.
6
Answers
Disregard everyone. I figured it out.
I checked /usr/lib/apache2/modules/ and found that libphp8.0.so had been updated to libphp8.1.so.
After amending the mods-enabled to include this file and not the problematic one, apache started with no issues.
While you’ve figured this out, others will come (like myself) to see how you did this.
Perhaps you were using
mod_userdir
and also needed to update the apache php module configuration file:/etc/apache2/mods-enabled/php8.1.conf
By commenting out the following lines:
So that they looked like this:
Did you do something like this?
and rename:
to:
In my case I upgraded
Ubuntu 20.04 to 22.04
. So the wizard uninstalled thephp7.4
modules and installedphp8.1
modules instead. After that I tried to restart apache2 but it didn’t. I realized that in my /etc/apache2/mods-enabled folder I still hadphp7.4.conf
andphp7.4.load
andphp7.4.load
was still pointing tolibphp7.4.so
.Remember that mods-enabled folder is generated from mods-available folder so you should never alter mods-enabled folder. Instead, you should disable php7.4 modules:
and enable php8.1 modules:
Of course after enabling php8.1 modules you have to restart apache2 service.
The OS upgrade to Ubuntu 22 updates the installed php 7.x to php8.x but it does not fix the Apache2 configurations
sudo a2dismod php7.4
sudo a2enmod php8.1
sudo a2disconf php7.4-fpm
sudo a2enconf php8.1-fpm
sudo systemctl reload apache2
I removed (purge) php and apache2 and reinstalled. It is easier than hit-and-miss and go through hundreds of forum messages and error messages from the system.
Now it works.
between 7.4 and 8.1 there has been so many changes, that most of my web pages are now broken and I have to debug them.