Modules pour PHP

Cette page vise à présenter certains modules pour PHP qui pourraient vous être utile et l'intérêt qu'ils apportent.

Vous pouvez vérifier qu'il existe pour votre version, en faisant une recherche dans les pages des packages:
Par exemple pour xenial : http://packages.ubuntu.com/xenial/php/

Pour les versions récentes, ne spécifiez pas de version, le système installera la dernière version… 7.*.
les modules préfixés par php5 ont encore cours avec trusty,

Par exemple php5-curl sous trusty devient php7.0-curl, plus simplement accessible par php-curl.

php-pear

Installez le paquet php-pear.

Pour installer une extension:

sudo pecl install extname
Pour l'installation d'extensions via pecl (par exemple json) Il peut être parfois nécessaire d'installer le paquet php-dev pour éviter les erreurs de dépendances tel que:
ERROR: `phpize' failed

Plus d'information ici.

php-intl

php-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;'

Installez le paquet php-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 ici.

php-imagick

ImageMagick sert, comme GD à générer et manipuler des images.

Installez le paquet php-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

php-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".

Installez le paquet php-gd.

Et ensuite saisissez cette commande dans un terminal pour que les modification soient prise en compte :

 sudo /etc/init.d/apache2 force-reload
 

ou encore

 sudo service apache2 reload

Vous trouverez plus d'informations sur les librairies GD sur http://fr.php.net/gd

Support GD sous PHP

FIXME 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 :

 sudo apt-get install build-essential

Téléchargement et compilation des codes sources FreeType FIXME 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://sourceforge.net/projects/freetype/files/freetype2/2.7.1/freetype-2.7.1.tar.gz/download -O freetype-2.7.1.tar.gz

On décompresse les sources :

 tar -zxvf freetype-2.7.1.tar.gz

On se place dans le répertoire fraîchement décompressé :

 cd /home/php/freetype-2.7.1

On prépare la compilation :

 ./configure

On compile :

 make

On installe la compilation :

 sudo make install

Téléchargement et compilation des codes sources PHP

On installe les paquets suivants utiles à la compilation de PHP :

 sudo apt-get install libpng12-dev libjpeg8-dev zlib1g gawk bison flex ^libxml2-* mcrypt libmcrypt-dev apache2-prefork-dev
 sudo apt-get install perl 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 10-05-2012 à 5:30 :D, il faut aller sur http://snaps.php.net pour récupérer le "dernier" bon fichier):

 wget http://fr2.php.net/get/php-7.1.4.tar.bz2

On décompresse les sources :

 tar -zxvf php-7.1.4.tar.bz2

On se place dans le répertoire fraîchement décompressé :

 cd /home/php/php7.1.4*

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. Les fichiers devraient se trouver dans les répertoires :

  • pour php.ini : /etc/php/7.0/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 :

 sudo apt-get 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-dir=/usr/ --with-pdo-mysql --enable-soap --with-pear --with-xsl --with-zlib --with-openssl --enable-sockets --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysqli --enable-zip --with-tidy=/usr/ --with-bz2

(Il est vivement conseillé de faire une sortie vers un fichier)

10/05/2012 : Si vous obtenez une erreur lors de la configuration, il se peut que ce soit réglé en installant les paquets libmysqlclient16-dev et mysql-source-5.1 (vérifier les numéros de versions pour installer les plus récentes)
Dans mon cas, erreur apxs2 introuvable, résolu avec : sudo apt-get install apache2-prefork-dev

On compile :

 make

On installe la compilation avec :

 sudo 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 et mysql :

 sudo /etc/init.d/apache2 restart
 sudo /etc/init.d/mysql restart

(La compilation de PHP avec le support de GD varie fonction de la distribution d'UBUNTU, veuillez vous référer au fil de discussion suivant http://forum.ubuntu-fr.org/viewtopic.php?id=263186 pour tout problème rencontré ou contacté l'utilisateur http://forum.ubuntu-fr.org/profile.php?id=134430)

php-sqlite

Installez le paquet php-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/

php-mongodb

Le module php-mongodb remplace le module obsolète php-mongo. Installez le paquet php-mongodb.

php-xsl

Installez le paquet php-xml.

XSL (eXtensible Stylesheet Language) est le langage de description de feuilles de style du W3C associé à 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 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 ici

php-mcrypt

Installez le paquet aptphp-intlphp-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".

php-curl

Installez le paquet php-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.

<?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);
?>

Plus d'info sur cURL et PHP ici.

php-zip

php-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. Installez le paquet php-imap.

XCache

XCache est un accélérateur PHP : xcache

Contributeurs: _Enchained, Fengy, uderline, PCB, TounokiNico pour php-zip, bcag2

  • modules_php.txt
  • Dernière modification: Le 28/04/2018, 11:16
  • (modification externe)