skip to Main Content

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


  1. Chosen as BEST ANSWER

    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.


  2. While you’ve figured this out, others will come (like myself) to see how you did this.

    # perhaps you did the following to see what modules were present
    > apache2ctl -M
    
    # the result of the above command may have returned an error such as:
    apache2:
     Syntax error on line 146 of /etc/apache2/apache2.conf:
      Syntax error on line 2 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 '-M' failed.
    
    # so you removed the problematic module that was no longer installed
    # by doing the following (as appropriate given the error above)
    > sudo a2dismod php8.0
    
    # you needed to restart your server after that
    > sudo systemctl restart apache2
    
    # if you tested the server in a browser html should function...
    # however you perhaps desired the use of another php module
    # and added another one (8.1) that is install by default in Ubuntu 22.04
    > sudo a2enmod php8.1
    
    # you restarted apache again and it worked?
    > sudo systemctl restart apache2
    

    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:

    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_flag engine Off
        </Directory>
    </IfModule>
    

    So that they looked like this:

    #<IfModule mod_userdir.c>
    #    <Directory /home/*/public_html>
    #        php_admin_flag engine Off
    #    </Directory>
    #</IfModule>
    
    # finally you restarted apache2 again:
    sudo systemctl restart apache2
    # and everything was back to normal?
    

    Did you do something like this?

    Login or Signup to reply.
  3. sudo gedit /etc/apache2/mods-enabled/php8.0.load
    

    and rename:

    LoadModule php_module /usr/lib/apache2/modules/libphp8.0.so
    

    to:

    LoadModule php_module /usr/lib/apache2/modules/libphp8.1.so
    
    Login or Signup to reply.
  4. In my case I upgraded Ubuntu 20.04 to 22.04. So the wizard uninstalled the php7.4 modules and installed php8.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 had php7.4.conf and php7.4.load and php7.4.load was still pointing to libphp7.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:

    sudo a2dismod php7.4
    

    and enable php8.1 modules:

    sudo a2enmod php8.1
    

    Of course after enabling php8.1 modules you have to restart apache2 service.

    sudo systemctl restart apache2
    
    Login or Signup to reply.
  5. 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

    Login or Signup to reply.
  6. 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.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search