PECL dans Mediboard
Imprimer

PECL

PECL est aux extensions PHP? ce que PEAR est aux packages PHP?.

C'est en particulier un système d'installation d'extensions, analogue aux gestionnaire de paquets des environnement Linux.

Une des particularités de PECL est d'effectuer en une seule commande toutes les étapes permettant l'installation d'une extension à partir du code source de l'extension :

  1. téléchargement du code source
  2. Configuration de la compilation
  3. Compilation de l'extension
  4. Copie du fichier extension.so dans le répertoire des extensions de PHP
  5. Modification du php.ini pour prendre activer l'extension

Exemple pour installer l'exntesion pdo_odbc :

pecl install pdo_odbc

Prérequis

L'inconvénient de PECL est clairement l'ensemble des prérequis nécessaires à son fonctionnement, lesquels ne sont pas toujours déclarés au gestionnaire de paquets du système d'exploitation. PECL nécessite entre autres :

phpize
Pour préparer une extension à la compilation. Présent dans les packages php-devel
un compilateur
gcc est censé suffire, mais parfois il est nécessaire d'installer spécifiquement un gcc-c++

Incompatibilité avec les extensions de sécurité

PECL est globalement incompatible avec les extensions de sécurité de Linux, tels que SELinux et AppArmor. Ces systèmes empêcheront a priori les extensions d'être utilisées, bien que leur installation se déroule correctement.

Il sera la plupart du temps nécessaire de les désactiver.

Un message d'erreur typique est (pour l'extension PDO par exemple) :

PHP Warning:  PHP Startup: Unable to load dynamic library  '/usr/lib/php/modules/pdo.so' 
 /usr/lib/php/modules/pdo.so: cannot open shared object file: 
 Permission denied in Unknown on line 0

Désactiver SELinux

Pour désactiver instantanément SELinux, utiliser la commande suivante

setenforce 0

Pour une désactivation valable après le prochain reboot, modifier la configuration de SELinux dans le fichier /etc/selinux/config

SELINUX=disabled

On peut également le passer en mode permissif, ce qui semble parfois suffisant :

SELINUX=permissive


Dernièrement modifié par mytto14456 points  .
Modifiée dernièrement le jeudi 17 de septembre, 2009 15h40m40.

Sponsors privilégiés

Mediboard project