1 votes

CentOS 5.5 - configuration de mysql avec php, absence de mysql.so

Je teste une version de CentOS sur VMWare. J'utilise CentOS 5.5. J'essaie de faire fonctionner mysql avec php5.3.

J'ai compilé PHP 5.3 à partir des sources, et j'ai installé les éléments mysql nécessaires. Cependant, mysql.so n'a jamais été installé. En faisant un 'locate mysql.so', on trouve un mysql.so dans une compilation perl ou autre, mais rien pour php.

Est-ce que je peux télécharger le fichier mysql.so quelque part ? J'ai fait 3 pages de recherche sur Google et je n'ai pas trouvé de moyen de le télécharger. Tout le monde dit qu'il est livré avec PHP, mais je ne l'ai pas. Mon phpinfo() montre que mysqli est chargé, mais pas mysql.

yum install php-mysql indique qu'il est à jour.

Des idées ?

EDIT : J'ai donc oublié d'ajouter --with-mysql aux drapeaux de compilation. Je l'ai fait et maintenant je peux le faire. Je l'ai donc fait et j'obtiens maintenant ce qui suit :

checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket... no
checking for mysql_close in -lmysqlclient... no
checking for mysql_error in -lmysqlclient... no
configure: error: mysql configure failed. Please check config.log for more information.

et config.log :

configure:60081: checking for MySQL support
configure:60128: checking for specified location of the MySQL UNIX socket
configure:60332: checking for mysql_close in -lmysqlclient
configure:60351: gcc -o conftest -I/usr/include -g -O2 -fvisibility=hidden  -Wl,-rpath,/usr/lib/mysql -L/usr/lib/mysql -L/usr/lib  -Wl,-rpath,/usr/kerberos/lib64 -L/usr/kerberos/lib64 -Wl,-rpath,/usr/kerberos/lib -L/usr/kerberos/lib conftest.c -lmysqlclient  -lmcrypt -lltdl -lcrypt -lfreetype -lpng -lz -ljpeg -lcurl -lz -lm -ldl -lnsl  -lxml2 -lz -lm -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz -lxml2 -lz -lm -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lssl -lcrypto -ldl -lz 1>&5
/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.a when searching for -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
configure: failed program was:
#line 60340 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char mysql_close();

int main() {
mysql_close()
; return 0; }
configure:60574: checking for mysql_error in -lmysqlclient
configure:60593: gcc -o conftest -I/usr/include -g -O2 -fvisibility=hidden  -Wl,-rpath,/usr/lib/mysql -L/usr/lib/mysql -L/usr/lib  -Wl,-rpath,/usr/kerberos/lib64 -L/usr/kerberos/lib64 -Wl,-rpath,/usr/kerberos/lib -L/usr/kerberos/lib -Wl,-rpath,/usr -L/usr conftest.c -lmysqlclient  -lz -lmcrypt -lltdl -lcrypt -lfreetype -lpng -lz -ljpeg -lcurl -lz -lm -ldl -lnsl  -lxml2 -lz -lm -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz -lxml2 -lz -lm -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lssl -lcrypto -ldl -lz 1>&5
/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.a when searching for -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
configure: failed program was:
#line 60582 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char mysql_error();

int main() {
mysql_error()
; return 0; }

1voto

isherwood Points 107

Impair. Sur ma machine RHEL, mysql.so est fourni par php-mysql. Qu'est-ce que rpm -ql php-mysql | grep mysql.so vous donner ?

Il est possible que vous rencontriez des problèmes de version ? Le dépôt RHEL/CentOS est sur la version 5.1.6 de PHP. Mais vous avez compilé php5.3 à partir des sources, et il semble que vous ayez utilisé le paquet php-mysql. Je ne suis pas sûr que ce dernier soit compatible avec le premier. Du point de vue de la facilité d'administration, il serait préférable d'installer le paquet php à partir du dépôt. Si vous n'avez besoin d'aucune des fonctionnalités fournies uniquement dans la 5.3, ce sera probablement beaucoup plus facile pour vous.

Par ailleurs, avez-vous compilé PHP avec les drapeaux appropriés pour mysql ? ( --with-mysql ?)

--Christopher Karel

0voto

Tewr Points 858

J'essaie de faire fonctionner mysql avec php5.3

ne compilent pas à partir des sources pour CentOS, sauf si vous vraiment savoir ce que l'on s'apprête à casser et garder les morceaux... C'est vrai pour n'importe quelle distribution si vous voulez être plus malin que le système de gestion des paquets.

Vous devriez vraiment utiliser des dépôts tiers tels que celui qui est listé à l'adresse suivante : http://wiki.centos.org/AdditionalResources/Repositories

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X