Apache2 не запускается после обновления до Ubuntu 22.04 LTS — не удается загрузить /usr/lib/apache2/moduleslibphp8.0.so

Я немного застрял в том, как это исправить. Я обновил дистрибутив сервера под управлением Apache2.

С момента обновления не работает. Я запустил тест конфигурации, и ниже приведена ошибка. У меня не было проблем с моей конфигурацией в предыдущей версии 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.

Есть идеи, с чего начать? Я все еще довольно неопытен, когда дело доходит до Apache.

Спасибо за помощь.

6 ответов

Пока вы в этом разбираетесь, другие (например, я) придут посмотреть , как вы это сделали.

      # 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

Возможно, вы использовали mod_userdirа также необходимо обновить файл конфигурации модуля apache php:

/etc/apache2/mods-enabled/php8.1.conf

Закомментировав следующие строки:

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

Чтобы они выглядели так:

      #<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?

Вы делали что-то подобное?

В моем случае я обновилUbuntu 20.04 to 22.04. Итак, мастер удалилphp7.4модули и установленныеphp8.1вместо них модули. После этого я попытался перезапустить apache2, но этого не произошло. Я понял, что в моей папке /etc/apache2/mods-enabled у меня все еще естьphp7.4.confи иphp7.4.loadпо-прежнему указывал наlibphp7.4.so.

Помните, что папка с поддержкой модов создается из папки, доступной для модов, поэтому вам никогда не следует изменять папку с поддержкой модов. Вместо этого вы должны отключить модули php7.4:

      sudo a2dismod php7.4

и включите модули php8.1:

      sudo a2enmod php8.1

Конечно, после включения модулей php8.1 вам необходимо перезапустить службу apache2.

      sudo systemctl restart apache2

Не обращайте внимания на всех. Я понял.

Я проверил /usr/lib/apache2/modules/ и обнаружил, что libphp8.0.so был обновлен до libphp8.1.so.

После внесения изменений в поддержку модов, чтобы включить этот файл, а не проблемный, apache запустился без проблем.

Обновление ОС до Ubuntu 22 обновляет установленный php 7.x до php8.x, но не исправляет конфигурации Apache2.

судо a2dismod php7.4

судо a2enmod php8.1

sudo a2disconf php7.4-fpm

sudo a2enconf php8.1-fpm

sudo systemctl перезагрузить apache2

      sudo gedit /etc/apache2/mods-enabled/php8.0.load

и переименовать:

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

к:

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

Я удалил (очистил) php и apache2 и переустановил. Это проще, чем наугад и просматривать сотни форумных сообщений и сообщений об ошибках системы.

Теперь это работает. между 7.4 и 8.1 было так много изменений, что большинство моих веб-страниц теперь не работают, и мне приходится их отлаживать.

Другие вопросы по тегам