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 было так много изменений, что большинство моих веб-страниц теперь не работают, и мне приходится их отлаживать.