PHP Compiler sous Linux


Exemple

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.

  1. Déballez la boule de goudron (par exemple, tar xfvz yaml-2.0.0RC8.tgz )
  2. Entrez le répertoire où l'archive a été décompressé et lancez phpize
  3. Vous devriez maintenant voir un script .configure nouvellement créé si tout s'est bien passé, lancez cela ./configure
  4. Maintenant, vous devrez lancer make , qui compilera l'extension
  5. 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.