4 votes

Comment puis-je faire fonctionner PHP 5.3 sur Red Hat Enterprise Linux, avec PDO activé ? PHP53 a été installé avec yum

Ce problème est compliqué, et je ne suis pas du tout un expert, alors soyez patient. Mon équipe d'administration serveur m'a installé avec une boîte RHEL standard. Il avait PHP préinstallé, ainsi que apache.

Je suis maintenant en train d'essayer d'installer Drupal 7 sur la machine, ce qui m'a alerté d'un problème:

Support de base de données désactivé

Votre serveur Web ne semble pas prendre en charge les extensions de base de données PDO communes. Vérifiez avec votre fournisseur d'hébergement s'ils prennent en charge PDO (PHP Data Objects) et offrent des bases de données prises en charge par Drupal.

En faisant des recherches sur ce sujet et en parlant à nos serveur, il est apparu que nous devions activer les extensions PDO dans le fichier php.ini. Super, dans /etc/php.ini, j'ai ajouté les lignes extension=pdo.so et extension=mysql_pdo.so.

Rien n'a changé, et j'ai plusieurs préoccupations. Lorsque nous recherchons le fichier pdo.so sur le serveur, il se trouve dans un répertoire modules profond à l'intérieur de /usr/. Nous avons copié le chemin de ce répertoire dans le php.ini comme extension_dir=[ce chemin]. Redémarrage d'apache, aucun changement.

Lorsque j'exécute php -version, je vois un message d'erreur indiquant qu'il ne peut pas charger la bibliothèque dynamique, mais il recherche la bibliothèque pdo.so dans le répertoire /usr/local/lib/php/extensions/some-strange-no-debug-non-zts-0330i504065/. Pas dans le répertoire que nous venons de définir comme "extensions_dir" dans le php.ini. Et dans la sortie phpinfo(), il répertorie le répertoire des extensions comme nous l'avons défini dans le php.ini.

Ensuite, dans la sortie phpinfo(), dans la section "Configure Command", le --disable-pdo est présent.

Si je vérifie which php, et puis y navigue, il y a un autre fichier dans ce répertoire appelé php-config. Ouvrez cela, et TA DA! Il y a une valeur "extension_dir" qui correspond au répertoire /some-strange-no-debug-non-zts-92ur9u92i/ qui a été mentionné auparavant.

Tout cela doit-il être recompilé avec les flags appropriés? Peut-il être corrigé dans php.ini? Si non, comment pourrions-nous même envisager de recompiler php s'il a été installé avec yum ou rpm?

MERCI!!!

MISE À JOUR 1
Je devrais dire, j'utilise les packages RHEL5 php53. J'ai déjà exécuté yum install php53-pdo. Si j'essaie d'exécuter yum install php-pdo (ou tout autre package php non php53), j'obtiens des erreurs de conflit entre php53-common et php-common, c'est pourquoi j'ai commencé à exécuter des packages php53 en premier lieu.

3voto

ma55 Points 113

En supposant que vous utilisez les packages php53 de RHEL5 :

# yum install php53-pdo

Si vous utilisez toujours les RPM par défaut de PHP 5.1 de RHEL5, vous devez d'abord les désinstaller tous, puis installer tout ce dont vous aurez besoin dans la chaîne php53.

# yum search php53

Cependant, les RPM php 5.3 de RHEL ne prennent pas en charge PEAR ou PECL. Ils sont également dépourvus de certaines autres extensions php disponibles avec les anciens RPM. Si vous avez besoin de ces packages, vous devrez les installer vous-même (à partir de la source), trouver un autre dépôt de confiance, ou passer à RHEL6. Si vous optez pour la chaîne de packages php53 de RHEL, vous voudrez absolument tester que tout votre code fonctionne toujours. Les tests supplémentaires peuvent en fait rendre plus facile le passage à RHEL6.

1voto

Jacob Points 296

Vous pouvez faire cela pour activer pdo :

yum install php-pdo

0voto

quanta Points 49664

Dépendamment de la base de données que vous utilisez (MySQL, PostgreSQL, ...), assurez-vous d'avoir activé l'extension correspondante pdo_mysql.so, pdo_pgsql.so. N'oubliez pas de redémarrer Apache.

$ php -i | grep pdo
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_odbc.ini,
/etc/php.d/pdo_pgsql.ini,
/etc/php.d/pdo_sqlite.ini,
pdo_mysql
pdo_pgsql
Révision =>  $Id: pdo_pgsql.c 300351 2010-06-10 12:11:19Z iliaa $ 
pdo_sqlite

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