Вопрос или проблема
Я обновил Ubuntu 22.04 — >> 24.04. Теперь возникает следующая ошибка, когда phpMyAdmin не загружается в браузере.
Mon Sep 23 18:30:18.060029 2024] [php:error] [pid 11672] [client 192.168.1.150:54278] PHP Фатальная ошибка: Необработанное исключение TypeError: PhpMyAdmin\\Menu::__construct(): Аргумент #1 ($dbi) должен быть типа PhpMyAdmin\\DatabaseInterface, передано null, вызвано в /usr/share/phpmyadmin/libraries/classes/Header.php на строке 114 и определено в /usr/share/phpmyadmin/libraries/classes/Menu.php:57\nСтек вызовов:\n#0 /usr/share/phpmyadmin/libraries/classes/Header.php(114): PhpMyAdmin\\Menu->__construct()\n#1 /usr/share/phpmyadmin/libraries/classes/ResponseRenderer.php(168): PhpMyAdmin\\Header->__construct()\n#2 /usr/share/phpmyadmin/libraries/classes/ResponseRenderer.php(199): PhpMyAdmin\\ResponseRenderer->__construct()\n#3 /usr/share/phpmyadmin/libraries/classes/ErrorHandler.php(335): PhpMyAdmin\\ResponseRenderer::getInstance()\n#4 /usr/share/phpmyadmin/libraries/classes/ErrorHandler.php(307): PhpMyAdmin\\ErrorHandler->dispFatalError()\n#5 /usr/share/phpmyadmin/libraries/classes/ErrorHandler.php(237): PhpMyAdmin\\ErrorHandler->addError()\n#6 [внутренняя функция]: PhpMyAdmin\\ErrorHandler->handleException()\n#7 {main}\n выброшено в /usr/share/phpmyadmin/libraries/classes/Menu.php на строке 57 [Mon Sep 23 18:30:18.060184 2024] [php:error] [pid 11672] [client 192.168.1.150:54278] PHP Фатальная ошибка: Необработанная ошибка: Вызов к члену функции getDisplay() на null в /usr/share/phpmyadmin/libraries/classes/ResponseRenderer.php:293\nСтек вызовов:\n#0 /usr/share/phpmyadmin/libraries/classes/ResponseRenderer.php(411): PhpMyAdmin\\ResponseRenderer->getDisplay()\n#1 [внутренняя функция]: PhpMyAdmin\\ResponseRenderer->response()\n#2 {main}\n выброшено в /usr/share/phpmyadmin/libraries/classes/ResponseRenderer.php на строке 293
Я пробовал все возможные решения, найденные в Интернете.
Ранее мы использовали PHP 7.4, теперь мы настроили PHP 8.3 (так как PHP 7.4 не позволял даже загрузить сайт), но PHP 8.3 позволяет подключиться к сайту и загрузить его в браузере (поскольку это обновление).
Но когда мы пробуем http://192.168.1.100/phpmyadmin/ (или localhost/phpmyadmin)
Эта страница не работает
192.168.1.100 в данный момент не может обработать этот запрос.
HTTP ERROR 500
Может кто-то помочь нам?
Я еще не обновил свой сервер phpmyadmin
до 24.04, но у меня были такие же или похожие ошибки при обновлении до предыдущих версий Ubuntu. Попробуйте следующее:
- Если вы еще не установили, установите пакет php
mbstring
:
sudo apt-get install php8.3-mbstring
- Вы не указали, какой веб-сервер вы используете, но предположим, что это Apache, тогда проверьте, какой php модуль использует ваш Apache:
a2query -m |grep php
Если это не перечисляет вашу установленную версию php, например php8.3
, то вам, возможно, нужно отключить тот модуль php, который он использует, и включить правильный. Например, если он перечисляет php8.1
, тогда:
sudo a2dismod php8.1
sudo a2enmod php8.3
Ответ или решение
Ошибка 500 в phpMyAdmin на Ubuntu 24.04 LTS после обновления может быть вызвана несколькими факторами, особенно если вы также обновили версию PHP. Следующие рекомендации помогут вам устранить проблему.
Шаги для решения проблемы
-
Проверьте логи сервера:
Первое, что вам следует сделать — проверить логи веб-сервера для более подробной информации о том, что вызывает ошибку 500. Логи ошибок Apache обычно находятся по пути:/var/log/apache2/error.log
Или, если вы используете Nginx:
/var/log/nginx/error.log
-
Установите необходимые расширения PHP:
Убедитесь, что все необходимые расширения PHP установлены для версии PHP 8.3. В вашем случае, возможно, отсутствует расширениеmbstring
, которое нужно установить:sudo apt-get install php8.3-mbstring
-
Проверьте используемые модули PHP для Apache:
Если вы используете Apache, проверьте, какой модуль PHP активен:a2query -m | grep php
Если вы видите, что включен не тот модуль PHP, вы можете отключить его и включить правильный:
sudo a2dismod php7.4 sudo a2enmod php8.3 sudo systemctl restart apache2
-
Настройте конфигурацию phpMyAdmin:
Возможно, вам нужно проверить файл конфигурации phpMyAdmin для корректных настроек. Конфигурационный файл обычно находится здесь:/etc/phpmyadmin/config.inc.php
Убедитесь, что в нём всё правильно настроено и нет неправильных значений.
-
Проверьте базу данных:
Ошибка может также возникать из-за проблем с подключением к базе данных. Убедитесь, что ваша база данных работает корректно и что параметры подключения к базе данных верны в конфигурационном файле phpMyAdmin. -
Очистите кэш браузера:
Иногда проблемы могут быть вызваны кэшированием в браузере. Очистите кэш или попробуйте открыть phpMyAdmin в режиме инкогнито. -
Обновите phpMyAdmin:
Если у вас установлена старая версия phpMyAdmin, попробуйте обновить её до последней стабильной версии, совместимой с PHP 8.3:sudo apt-get update sudo apt-get install phpmyadmin
-
Проверьте наличие всех зависимостей:
Убедитесь, что установлены все зависимости phpMyAdmin. Например:sudo apt-get install php8.3-{mysqli,mbstring,zip}
Заключение
Если вы выполните все шаги, описанные выше, у вас появится большая вероятность решить проблему с ошибкой 500 на странице phpMyAdmin. Если проблема продолжается, предоставьте дополнительные детали об ошибках из логов, чтобы мы могли предложить более конкретные решения.