Расширение Mysqli не найдено в Ubuntu
Обновлено: 21.11.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.
Версия 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.ini2 Затем мы ищем закомментированную строку:
<р>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.
Читайте также: