我试图让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
这里是mysqli.so上的一个ldd命令的输出:
[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环境variables,但没有任何效果。
以下是关于我的环境的更多细节:
CentOS:6.3
PHP:5.3.3
数据库版本:
mysql Ver 15.1 Distrib 5.5.29-MariaDB,用于Linux(x86_64),使用readline 5.1
您还需要安装MariaDB-compat RPM以提供与针对较低版本的MySQL构build的系统软件包的兼容性。 当前的文件名是MariaDB-5.5.29-centos6-x86_64-compat.rpm ,你可以在任何镜像站点find它。
如果这不能解决问题,请向MariaDB报告错误 。
所以这个问题可能在这里。
extension=/usr/lib64/php/modules/mysqli.so
您正在使用64位版本的mysqli php软件包,但是您在/ usr / lib中find的libmysqlclient.so.16可能是32位版本
运行以下
file /usr/lib/libmysqlclient.so.16
现在,这可能是一个符号链接,所以只要继续下去,直到你到达文件,并确保它是64位版本。