Необработанная ошибка: Вызов неопределённой функции mysql_connect() – установка WordPress

Вопрос или проблема

Пытаюсь установить WordPress без XAMPP на своем локальном компьютере. Информация о версии:

WordPress: 5.2.3
PHP: 7.3.9
Apache: 2.4.41 

При доступе по следующему URL – http://localhost:8080/wordpress/wp-admin/install.php я вижу следующее в логах WordPress:

[16-Sep-2019 18:47:34 UTC] PHP Фатальная ошибка: Неперехваченная ошибка: Вызов несуществующей функции mysql_connect() в C:\apps\httpd-2.4.41-win64-VS16\Apache24\htdocs\wordpress\wp-includes\wp-db.php:1643

Я попробовал решения, доступные в Интернете, но все еще вижу эту ошибку.

Решения, которые я пробовал до сих пор:

Добавил следующее в мой wp-config.php:

define( 'WP_USE_EXT_MYSQL', true);

Добавил следующее в php.ini:

extension_dir = "ext"
extension=php_mysqli.dll

Вот мой phpinfo:

Server API  Apache 2.0 Handler
Поддержка виртуальных каталогов   включена
Путь к файлу конфигурации (php.ini)   C:\windows
Загруженный файл конфигурации   C:\apps\php-7.3.9\php.ini
Проверить этот каталог на наличие дополнительных .ini файлов (нет)
Дополнительные .ini файлы, которые были проанализированы    (нет)
PHP API 20180731
PHP Extension   20180731
Zend Extension  320180731
Сборка Zend Extension    API320180731,TS,VC15
Сборка PHP Extension API20180731,TS,VC15
Отладочная сборка нет
Поточная безопасность   включена
Поточная API  Windows Threads
Обработка сигналов Zend    отключена
Менеджер памяти Zend включен
Поддержка многобайтовых строк  отключена
Поддержка IPv6    включена
Поддержка DTrace  отключена
Зарегистрированные потоки PHP  php, file, glob, data, http, ftp, zip, compress.zlib, phar
Зарегистрированные транспортные потоки сокетов tcp, udp
Зарегистрированные фильтры потоков   convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*

Как говорит Пат Дж., вам не следует использовать define( ‘WP_USE_EXT_MYSQL’, true);, если вам не нужны старые функции mysql, которые вам не нужны, если вы используете PHP 7x и WordPress 5x. Вам нужно перезапустить Apache после изменения php.ini. Что у вас в секции mysqli в вашем phpinfo? Убедитесь, что extension_dir также установлено в php.ini. Вам может потребоваться включить ведение журнала ошибок в php.ini, чтобы увидеть, загружается ли ваше расширение mysqli, установив display_startup_errors = On и задать error_log [имя файла] или syslog.

Ответ или решение

Ошибка Uncaught Error: Call to undefined function mysql_connect() возникает из-за того, что в PHP 7 и выше расширение mysql было удалено и заменено на mysqli или PDO_MySQL. Ваша версия WordPress также не поддерживает старые функции, поэтому в данной ситуации необходимо убедиться, что вы используете правильные настройки.

Вот несколько шагов, которые помогут вам решить эту проблему:

  1. Убедитесь, что у вас установлено и включено расширение mysqli:

    • Откройте ваш файл php.ini, который, как видно из вашей диагностики, находится по адресу C:\apps\php-7.3.9\php.ini.
    • Найдите строку, содержащую extension=php_mysqli.dll, и убедитесь, что она не закомментирована (т.е. перед ней нет ;).
    • Убедитесь, что строка для extension_dir выглядит корректно и указывает на папку с расширениями PHP. Например:
      extension_dir = "C:\apps\php-7.3.9\ext"
  2. Настройте вывод ошибок в PHP:

    • Включите вывод ошибок, чтобы легче выявлять проблемы. Добавьте или измените следующие строки в вашем php.ini:
      display_errors = On
      display_startup_errors = On
      error_reporting = E_ALL
      log_errors = On
      error_log = "C:\path\to\your\error.log"  ; Укажите путь к файлу для записи логов
  3. Перезапустите сервер Apache:

    • После любых изменений в файле php.ini не забудьте перезапустить Apache, чтобы изменения вступили в силу.
  4. Проверьте конфигурацию WordPress:

    • Откройте файл wp-config.php и убедитесь, что в нем не используется строка define( 'WP_USE_EXT_MYSQL', true);. Этот параметр не нужен и может вызывать ошибки в сочетании с новыми версиями PHP и WordPress.
  5. Проверьте установленные расширения PHP:

    • Создайте файл info.php в корневом каталоге вашего проекта WordPress (например, C:\apps\httpd-2.4.41-win64-VS16\Apache24\htdocs\wordpress), содержащий следующий код:
      <?php phpinfo(); ?>
    • Откройте этот файл в веб-браузере, перейдя по адресу http://localhost:8080/wordpress/info.php. Найдите раздел с mysqli и убедитесь, что он включен и отобразится корректно.
  6. Проверьте наличие MySQL на локальной машине:

    • Убедитесь, что сервер базы данных MySQL запущен и доступен. Если вы используете SQLite, убедитесь, что wp-config.php настроен соответствующим образом, чтобы использовать SQLite.

Следуя этим шагам, вы должны устранить ошибку mysql_connect(). Если ошибка продолжает появляться, стоит проверить, используются ли ссылки на старые функции в сторонних плагинах или темах, которые вы могли установить.

Оцените материал
Добавить комментарий

Капча загружается...