====== Installer des modules PHP non packagés avec pecl ====== Le projet PHP mets à disposition des sources d'extension en plus du code de base: * PEAR: "PHP Extension and Application Repository" qui met à disposition du code PHP à réutiliser pour des applications (http://pear.php.net) * PECL: "PHP Extension Community Library" qui met à disposition des extension au langage (http://pecl.php.net) Ces extensions ne sont pas packagées par Debian, il faut donc les installer à la main avec une étape de compilation pour PECL. ===== Le paquet php-pear ===== Pour faciliter la gestion de ces extensions, le projet PHP fournit deux programmes, ''pear'' et ''pecl''. Ils sont disponibles dans le paquet debian ''php-pear'', à installer: # aptitude install php-pear ===== Installer des extensions PEAR ===== ==== Préparatifs ==== Avant toute chose, il faut mettre à jour les "canaux", qui sont les infos sur des dépots distants, on installera ensuite est packages depuis ces dépots. # aptitude install php5-xmlrpc # pear list-channels Registered Channels: ==================== Channel Summary pear.php.net PHP Extension and Application Repository pecl.php.net PHP Extension Community Library __uri Pseudo-channel for static packages # pear channel-update pear.php.net Retrieving channel.xml from remote server Channel pear.php.net channel.xml is up to date # pear channel-update pecl.php.net Retrieving channel.xml from remote server Channel pecl.php.net channel.xml is up to date ==== Un exemple ==== Une extension bien connu de PEAR est Auth, qui permet de faire, comme son nom l'identique de l'authentification. On va prendre cet exemple : # pear install Auth Did not download optional dependencies: pear/Log, pear/File_Passwd, pear/Net_POP3, pear/MDB, pear/Auth_RADIUS, pear/Crypt_CHAP, pear/File_SMBPasswd, pear/HTTP_Client, pear/SOAP, pear/Net_Vpopmaild, pecl/vpopmail, pecl/kadm5, use --alldeps to download automatically pear/Auth can optionally use package "pear/Log" (version >= 1.9.10) pear/Auth can optionally use package "pear/File_Passwd" (version >= 1.1.0) pear/Auth can optionally use package "pear/Net_POP3" (version >= 1.3.0) pear/Auth can optionally use package "pear/MDB" pear/Auth can optionally use package "pear/Auth_RADIUS" pear/Auth can optionally use package "pear/Crypt_CHAP" (version >= 1.0.0) pear/Auth can optionally use package "pear/File_SMBPasswd" (version >= 1.0.0) pear/Auth can optionally use package "pear/HTTP_Client" (version >= 1.1.0) pear/Auth can optionally use package "pear/SOAP" (version >= 0.9.0) pear/Auth can optionally use package "pear/Net_Vpopmaild" (version >= 0.1.0) pear/Auth can optionally use package "pecl/vpopmail" (version >= 0.2) pear/Auth can optionally use package "pecl/kadm5" (version >= 0.2.3) pear/Auth can optionally use PHP extension "imap" pear/Auth can optionally use PHP extension "saprfc" downloading Auth-1.6.1.tgz ... Starting to download Auth-1.6.1.tgz (56,527 bytes) ..............done: 56,527 bytes install ok: channel://pear.php.net/Auth-1.6.1 Il propose d'installer d'autres paquets pour étendre les fonctionnalités. On pourrait donc installer ''MDB2'' et son driver ''MDB2_Driver_pgsql'' si on veut faire de l'authentification sur une base PostgreSQL. Il ne faut pas oublier d'installer les extensions nécessaires au fonctionnement de ces modules PEAR, par exemple ''php5-pgsql'' pour ''MDB2_Driver_pgsql''. Toutes les extensions PHP distribuées avec le source de PHP sont disponibles dans les paquets Debian. ==== Gestion au quotidien ==== Lancer la commande ''pear'' sans arguments pour obtenir la liste des commandes disponibles. Les plus communes sont ''install'', ''upgrade'', ''uninstall'' et ''list''. La marche à suivre pour ajouter des modules PEAR facilement : * Aller sur http://pear.php.net et trouver l'extension qui répondra au besoin * Chercher sur le site de PEAR les dépendances du module, ie dans la section "Download" du module * Installer les extensions PHP nécessaire * Installer les modules PEAR avec ''pear install '' ===== Installer des extensions PECL ===== ==== Avant de commencer ==== La commande ''pecl'' fonctionne de la même manière que ''pear''. Par contre, il faut installer des paquets supplémentaire pour la compilation des extensions : # aptitude install php5-dev build-essential Suivant les extensions, il faudra surêment installer d'autres paquets de développement. ==== Un exemple ==== Une extension sympathique est ''fileinfo'', qui permet de trouver le type d'un fichier grâce à la ''libmagic''. Il faut donc installer le paquet ''libmagic-dev'' pour la compilation de l'extension. # aptitude install libmagic-dev Dans le cas de la libmagic, il faut que la base des types MIME soit accessible dans ''/etc'': # cd /etc # ln -s /usr/share/file/magic.mime Ensuite, on installe l'extension avec ''pecl'' : # pecl install fileinfo downloading Fileinfo-1.0.4.tgz ... Starting to download Fileinfo-1.0.4.tgz (5,835 bytes) .....done: 5,835 bytes 3 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 building in /var/tmp/pear-build-root/Fileinfo-1.0.4 running: /tmp/pear/cache/Fileinfo-1.0.4/configure checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for a sed that does not truncate output... /bin/sed checking for gcc... gcc .... .... Build process completed successfully Installing '/var/tmp/pear-build-root/install-Fileinfo-1.0.4//usr/lib/php5/20060613+lfs/fileinfo.so' install ok: channel://pear.php.net/Fileinfo-1.0.4 Une nouvelle extension ''fileinfo.so'' est donc disponible sur le système. Il faut maintenant activer l'extension dans la configuration de PHP. On crée donc un fichier ''fileinfo.ini'' dans ''/etc/php5/conf.d/'' : extension=fileinfo.so On peut aussi mettre les options de configuration relative à l'extension dans ce fichier. Il faut redémarrer apache pour que la configuration soit prise en compte.