Я пытаюсь заставить phpmyadmin работать с mysql (вилка mariadb).
Я получаю это сообщение об ошибке в браузере, когда пытаюсь получить доступ к phpmyadmin:
> phpMyAdmin - Error The mysqli extension is missing. Please check your
> PHP configuration. <a href="Documentation.html#faqmysql"
> target="documentation"><img src="themes/dot.gif" title="Documentation"
> alt="Documentation" class="icon ic_b_help" /></a>
Поэтому я добавил в /etc/php.ini следующую строку:
extension=/usr/lib64/php/modules/mysqli.so
Теперь, когда я запускаю apache, в php_errors.log появляется следующая ошибка:
[12-Feb-2013 00:09:44] PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysqli.so' - libmysqlclient.so.16: cannot open shared object file: No such file or directory in Unknown on line 0
Вот результат выполнения команды ldd на mysqli.so:
[ollie@localhost modules]$ ldd mysqli.so
linux-vdso.so.1 => (0x00007fffd29ff000)
libmysqlclient.so.16 => not found
libz.so.1 => /lib64/libz.so.1 (0x00007ffd84b10000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007ffd848d9000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007ffd846c0000)
libm.so.6 => /lib64/libm.so.6 (0x00007ffd8443b000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007ffd841e0000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007ffd83e46000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffd83ab2000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007ffd83850000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007ffd8360e000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007ffd8332e000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007ffd8312a000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007ffd82efe000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ffd82cf9000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffd84f5f000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007ffd82aee000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007ffd828eb000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ffd826d0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffd824b3000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ffd82293000)
Я подтвердил, что libmysqlclient.so.16 находится в / usr / lib. Я попытался добавить / usr / lib в свою переменную среды LD_LIBRARY_PATH, но это не дало результата.
Вот еще несколько подробностей о моей среде:
CentOS: 6.3
PHP: 5.3.3
Версия БД:
mysql Ver 15.1 Distrib 5.5.29-MariaDB, для Linux (x86_64) с использованием строки чтения 5.1
Вам также необходимо установить MariaDB-compat
RPM для обеспечения совместимости с системными пакетами, созданными для более ранней версии MySQL. Текущее имя файла MariaDB-5.5.29-centos6-x86_64-compat.rpm
которые вы можете найти на любом зеркальном сайте.
Если это не поможет решить проблему, сообщить об ошибке в MariaDB.
Так что проблема, вероятно, здесь.
extension=/usr/lib64/php/modules/mysqli.so
Вы используете 64-битную версию пакета mysqli php, но ваш libmysqlclient.so.16, который вы находите в / usr / lib, может быть 32-битной версией
Выполните следующее
file /usr/lib/libmysqlclient.so.16
Теперь это, вероятно, символическая ссылка, поэтому просто продолжайте следовать по ней, пока не дойдете до файла и не убедитесь, что это 64-битная версия.