Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
modules_php [Le 15/12/2011, 15:17] 127.0.0.1 modification externe |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>serveur vétuste}} | ||
- | ---- | ||
- | ===== Modules pour PHP ====== | ||
- | |||
- | <note>Cette page est en cours de rédaction. | ||
- | Toute contribution est la bienvenue ;-) </note> | ||
- | |||
- | Cette page vise à présenter certains modules pour PHP qui pourraient vous être utile et l'intérêt qu'ils apportent. | ||
- | |||
- | <note important> | ||
- | **À partir de Feisty**, il n'y a **plus de paquets php4-***. Cependant, sous Edgy et Dapper, vous pouvez remplacer **php5** par **php4** si vous utilisez php4. | ||
- | </note> | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== php-pear ===== | ||
- | |||
- | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] [[apt://php-pear|php-pear]] | ||
- | |||
- | Pour installer une extension: | ||
- | sudo pecl install extname | ||
- | <note> | ||
- | Pour l'installation d'extensions via pecl (par exemple json) Il peut être parfois nécessaire d'installer le paquet [[apt://php5-dev]] pour éviter les erreurs de dépendances tel que: | ||
- | ERROR: `phpize' failed | ||
- | </note> | ||
- | |||
- | |||
- | Plus d'information sur http://www.php.net/manual/fr/install.pecl.php | ||
- | |||
- | |||
- | |||
- | ===== php5-intl ===== | ||
- | sudo apt-get install php5-intl | ||
- | |||
- | ===== php5-cli ===== | ||
- | //cli// pour //Command Line Interface//, permet d'utiliser php en ligne de commande. Vous pourrez alors : | ||
- | exécuter un script php sans passer par un navigateur web (très pratique pour lancer des scripts de maintenance en [[cron]] par exemple) | ||
- | php /chemin/vers/fichier.php | ||
- | obtenir la liste des modules compilés avec PHP et ZEND et chargés | ||
- | php -m | ||
- | exécuter une commande directement en php | ||
- | php -r '$var = "salut"; echo $var;' | ||
- | |||
- | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] [[apt://php5-cli|php5-cli]] | ||
- | |||
- | Sachez que php-cli a son propre php.ini, vous en aurez sans doute besoin pour activer mysql (sans quoi vous aurez une erreur à l'exécution de vos scripts utilisant mysql.) | ||
- | Pour éditer le fichier: | ||
- | sudo vim /etc/php5/cli/php.ini | ||
- | |||
- | |||
- | Vous trouverez plus d'informations sur php en ligne de commande dans la page de manuel de la commande //php// et sur http://fr2.php.net/features.commandline | ||
- | |||
- | ===== php5-imagick ===== | ||
- | ImageMagick sert, comme GD à générer et manipuler des images. | ||
- | |||
- | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] [[apt://php5-imagick|php5-imagick]]. | ||
- | |||
- | Et ensuite saisissez cette commande dans un terminal pour que les modification soient prise en compte : | ||
- | sudo /etc/init.d/apache2 force-reload | ||
- | |||
- | Vous trouverez plus d'informations sur la librairie ImageMagick sur http://fr.php.net/imagick | ||
- | |||
- | |||
- | ===== php5-gd ===== | ||
- | En général, PHP sert à générer des pages HTML. Avec les librairies GD, vous pouvez créer et manipuler des images avec PHP. vous pouvez l'utiliser par exemple pour générer des graphiques dynamiquement et "à la volée". | ||
- | |||
- | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] [[apt://php5-gd|php5-gd]]. | ||
- | |||
- | Et ensuite saisissez cette commande dans un terminal pour que les modification soient prise en compte : | ||
- | sudo /etc/init.d/apache2 force-reload | ||
- | |||
- | Vous trouverez plus d'informations sur les librairies GD sur http://fr.php.net/gd | ||
- | |||
- | |||
- | __**Support GD sous PHP**__ | ||
- | |||
- | La mise en place du serveur WEB standard sous Ubuntu pose un problème lors de l'utilisation de la librairie GD. Certaines fonctions ne sont pas implémentées. | ||
- | |||
- | Pour remédier à ce problème, il est proposé de re-compiler PHP avec le support natif de GD. | ||
- | |||
- | Pour ce faire commencez par installer les outils de compilation : | ||
- | aptitude install build-essential | ||
- | |||
- | **Téléchargement et compilation des codes sources FreeType** | ||
- | |||
- | Au moment où ce document est écrit la version de FreeType est là 2.3.9 et la version de PHP utilisé est la 5.2.11. | ||
- | |||
- | Placez-vous dans le répertoire que vous souhaitez, dans cet article il a été créé un répertoire php dans le répertoire home : | ||
- | mkdir /home/php | ||
- | cd /home/php | ||
- | |||
- | Pour télécharger FreeType, on exécute la commande : | ||
- | wget http://downloads.sourceforge.net/freetype/freetype-2.3.9.tar.gz | ||
- | |||
- | On décompresse les sources : | ||
- | tar -zxvf freetype-2.3.9.tar.gz | ||
- | |||
- | On se place dans le répertoire fraîchement décompressé : | ||
- | cd /home/php/freetype-2.3.9 | ||
- | |||
- | On prépare la compilation : | ||
- | ./configure | ||
- | |||
- | On compile : | ||
- | make | ||
- | |||
- | On installe la compilation : | ||
- | make install | ||
- | |||
- | __**Téléchargement et compilation des codes sources PHP5**__ | ||
- | |||
- | Au moment où ce document est écrit la version de FreeType est là 2.3.9 et la version de PHP utilisé est la 5.2.11. | ||
- | |||
- | On installe les paquets suivants utiles à la compilation de PHP : | ||
- | apt-get install libpng12-* libjpeg* zlib1g gawk bison flex ^libxml2-* mcrypt libmcrypt-dev apache2-prefork-dev | ||
- | aptitude install perl libcurl4-gnutls-dev libicu-dev libxslt1-dev libcurl4-openssl-dev | ||
- | |||
- | On se place dans le répertoire précédemment créé : | ||
- | cd /home/php | ||
- | |||
- | Pour télécharger PHP, on exécute la commande (cette ligne est valable uniquement pour le 09-20-2009 entre 8:30 et 14:30 :D, il faut aller sur http://snaps.php.net pour récupérer le "dernier" bon fichier): | ||
- | wget http://snaps.php.net/php5.2-201004091630.tar.gz | ||
- | |||
- | On décompresse les sources : | ||
- | tar -zxvf php5.2-200909200830.tar.gz | ||
- | |||
- | On se place dans le répertoire franchement décompressé : | ||
- | cd /home/php/php5.2* | ||
- | |||
- | Avant de lancer la ligne de configuration pour la compilation, nous allons rechercher l'emplacement des fichiers suivants : php.ini, mysqld.sock et mysql.h | ||
- | L'objectif est d'essayer de rester conforme à l'installation d'UBUNTU. Et, théoriquement sur 8.04 LTS, les fichiers devraient se trouver dans les répertoires : | ||
- | pour php.ini : /etc/php5/apache2/ | ||
- | pour mysqld.sock : /var/run/mysqld/ | ||
- | pour mysql.h : /usr/include/mysql/mysql.h | ||
- | |||
- | On installe les sources de mysql pour trouver le mysql.h | ||
- | la commande pour trouver le fichier : find / -name mysql.h): | ||
- | pour installer les sources : | ||
- | aptitude install libmysqlclient-dev | ||
- | On prépare la compilation par la commande suivante : | ||
- | ./configure --prefix=/usr/ --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/apache2 --disable-ipv6 --enable-inline-optimization --disable-debug --enable-bcmath --enable-calendar --with-curl --enable-ctype --enable-dbase --enable-discard-path --enable-exif --enable-ftp --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-gd-native-ttf --enable-magic-quotes --enable-mbstring --with-mcrypt --with-mysql=/usr/bin/ --with-pdo-mysql --enable-soap --with-pear --with-xsl --with-zlib --with-openssl --enable-sockets --with-mysql-sock=/var/run/mysqld/mysqld.sock | ||
- | (Il est vivement conseillé de faire une sortie vers un fichier) | ||
- | |||
- | On compile : | ||
- | make | ||
- | On installe la compilation avec : | ||
- | make install --ignore-errors | ||
- | Le make install ne fonctionnera pas car sous UBUNTU les fichiers ne sont pas placés dans les répertoires attendus. | ||
- | |||
- | Et, on redémarre apache : | ||
- | /etc/init.d/apache2 restart | ||
- | |||
- | ===== php5-sqlite ===== | ||
- | |||
- | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] [[apt://php5-sqlite|php5-sqlite]] | ||
- | |||
- | Ce module permet de faire l'interface avec le moteur de base SQLite Embeddable SQL Database Engine. SQLite est une bibliothèque C qui met en place un moteur de bases de données SQL embarqué. Les programmes qui utilisent SQLite peuvent disposer d'un accès à une base de données SQL, sans avoir à faire tourner d'autre processus serveur. | ||
- | |||
- | SQLite n'est pas un logiciel client pour se connecter à un grand nom des bases de données. SQLite est le serveur. | ||
- | |||
- | Ce module permet donc d'utiliser les fonctions de la bibliothèque SQLite pour pouvoir lire et écrire directement dans les fichiers de bases de données se trouvant sur le disque dur. | ||
- | |||
- | Pour plus d'informations sur SQLite : http://sqlite.org/ | ||
- | |||
- | |||
- | ===== php5-xsl ===== | ||
- | |||
- | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] [[apt://php5-xsl|php5-xsl]]. | ||
- | |||
- | XSL (eXtensible Stylesheet Language) est le langage de description de feuilles de style du W3C associé à [[http://fr.wikipedia.org/wiki/XML|XML]]. | ||
- | |||
- | Une feuille de style XSL est un fichier qui décrit comment doivent être présentés (c'est-à-dire affichés, imprimés, épelés) les documents XML (l'équivalent du CSS pour HTML). | ||
- | |||
- | Ce module permet donc à PHP d'utiliser les fonctions permettant la mise en forme d'un document XML. | ||
- | De plus, il inclut les librairie du langage [[http://fr.wikipedia.org/wiki/Extended_stylesheet_language_transformations|XSLT]], permettant ainsi la transformation d'un document XML vers un autre, ou vers un autre dialecte XML (XHTML, XSL-FO, HTML, etc ...). | ||
- | |||
- | Plus d'info : http://fr.php.net/xsl | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== php5-mcrypt ===== | ||
- | |||
- | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] [[apt://php5-mcrypt|php5-mcrypt]]. | ||
- | |||
- | Ce module permet à PHP d'utiliser les fonctions crypt() et crypt(1) de la bibliothèque mcrypt. Utile si vous voulez chiffrer une donnée importante en laissant le soin aux utilisateurs de la déchiffrer. | ||
- | |||
- | mcrypt dispose d'une grande variété d'algorithmes de chiffrement, tels DES, TripleDES, Blowfish (par défaut), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 et GOST en modes CBC, OFB, CFB et ECB. De plus, elles acceptent aussi RC6 et IDEA qui sont considérés comme "non-libres". | ||
- | |||
- | Il est possible que vous rencontriez des problèmes de chargement sous Gutsy. Malgré l'installation du paquet, il ne se charge pas dans php5 (il n'apparait pas dans phpinfo();). Dans ce cas, il manque probablement le fichier mcrypt.ini que vous allez devoir créer : | ||
- | |||
- | <code> | ||
- | sudo nano /etc/php5/conf.d/mcrypt.ini | ||
- | </code> | ||
- | |||
- | Ajoutez-y ensuite : | ||
- | |||
- | <code> | ||
- | # configuration for php MCRYPT module | ||
- | extension=mcrypt.so | ||
- | </code> | ||
- | |||
- | Et redémarrez apache : | ||
- | |||
- | <code> | ||
- | sudo /etc/init.d/apache2 restart | ||
- | </code> | ||
- | |||
- | Normalement tout fonctionne :-). | ||
- | |||
- | Vous trouverez plus d'information sur mcrypt et php ici : http://www.php.net/manual/fr/ref.mcrypt.php | ||
- | |||
- | Erreur possible : | ||
- | <code> | ||
- | PHP Fatal error: Call to undefined function mcrypt_module_open() | ||
- | </code> | ||
- | |||
- | |||
- | |||
- | ===== php5-curl ===== | ||
- | |||
- | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] [[apt://php5-curl | ||
- | |php5-curl]]. | ||
- | |||
- | PHP supporte **libcurl**, une bibliothèque créée par Daniel Stenberg, qui vous permet de vous connecter, de communiquer avec de nombreux serveurs, grâce à de nombreux protocoles. | ||
- | |||
- | libcurl supporte actuellement les protocoles suivants : HTTP, HTTPS, FTP, gopher, telnet, dict, file, et LDAP. libcurl supporte aussi les certificats HTTPS, les POST HTTP, PUT HTTP, le chargement par FTP (ce qui peut être fait par l'extension FTP), les chargements par formulaire HTTP, les proxies, les cookies et l'identification par mot de passe et nom d'utilisateur. | ||
- | |||
- | **Exemple :** Utilisation de cURL pour récupérer le contenu d'une page et l'enregistrer dans un fichier texte. | ||
- | |||
- | <code> | ||
- | <?php | ||
- | |||
- | $ch = curl_init("http://www.example.com/"); | ||
- | $fp = fopen("example_homepage.txt", "w"); | ||
- | |||
- | curl_setopt($ch, CURLOPT_FILE, $fp); | ||
- | curl_setopt($ch, CURLOPT_HEADER, 0); | ||
- | |||
- | curl_exec($ch); | ||
- | curl_close($ch); | ||
- | fclose($fp); | ||
- | ?> | ||
- | </code> | ||
- | |||
- | Plus d'info sur cURL et PHP : http://www.php.net/manual/fr/ref.curl.php | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== php5-zip ===== | ||
- | |||
- | Le paquet php-zip était dispo en php4, ne l'est plus tel quel en php5 (en tout cas pas avant php5.2 en standard). | ||
- | |||
- | Donc pour installer l'extension zip sur php5.1, ça se passe via PECL | ||
- | |||
- | Donc il faut avoir (qui donnera phpize) : | ||
- | <code> | ||
- | sudo apt-get install make php5-dev libpcre3-dev | ||
- | </code> | ||
- | |||
- | Ensuite récupérer l'archive en question sur : http://pecl.php.net/package/zip | ||
- | |||
- | La mettre dans un dossier, la décompresser et faire : | ||
- | <code> | ||
- | cd /chemin/répertoire_archive_décompressée | ||
- | phpize | ||
- | ./configure | ||
- | make | ||
- | sudo make install | ||
- | </code> | ||
- | |||
- | Voir aussi : http://julp.developpez.com/php/zip | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | //Contributeurs: [[:utilisateurs:_Enchained]], [[:utilisateurs:Fengy]], PCB, TounokiNico pour php-zip // | ||
- | ===== php5-imap ===== | ||
- | "Internet Message Access Protocol (IMAP) est un protocole utilisé par les serveurs de messagerie électronique, fonctionnant pour la réception." - Wikipédia | ||
- | |||
- | Ce paquet fournit un module pour les fonctions IMAP dans les scripts PHP. Il est employé dans de nombreux logiciels tel que VTigerCRM pour gérer des fonctions de messagerie. | ||
- | |||
- | **Installation** | ||
- | |||
- | Pour Ubuntu Gutsy Gibbon et successeurs vous pouvez cliquer là: | ||
- | [[apt://php5-imap | php5-imap]] | ||
- | |||
- | Sinon tapez sur un terminal: | ||
- | <code> | ||
- | sudo apt-get install php5-imap | ||
- | </code> | ||
- | Pour Ubuntu Dapper Drake, la ligne //extension=imap.so// sera placée dans le fichier php.ini qui se trouve dans le répertoire // /etc/php5/apache2/ //. | ||
- | |||
- | ===== Fileinfo ===== | ||
- | |||
- | Le module fileinfo n'est pas installé par défaut. Jusqu'à Jaunty il faut l'installer manuellement. | ||
- | Il convient d'abord d'installer les modules suivants: | ||
- | <code>sudo apt-get install php5-dev libmagic-dev php-pear</code> | ||
- | Il peut être téléchargé ici: http://pecl.php.net/package/Fileinfo et installé avec la commande | ||
- | <code>pear install Fileinfo-1.0.X.tgz</code> | ||
- | |||
- | IL faut ensuite ajouter la ligne suivante dans le fichier /etc/php5/cli/php.ini: | ||
- | <code>extension=fileinfo.so</code> | ||
- | et redémarrer votre serveur apache: | ||
- | <code>/etc/init.d/apache restart</code> | ||
- | |||
- | ===== XCache ===== | ||
- | |||
- | XCache est un accélérateur PHP : [[xcache]] |