Mensagem de erro com o phpmyadmin ao inicializar o apache

1

Estou tentando fazer com que o phpmyadmin trabalhe com o mysql (mariadb fork).

Eu recebo esta mensagem de erro no navegador quando tento acessar o 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>

Então, adicionei a seguinte linha ao /etc/php.ini:

extension=/usr/lib64/php/modules/mysqli.so

Agora, quando inicializo o apache, recebo o seguinte erro em 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

Aqui está a saída de um comando ldd em 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) 

Confirmei que o libmysqlclient.so.16 está em / usr / lib. Eu tentei adicionar / usr / lib à minha variável de ambiente LD_LIBRARY_PATH, mas isso não teve efeito.

Aqui estão mais alguns detalhes sobre o meu ambiente:

CentOS: 6,3 | PHP: 5.3.3
Versão do DB:
mysql Ver 15.1 Distrib 5.5.29-MariaDB, para Linux (x86_64) usando readline 5.1

    
por opike 12.02.2013 / 06:17

2 respostas

1

Você também precisa instalar o MariaDB-compat RPM para fornecer compatibilidade com os pacotes do sistema que foram criados em uma versão inferior do MySQL. O nome do arquivo atual é MariaDB-5.5.29-centos6-x86_64-compat.rpm , o qual você pode encontrar em qualquer site espelho.

Se isso não resolver o problema, informe um bug ao MariaDB .

    
por 12.02.2013 / 06:35
0

Então a questão provavelmente está aqui.

extension=/usr/lib64/php/modules/mysqli.so

Você está usando uma versão de 64 bits do pacote mysqli php mas seu libmysqlclient.so.16 você está encontrando em / usr / lib pode ser a versão de 32 bits

Execute o seguinte

file /usr/lib/libmysqlclient.so.16

Agora que é provavelmente um link simbólico, continue a seguir até chegar ao ficheiro e certifique-se de que é a versão de 64 bits.

    
por 12.02.2013 / 06:34