Расширение Mysqli не найдено в Ubuntu

Обновлено: 07.07.2024

Расширение mysqli появилось в версии PHP 5.0.0. Собственный драйвер MySQL был включен в версию PHP 5.3.0.

Установка в Linux

Обычные дистрибутивы Unix включают двоичные версии PHP, которые можно установить. Хотя эти двоичные версии обычно создаются с поддержкой расширений MySQL, сами библиотеки расширений, возможно, потребуется установить с помощью дополнительного пакета. Проверьте доступность диспетчера пакетов, входящего в состав выбранного вами дистрибутива.

Например, в Ubuntu пакет php5-mysql устанавливает расширения PHP ext/mysql, ext/mysqli и pdo_mysql. В CentOS пакет php-mysql также устанавливает эти три расширения PHP.

Кроме того, вы можете скомпилировать это расширение самостоятельно. Сборка PHP из исходного кода позволяет указать расширения MySQL, которые вы хотите использовать, а также выбрать клиентскую библиотеку для каждого расширения.

Собственный драйвер MySQL является рекомендуемым вариантом клиентской библиотеки, поскольку он повышает производительность и дает доступ к функциям, недоступным при использовании клиентской библиотеки MySQL. Обратитесь к Что такое собственный драйвер PHP для MySQL? для краткого обзора преимуществ встроенного драйвера MySQL.

Путь/к/mysql_config представляет расположение программы mysql_config, поставляемой с сервером MySQL.

Матрица поддержки времени компиляции mysqli
Версия PHP По умолчанию Параметры настройки: mysqlnd Параметры настройки: libmysqlclient< /th> Журнал изменений
5.4.x и выше mysqlnd -- with-mysqli --with-mysqli=/path/to/mysql_config mysqlnd используется по умолчанию
5.3.x libmysqlclient --with-mysqli=mysqlnd --with-mysqli=/path/to/mysql_config mysqlnd поддерживается
5.0.x, 5.1.x, 5.2.x libmysqlclient Недоступно --with-mysqli=/path/to/mysql_config mysqlnd не поддерживается

Обратите внимание, что можно свободно смешивать расширения MySQL и клиентские библиотеки. Например, можно разрешить расширению MySQL использовать клиентскую библиотеку MySQL (libmysqlclient) при настройке расширения mysqli для использования встроенного драйвера MySQL. Однако возможны любые варианты расширения и клиентской библиотеки.

Установка в системах Windows

В Windows PHP чаще всего устанавливается с помощью двоичного установщика.

PHP 5.3.0 и новее

В Windows для версии PHP 5.3 и новее расширение mysqli включено и по умолчанию использует встроенный драйвер MySQL. Это означает, что вам не нужно беспокоиться о настройке доступа к libmysql.dll .

PHP 5.0, 5.1, 5.2

В этих старых неподдерживаемых версиях PHP (PHP 5.2 достиг EOL 6 января 2011 г.) требуются дополнительные процедуры настройки, чтобы включить mysqli и указать клиентскую библиотеку, которую вы хотите использовать.

Обычно эта ошибка возникает, когда расширение MySQLi не включено в файле php.ini.

В Bobcare мы часто получаем запросы на исправление ошибок отсутствия расширения MySQLi в рамках наших служб управления сервером.

Сегодня давайте проанализируем ошибку и посмотрим, как наши инженеры службы поддержки исправят ее для наших клиентов.

Что такое ошибка phpMyAdmin в расширении MySQLi?

Прежде чем углубляться в проблему, давайте сначала разберемся, что расширение MySQLi отсутствует в phpMyAdmin?

Функции MySQLi позволяют нам получать доступ к серверам баз данных MySQL, и это драйвер реляционной базы данных, используемый в языке сценариев PHP. Если расширение MySQLi присутствует, мы получаем эту ошибку.

Пример ошибки в PHPMyAdmin будет выглядеть


Как исправить отсутствие phpMyAdmin в расширении MySQLi?

До сих пор мы видели, что расширение MySQLi отсутствует в ошибке phpMyAdmin. Чтобы устранить эту ошибку, включите расширение MySQLi на сервере.

Давайте посмотрим, как наши инженеры службы поддержки исправляют эту ошибку для наших клиентов, включив расширение MySQLi.

Включить расширение MySQLi в файле php.ini

Во-первых, мы проверяем, включено расширение в модулях PHP или нет. Для этого мы запускаем эту команду:

Давайте обсудим, как наши инженеры службы поддержки включают расширение MySQLi из файла php.ini в Linux и Windows.

В Linux

<р>1. Сначала мы открываем файл php.ini (/etc/php/php.ini)

<р>2. Затем мы ищем закомментированную строку:

<р>3. И мы раскомментируем строку, удалив хэштег с самого начала, например:

Наконец, мы перезапускаем веб-сервер.

В окнах

<р>1. Открываем файл php.ini

2 Затем мы ищем закомментированную строку:

<р>3. И мы раскомментируем строку, удалив хэштег с самого начала, например:

Таким образом, его включение устранило ошибку.

Включить MySQLi с помощью EasyApache4

Самый простой способ включить MySQLi — через EasyApache. Давайте обсудим, как наши инженеры службы поддержки включают его в EasyApache.

<р>1. Во-первых, мы входим в WHM как root.

<р>2. Затем мы ищем «EasyApache4» или переходим в раздел Software > EasyApache4

.


<р>3. Вверху находим «Установленные в данный момент пакеты» и нажимаем кнопку «Настроить»

<р>4. Затем в левой части панели мы нажимаем «Расширения PHP»

<р>5. После этого мы ищем mysqlnd.

<р>6. Мы видим что-то вроде «php70-php-mysqlnd» (зависит от версии PHP). Мы включаем его.

<р>7. Нажмите Просмотреть и нажмите кнопку Предоставить.

Включить расширение MySQLi на веб-сервере без какой-либо панели.

Наши инженеры службы поддержки также предлагают решение для клиентов, которые не используют панели. Чтобы включить расширение MySQLi на сервере без панели. Мы запускаем приведенную ниже команду, например

Я просмотрел все форумы, которые я мог найти, относящиеся к этому вопросу, и моя проблема не помогла. У меня есть apache2.2 с php5, phpMyAdmin и MySQL. Я раскомментировал расширение, проверил phpinfo(), но mysqli не появляется. Мой каталог конфигурации находится там, где он должен быть, и он все еще не загружается.


Вы перезапустили apache? Чтобы изменения в php.ini вступили в силу, необходимо перезапустить apache. Также попробуйте php -m из командной строки.

Что касается сообщения об ошибке: "Расширение mysqli отсутствует. Проверьте конфигурацию PHP. Дополнительную информацию см. в нашей документации". - См. также Чувак, где мой php.ini? (конфигурация сервера) и перезапустите процессы PHP-FPM и/или веб-сервера после редактирования нужного.

16 ответов 16

В файле php.ini эта строка:


Хорошо, у меня сработало. Но установка абсолютного пути в качестве значения для extension_dir (т. е. extension_dir = "c:\php\ext") кажется более элегантным решением.

Замените include_path=C:\Program Files (x86)\xampp\php\PEAR на include_path="C:\Program Files (x86)\xampp\php\PEAR"

Я знаю, что это было давно, но я столкнулся с этим и следил за другими ответами здесь, но безрезультатно, я нашел решение с помощью этого вопроса (вопрос Stackoverflow)

По сути, нужно было просто отредактировать файл php.ini (мой был найден в c:\xampp\php\php.ini) и раскомментировать эти строки.

После перезапуска apache все заработало как положено.

В папке Xampp откройте файл php.ini внутри папки PHP, например, xampp\php\php.ini (с помощью текстового редактора).

Найдите extension=mysqli (Ctrl+F), если их два, ищите тот, который был раскомментирован (без ";" позади)

Измените mysqli, указав правильный путь, например extension=C:\xampp\php\ext\php_mysqli.dll .

На панели управления Xampp остановите и запустите apache и MySQL


Если с файлами конфигурации все в порядке, но проблема остается, установите php7.x-mysql в соответствии с версией установленного php.

Например, в моем случае я использую php7.3, поэтому я выполнил следующую команду, чтобы все настроить:


Эта статья поможет вам настроить PHP с MySQL для Apache 2 или IIS в Windows. Посмотрите раздел "Настройка PHP и MySQL под Apache 2", пункт 3:

Вы должны раскомментировать строку параметра extension_dir и указать абсолютный путь к каталогу расширений PHP.

sudo apt-get установить php7.2-mysql

extension=mysqli.so (добавьте этот файл php.ini)

Используйте приведенные выше команды для устранения ошибки отсутствия расширения mysqli

Скопируйте libmysql.dll из папки установки PHP в папку Windows.

Я искал несколько часов, и никто не мог мне помочь. Я сделал простую вещь, чтобы решить эту проблему. (ОКНА 10 x 64)

