zaLinux.ru

Ошибка «Cannot load modules/libphp7.so» (РЕШЕНО)


Некоторые дистрибутивы уже начали переход на PHP 8. Новая версия PHP удаляет старую в результате чего веб-сервер может перестать работать из-за того, что указанные в конфигурации веб-сервера файлы отсутствуют или переименованы.

Связанная статья: Вышел PHP 8: обзор изменений языка

Примеры ошибок, с которыми вы можете столкнуться:

httpd: Syntax error on line 504 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf/mods-enabled/php.conf: Cannot load modules/libphp7.so into server: /etc/httpd/modules/libphp7.so: cannot open shared object file: No such file or directory

В ней говориться, что не найден файл /etc/httpd/modules/libphp7.so.

Другая ошибка, в которой говориться, что не найден файл /etc/httpd/conf/extra/php7_module.conf:

httpd: Syntax error on line 504 of /etc/httpd/conf/httpd.conf: Syntax error on line 2 of /etc/httpd/conf/mods-enabled/php.conf: Could not open configuration file /etc/httpd/conf/extra/php7_module.conf: No such file or directory

В некоторых дистрибутивах служба веб-сервера Apache называется apache2, а в некоторых httpd. Поэтому данная инструкция рассмотрит оба варианта.

Исправление «Cannot load modules/libphp7.so» когда служба веб-сервера названа httpd (Arch Linux, CentOS и их производные)

Чтобы просмотреть статус службы и ошибки, которые привели к её неработоспособности, выполните команду:

systemctl status httpd.service

Откройте конфигурационный файл /etc/httpd/conf/mods-enabled/php.conf:


sudo vim /etc/httpd/conf/mods-enabled/php.conf

Найдите в нём строку

LoadModule php7_module modules/libphp7.so

и замените её на:

LoadModule php_module modules/libphp.so

Затем найдите строку

Include conf/extra/php7_module.conf

и замените на:

Include conf/extra/php_module.conf

Перезапустите службу веб-сервера:

sudo systemctl restart httpd.service

и проверьте её состояние:

systemctl status httpd.service

Исправление «Cannot load modules/libphp7.so» когда служба веб-сервера названа apache2 (Debian, Ubuntu, Linux Mint, Kali Linux и их производные)

Чтобы просмотреть статус службы и ошибки, которые привели к её неработоспособности, выполните команду:

systemctl status apache2.service

Отключите модуль PHP 7.*:

a2dismod php7.4

Возможно, у вас другая версия PHP, начните набирать «a2dismod php» и используйте клавишу TAB для автодополнения:


Для включения PHP 8 используйте команду вида (используйте клавишу TAB для автодополнения):

a2enmod php8

Перезапустите службу веб-сервера:

sudo systemctl restart apache2.service

и проверьте её состояние:

systemctl status apache2.service

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *