PHP
Compiler les extensions PHP
Recherche…
Compiler sous Linux
Pour compiler une extension PHP dans un environnement Linux typique, il existe quelques pré-requis:
- Compétences Unix de base (pouvoir faire "make" et un compilateur C)
- Un compilateur ANSI C
- Le code source de l'extension PHP que vous souhaitez compiler
Il existe généralement deux manières de compiler une extension PHP. Vous pouvez compiler l'extension de manière statique dans le binaire PHP ou la compiler en tant que module partagé chargé par votre binaire PHP au démarrage. Les modules partagés sont plus probables car ils vous permettent d'ajouter ou de supprimer des extensions sans reconstruire l'intégralité du binaire PHP. Cet exemple se concentre sur l'option partagée.
Si vous avez installé PHP via votre gestionnaire de paquets ( apt-get install
, yum install
, etc.), vous devrez installer le paquet -dev
pour PHP, qui inclura les fichiers d'en-tête PHP nécessaires et le script phpize pour que l'environnement de construction fonctionne. . Le paquet pourrait être nommé quelque chose comme php5-dev
ou php7-dev
, mais assurez-vous d'utiliser votre gestionnaire de paquets pour rechercher le nom approprié en utilisant les référentiels de votre distribution. Ils peuvent différer.
Si vous avez construit PHP depuis la source, les fichiers d'en-tête existent probablement déjà sur votre système ( généralement dans /usr/include
ou /usr/local/include
).
Étapes pour compiler
Après vous être assuré que vous disposez de toutes les conditions préalables à la compilation, placez-vous sur pecl.php.net , sélectionnez l’extension que vous souhaitez compiler et téléchargez le fichier.
- Déballez la boule de goudron (par exemple,
tar xfvz yaml-2.0.0RC8.tgz
) - Entrez le répertoire où l'archive a été décompressé et lancez
phpize
- Vous devriez maintenant voir un script
.configure
nouvellement créé si tout s'est bien passé, lancez cela./configure
- Maintenant, vous devrez lancer
make
, qui compilera l'extension - Enfin,
make install
copiera l'extension binaire compilée dans votre répertoire d'extension
L'étape make install
fournira généralement le chemin d'installation pour lequel l'extension a été copiée. C'est généralement dans /usr/lib/
, par exemple, il pourrait s'agir de /usr/lib/php5/20131226/yaml.so
. Mais cela dépend de votre configuration de PHP (ie --with-prefix
) et de la version spécifique de l'API. Le numéro de l'API est inclus dans le chemin pour conserver les extensions créées pour différentes versions d'API dans des emplacements distincts.
Chargement de l'extension en PHP
Pour charger l'extension en PHP, recherchez le fichier php.ini chargé pour le SAPI approprié, puis ajoutez la ligne extension=yaml.so
puis redémarrez PHP. Remplacez yaml.so
par le nom de l'extension que vous avez installée, bien sûr.
Pour une extension Zend, vous devez fournir le chemin d'accès complet au fichier objet partagé. Cependant, pour les extensions PHP normales, ce chemin provient de la directive extension_dir
dans votre configuration chargée ou de l'environnement $PATH
lors de la configuration initiale.