Я создал PHP 7 с конфигурацией, которая работала для предыдущей версии PHP. Теперь мои веб-сайты WordPress получают сообщение:
Кажется, что в вашей установке PHP отсутствует расширение MySQL, которое требуется WordPress.
Другие сайты, использующие mysqli, работают. Что мне не хватает?
Я также включил все .so-файлы с mysql в имени:
extension=dba.so extension=mysql.so extension=mysqli.so extension=mysqlnd_mysql.so extension=mysqlnd_mysqli.so extension=mysqlnd.so extension=pdo.so extension=pdo_mysql.so extension=pdo_odbc.so extension=odbc.so
Как уже упоминалось в другом месте, функции ext/mysql
были удалены. Мы говорили об этом в течение некоторого времени .
ext / mysql был создан для MySQL 3.23 и с тех пор получил очень мало дополнений, в то же время сохраняя совместимость с этой старой версией, что делает код немного сложнее в обслуживании.
Если вы хотите положить их обратно, вы можете добавить их обратно в PHP 7, используя библиотеку PECL для ext / mysql
Важно отметить, что WordPress 3.9 или новее поддерживает mysqli
В WordPress 3.9 мы добавили дополнительный уровень в WPDB, в результате чего он переключился на использование библиотеки PHP mysqli при использовании PHP 5.5 или выше.
PHP 7 полностью удалил mysql_ *.
Вам нужно использовать PDO или mysqli. WordPress, похоже, не поддерживает это.
mysql_*
функции, удаленные в PHP 7.0, обновляют ваш код до mysqli или PDO
Также обратите внимание на подготовленные заявления, если вы обрабатываете ввод пользователя. Чтобы уменьшить вероятность инъекций SQL
Пример строки подключения mysqli:
<?php $mysqli = new mysqli("localhost", "user", "password", "database"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; } ?>
Пример строки подключения pdo:
<?php $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); ?>
Заметка:
Этот пример mysqli обрабатывает ошибку подключения
Убедитесь, что WordPress все еще использует расширение Mysql, которое было удалено в PHP7.
http://php.net/manual/en/migration70.removed-exts-sapis.php
Расширения Mysqli и PDO были сохранены. Именно по этой причине ваши другие веб-сайты работают.
Эта проблема вызвана php 7.1.0-dev.
Я построил еще один вариант с той же конфигурационной версией 7.0.0, и проблема была решена.
Это не имеет ничего общего с WordPress, поскольку он автоматически попытается использовать MySQLi, если MySQL не найден. По крайней мере, в РГ 4.4.
На Ubuntu я исправил эту ошибку, выполнив
sudo apt-get install php-mysql
А затем перезагрузите мой сервер (caddy, но вы можете использовать apache или nginx).
источник