Php. У вашей установки PHP, похоже, отсутствует расширение MySQL, которое требуется WordPress

Как я могу исправить ошибку ниже?

В вашей установке PHP отсутствует расширение MySQL, которое требуется WordPress.

Я использую свой NAS с подключением telnet.

Я установил FFP 0.7

Мой php.ini находится в: ffp/etc/php.ini и я раскомментировал все, что мне показалось ffp/etc/php.ini.

Ниже приведена часть моего файла php.ini;

;If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
extension=msql.dll
;
; ... or under UNIX:
;
extension=msql.so
;
; ... or with a path:
;
extension=/ffp/lib/extensions/no-debug-non-zts-20100525/mysql.so
;


extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so

Выдающаяся проблема заключается в том, что при запуске в phpinfo() я вижу активированный модуль MySQLi, но не MySQL.

MySQL работает, как и ожидалось, так же, как PHP и веб-сервер Lighttpd.

У меня одинаково работает phpmyadmin.

Это на Zyxel NSA310.

Кроме того, когда mysqld запущен, он создает ярлык из моего корня в: ffp/opt/mysql.. и каждый раз, когда я перезагружаю свой NAS, ярлык удаляется.

Кто-нибудь может знать трюк для этого?

Ответ 1

PHP MySQL API устарел. Это капут - уходить - не использовать, конечно.

Если у вас есть современная версия PHP (> 5.6), Wordpress должен автоматически переключиться на использование mysqli. Это должно быть вашей первой попыткой.

Если вы не можете обновить свой php, вместо того, чтобы пытаться воскресить то, что php больше не поддерживает, просто исправьте ваш wordpress: http://wordpress.org/plugins/mysqli/

Ответ 2

В конце концов я нашел решение. Сначала убедитесь, что сервер MySQL запущен. Введите следующую команду в командной строке:    #/etc/init.d/mysql status

Если MySQL не запущен, введите:    #/etc/init.d/mysql start

Если MySQL не установлен, введите следующую команду для установки сервера MySQL:    # apt-get install mysql-server

Убедитесь, что установлен модуль MySQL для php5:    # dpkg --list | grep php5-mysql

Для установки модуля php5-mysql введите:    # apt-get install php5-mysql

Затем перезапустите веб-сервер Apache2:    #/etc/init.d/apache2 restart

Ответ 3

Эта библиотека MySQL работала для меня:

sudo apt-get install php5-mysqlnd-ms

Ответ 4

Проверьте

extension_dir =

удалите его, если он есть. это должно устранить проблему.

Ответ 5

Если у вас установлен плагин Wordfence, я обнаружил, что комментарии в строках suPHP_ConfigPath в файле .htaccess вернули веб-сайт:

# Wordfence WAF
#<IfModule mod_suphp.c>
#   suPHP_ConfigPath '/home/a1614947/public_html'
#</IfModule>

Я также сообщил об этом в Wordfence.

Ответ 6

Если пользователи используют общий хостинг Linux с cPanel (Godaddy, клуб реселлеров, Hostgator или любой общий хостинг), попробуйте следующее:

Вкладка "Программное обеспечение и услуги" → Выбрать версию PHP → Селекторы PHP | Extentions

Отметьте все связанные с MySQL расширения, сохраните их, и все готово. Пожалуйста, проверьте прилагаемое изображение.

Image showing the extensions in cPanel

Ответ 7

Когда вы обновляете свою версию php, убедитесь, что apache2 следует за ней. Вы можете создать файл phpinfo(), который может показать, что apache все еще использует старую версию php.

В этом случае вы должны использовать команды a2dismod php-old-version и a2enmon php-mod-version

Пример:

в ubuntu, вы берете старую версию из /etc/apache 2/mods-enabled или из версии, отображаемой файлом phpinfo, и вы захватываете новую из /etc/apache 2/mods-available

> sudo a2dismod php5.6
> sudo a2enmod php7.1
> sudo service apache2 restart

Ответ 8

