2009-09-23 9 views
0

J'ai un serveur qui fonctionne en direct (en train de le transformer en serveur de développement mais qui a besoin de quelque chose en premier) donc nous ne voulons pas recompiler php pour casser quoi que ce soit.Mysql en tant que DSO PHP

Sur le nouveau serveur, nous avons les extensions dynamiques de mysql.so et mysqli.so Je n'ai pas été capable de trouver quoi que ce soit sur les détails de la construction de moi-même, donc copié sur l'ancien serveur. Sur le serveur actuel, MySQL n'est pas configuré avec php. MySQL est installé sur la machine mais était utilisé sur un service maintenant inutilisé. L'intention est d'utiliser la base de données MySQL sur un serveur distant.

J'ai ajouté les lignes à la php.ini

extension=mysql.so 
extension=mysqli.so 

je finis par obtenir cette erreur:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/mysqli.so' - libmysqlclient.so.15:cannot open shared object file: No such file or directory in Unknown on line 0 

J'ai déplacé une copie de ce fichier dans/usr/lib/mysql/mais je reçois toujours l'erreur.

Y a-t-il quelque chose que je suis supposé faire pour permettre à PHP d'exécuter MySQL (ou MySQLi) sans avoir à risquer de recompiler sur un serveur live?

Répondre

1

On dirait que vos chemins de fichier sont différents. Est-ce que mysql.so est:

/usr/local/lib/php/extensions/mysqli.so 

?

+0

Oui. L'ini a également le paramètre extensions_dir = "/ usr/local/lib/php/extensions /" –

+0

Où est "libmysqlclient.so" at? –

0

Il est toujours préférable d'installer des extensions et PHP lui-même à partir de paquets ou de ports, et non de compiler des sources. Quel est votre système d'exploitation? Dans votre cas, il semble qu'il y ait un problème lors de l'initialisation de la bibliothèque libmysqlclient, qui génère des erreurs. Pouvez-vous démarrer l'outil client mysql à partir de la ligne de commande sur le serveur? Est-ce que ça fonctionne correctement?

+0

Je suis d'accord avec les paquets, mais ce n'est pas mon appel (mes patrons). Vous ne savez pas exactement quel est le système d'exploitation. C'est une version de Linux avec une ligne de commande seulement. Je ne veux pas vraiment démarrer MySQL sur le serveur web, mais seulement pouvoir appeler des requêtes sur un serveur db distant. Est-ce qu'il doit être installé sur le serveur web pour faire cela? –

+0

Vous avez besoin de libmysqlclient pour travailler avec MySQL depuis PHP. Le serveur MySQL lui-même n'est pas nécessaire. Mais la version libmysqlclient doit correspondre à la version du serveur MySQL que vous appelez. –

Questions connexes