OpenWRT+PHP7 «Ошибка Call to undefined function mysqli_connect()» не понимаю что делать?
решил поднять не большой сервер для сбора статистики.
Есть старенький роутер ASUS RT-N16 на нем стоит "OpenWrt 18.06.5, r7897-9d401013fc" на нем установлено :
php7 - 7.2.26-1
php7-mod-mysqli - 7.2.26-1
php7-mod-mysqlnd - 7.2.26-1
ну и lighttpd
php.ini:
extension_dir = "/usr/lib/php"
/usr/lib/php:
mysqli.so
mysqlnd.so
index.php:
<?php
$link = mysqli_connect("192.168.1.1", "root", "passwd", "test");
if (!$link) {
echo "Ошибка: Невозможно установить соединение с MySQL." . PHP_EOL;
echo "Код ошибки errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Текст ошибки error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
echo "Соединение с MySQL установлено!" . PHP_EOL;
echo "Информация о сервере: " . mysqli_get_host_info($link) . PHP_EOL;
mysqli_close($link);
?>
php-cli /www/index.php: Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in /www/index.php:2
Stack trace: #0 {main} thrown in /www/index.php on line 2
/var/log/php_errors.log:
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli.so' (tried: /usr/lib/php/mysqli.so (Error relocating /usr/lib/php/mysqli.so: mysqlnd_reverse_api_register_api: symbol not found), /usr/lib/php/mysqli.so.so (Error loading shared library /usr/lib/php/mysqli.so.so: No such file or directory)) in Unknown on line 0
Поиск по OpenWRT ресурсам говорит, что, возможно, проблема в конкретной сборке OpenWRT.
Попробуйте воспользоваться советом:
Try this. Check /etc/php7/
Rename 20_mysqli.ini to 30_mysqli.ini, or delete 20_mysqli.ini if both exist. If you also have 20_openssl.ini there, rename that to 10_openssl.ini.
Above change is needed to load the modules in the correct order.
This should now be fixed in the latest builds, but you could be running older code, or suffering from the bug that was there earlier.