Эта ошибка создается основным файлом WP /wp-includes/load.php, а имя функции wp_check_php_mysql_versions().

Более старые версии WP не поддерживают MySqli. Но последние версии WP поддерживают как расширения MySql, так и MySqli не беспокоя установленные версии PHP.

Решил мою проблему 100%

В моем случае я просто обновил файлы ядра Wordpress вручную и решил проблему:)

Ответ 9

Я использую Fedora 25

sudo dnf search php | grep mysql

php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
php-pear-MDB2-Driver-mysqli.noarch : MySQL Improved MDB2 driver mysqli

sudo dnf install php-mysqlnd.x86_64

Ответ 10

Возможно, причина в том, что php mysql api устарел. если вы используете ниже < PHP5.5 просто обновит ваш сервер до 5.6 и выше.

Ответ 12

У меня была такая же проблема, как упоминалось: "У вашей установки PHP, похоже, отсутствует расширение MySQL, которое требуется WordPress" на хостинге resellerclub.

Я прошел этот поток и узнал, что версия php должна быть больше > 5.6, так что Wordpress автоматически преобразуется в mysqli

Затем, войдя в мою cpanel, вы искали php в cpanel для проверки версии, посчастливилось найти, что моя версия php была 5.2 и изменила ее на 5.6, убедившись, что mysqli отмечен галочкой в ​​окне параметров и сохранил ее теперь работает нормально.

Ответ 13

Эта проблема объясняется отсутствием базы данных. Если это новая установка, вам необходимо вручную создать ее и назначить пользователю привилегии.

Пожалуйста, проверьте wp-config.php для любых плохих конфигураций и убедитесь, что база данных и таблицы не пропали или не повреждены.

Ответ 14

Просто установите apt-get install php5-mysqlnd Перезапустить Apache сервис apache2 restart

Ответ 15

Убедитесь, что вы отметили Mysqli и mysqlnd, как показано на скриншоте enter image description here

Ответ 16

Когда я обновил свой веб-сайт PHP с версии 5.6 до 7.2, я столкнулся с такой проблемой: "В вашей установке PHP отсутствует расширение MySQL, которое требуется WordPress". Оказывается, расширение mysql больше не поддерживается в PHP версии 7.2. Сейчас используется расширение mysqli. Я использую старую версию WordPress, которая все еще использует расширение MySQL, поэтому проблема существовала. Поэтому я обновил WordPress до ядра. Это решит проблему.

Вот шаги, которые я выполнил при обновлении WordPress вручную.

  1. Сначала я создал полную резервную копию моего сайта. Это очень важно в случае ошибки.
  2. Я загружаю новейший WordPress ZIP файл с wordpress.org.
  3. Я распаковал файл в локальную директорию моего компьютера.
  4. Я зашел в корневой каталог моего сайта и удалил ваши каталоги wp-includes и wp-admin. Я использовал sFTP соединение с помощью программного обеспечения Filezilla.
  5. Я загрузил новые каталоги wp-includes и wp-admin из новой версии WordPress, распаковал их в корневой каталог моего сайта и заменил только что удаленные каталоги.
  6. Я не удалил каталог wp-content или какие-либо файлы в этом каталоге. Я просто скопировал файлы из каталога wp-content в новой версии WordPress в мой существующий каталог wp-content. Все существующие файлы с одинаковыми именами были перезаписаны.
  7. Я скопировал все файлы из корневого каталога ('/) новой версии WordPress, который я распаковал, в корневой каталог моего сайта (или в корневой каталог вашей установки WordPress). Существующие файлы были перезаписаны, а новые файлы скопированы. На файл wp-config.php это не повлияло, поскольку WordPress никогда не распространялся с файлом wp-config.php.
  8. Я сравниваю wp-config-sample.php, который распространялся с WordPress, но не нашел ничего, что можно было бы изменить, поэтому я просто использовал старый.
  9. Я очистил кеш браузера, чтобы убедиться, что вижу все изменения.
  10. Я проверил сайт и сейчас нет ошибок. Обновление было завершено.

Ответ 17

2019-08-28

Спустя почти семь лет это продолжает давать разные ответы. Многие из них похожи, но ни один не идентичен тому, что работало для меня. Вот что у меня сработало (сервер Ubuntu).

Переместив сайт на новый сервер, забыл установить модуль/расширение PHP MySQL. Я быстро пробежал

apt-get install php-mysql

а затем

apachectl restart

Бада Бинг. Нет php5, php7; просто php-mysql.


† Разоблачение одного из недостатков StackExchange: в данный момент ответ может быть изысканным и получить отклики на каджиллион. К сожалению, поскольку технология, лежащая в основе ответа, стареет (проект разворачивается и меняет фокус, атрофия плагинов, смещение целей), иногда этот идеальный ответ просто больше не работает. Но он получил все отзывы, так что то, что мы видим в первую очередь. Не уверен, что решение - если мы даже нуждаемся в этом; это не невероятно распространенная проблема.

Ответ 18

Для php 5.6 sudo apt-get install php5.6-mysqlnd-ms и перезапустите ваш apache

/etc/init.d/apache2 restart

Ответ 19

Источник этого сообщения не был связан с решением в моем случае.

Мой IP-адрес моего сервера изменился, и я не изменил директиву <VirtualHost> в моем httpd.conf сервера apache.

Как только я изменил его на правильный IP-адрес, сообщение исчезло, и Wordpress снова работает.

Ответ 20

Я решил проблему, просто добавив следующий код в файл .htaccess. Я надеюсь, что это сработает и для вас, ребята.

Шаг 1: Измените версию PHP с сервера.

Шаг 2: Добавьте следующий код в ваш файл .htaccess в соответствии с вашей версией PHP (выбрано с сервера).

Чтобы перейти на PHP 4.4:

AddHandler application/x-httpd-php4 .php

Чтобы перейти на PHP 5.0:

AddHandler application/x-httpd-php5 .php

Чтобы перейти на PHP 5.1:

AddHandler application/x-httpd-php51 .php

Чтобы перейти на PHP 5.2:

AddHandler application/x-httpd-php52 .php

Чтобы перейти на PHP 5.3:

AddHandler application/x-httpd-php53 .php

Чтобы перейти на PHP 5.4:

AddHandler application/x-httpd-php54 .php

Чтобы перейти на PHP 5.5:

AddHandler application/x-httpd-php55 .php

Чтобы перейти на PHP 5.6:

AddHandler application/x-httpd-php56 .php

Чтобы переключиться на PHP 7:

AddHandler application/x-httpd-php7 .php

Чтобы перейти на PHP 7.1:

AddHandler application/x-httpd-php71 .php 

Ответ 21

У меня такая же ошибка. Моя версия PHP 7.0, и я знаю, что я установил MySQLi. Итак, чего не хватает.

Ответ 22

В Oracle Linux 7.x под управлением PHP версии 7.3.x вам нужно запустить sudo yum install php-mysqlnd, чтобы установить отсутствующее расширение MySQL для PHP.

Не забудьте перезапустить PHP и/или ваш сервер, чтобы изменения вступили в силу.

Ответ 23

я решил этот тип ошибки в моем .htaccess с помощью приведенного ниже кода

# END WordPress
# php -- BEGIN cPanel-generated handler, do not edit
# Set the "ea-php71" package as the default "PHP" programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php71 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

Ответ 24

Для меня (Ubuntu 16.04) победителем стало:

sudo apt install php7.0-mysql

Ответ 25

Я просто удалил пользовательский php ini, который вообще не использую. Проблема ушла, сайт работает нормально.

Ответ 26

msqli and mysqlnd are checked

Убедитесь, что msqli и mysqlnd проверены в вашем селекторе php. Затем перейдите и измените имя вашего файла .htaccess на .htaccess_old. Посмотрите, может ли ваш сайт загрузиться сейчас.

Если это сработает, перейдите к своей панели инструментов и сохраните постоянные ссылки, это создаст новый файл .htaccess.

Это сработало для меня.