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 :
- téléchargement du code source
- Configuration de la compilation
- Compilation de l'extension
- Copie du fichier
extension.sodans le répertoire des extensions de PHP - Modification du
php.inipour 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
-
gccest censé suffire, mais parfois il est nécessaire d'installer spécifiquement ungcc-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
- SELinux sur la Wikipedia
Dernièrement modifié par mytto
.
Modifiée dernièrement le jeudi 17 de septembre, 2009 15h40m40.