1 – перейдите по пути к php_mysqli.dll (в моем случае: C:/xampp/php/ext);

2 — Переместите php_mysqli.dll в предыдущую папку (C:/xampp/php);

3 – Откройте php.ini и найдите строку: "расширение: php_mysqli.dll";

4 — Измените путь к файлу: extension="C:\xampp\php\php_mysqli.dll";

5 — Перезапустите приложение (wampp, xampp и т. д.) и запустите сервер Apache;

Обновления PHP и MySQL могут нарушить работу ранее работавшего ActiveCollab из-за несовместимости версий, а также из-за изменений конфигурации расширений и среды выполнения.

Перед обновлением PHP и MySQL проверьте, поддерживает ли это ваша версия ActiveCollab. Подробности смотрите в таблице совместимости на странице Системные требования.

Проверка веб-среды

Есть два способа проверить, соответствует ли ваша среда требованиям ActiveCollab.

<р>1. Запустите скрипт probe.php, чтобы убедиться, что веб-среда работает правильно:


2. Проверка среды командной строки

До и после обновления вы должны запустить проверку среды командной строки, чтобы убедиться, что ваша среда командной строки была правильно обновлена ​​или ее можно обновить.

С помощью терминала или приложения командной строки перейдите в каталог, где установлен ActiveCollab на вашем сервере, и выполните:

Если этот инструмент сообщает об ошибках, исправьте их.

Ответы по электронной почте не импортируются

Скорее всего, это связано с отсутствием расширения IMAP. Чтобы проверить, установлено ли расширение IMAP, выполните следующую команду:

Скорее всего, это связано с отсутствием расширения IMAP. Чтобы проверить, установлено ли расширение IMAP, выполните следующую команду:

Если расширение IMAP найдено, оно будет указано в списке. В противном случае эта команда просто выведет пустую строку.

Важно использовать командную строку, чтобы проверить, установлено ли расширение IMAP, а не phpinfo(). Входящая почта всегда импортируется из заданий cron, и они запускаются в среде командной строки. phpinfo() отображает конфигурацию вашей веб-среды. Это может привести к неправильным выводам, так как веб-среда и среда командной строки отличаются и могут быть по-разному настроены.

MySQLi не работает после обновления PHP

После обновления PHP вы можете столкнуться с неработающим ActiveCollab и найти эту ошибку в ответах сервера или в файлах журналов: Вызов функции-члена execute() при нулевом значении в . /activecollab/6.XY/angie/classes/database/DB.class.php.

Эта ошибка означает, что ActiveCollab не может подключиться к базе данных, несмотря на правильные параметры подключения в config/config.php.

Обычно это связано с конфигурацией расширения MySQLi, которое может быть отключено или возвращено к конфигурации по умолчанию после обновления PHP.

Проверьте, установлен ли MySQLi

Первый шаг — проверить, установлено ли расширение MySQLi. Вы можете сделать это, посетив созданную вами страницу phpinfo() или выполнив следующую команду:

Если расширение MySQLi найдено, оно будет указано в списке. Если нет, эта команда просто выведет пустую строку. Вы можете использовать php -m, чтобы получить список всех включенных расширений.

Проверьте конфигурацию времени выполнения MySQLi

Следующий шаг – проверка конфигурации среды выполнения MySQLi. Вы можете получить все настройки на странице phpinfo() или выполнив эту команду:

В нем будут перечислены все строки из конфигурации среды выполнения PHP, в которых упоминается mysqli. Проверьте, все ли настройки в порядке. Обратите особое внимание на опцию сокета по умолчанию, потому что это может привести к тому, что функциональное расширение MySQLi не сможет подключиться к серверу MySQL. Обратитесь к руководству по установке PHP и MySQL, которое вы использовали для настройки среды, чтобы узнать, как правильно настроить mysql.sock.

Обновление MySQL

Если вы выполнили полное обновление платформы и одновременно обновили PHP и MySQL, убедитесь, что все этапы обновления MySQL выполнены.

Проверьте руководство по обновлению, которому вы следовали, и убедитесь, что все шаги выполнены. Информация о команде mysql_upgrade должна быть частью этого руководства. Если это не так, вы можете найти дополнительную информацию в официальной документации. Команда mysql_upgrade проверит все таблицы базы данных и убедитесь, что они обновлены. Это также обновит системные таблицы, необходимые для нормальной работы сервера MySQL.

Читайте также: