Maison >développement back-end >tutoriel php >Comment installer des extensions de PHP à partir de la source

Comment installer des extensions de PHP à partir de la source

Joseph Gordon-Levitt
Joseph Gordon-Levittoriginal
2025-02-20 09:38:09414parcourir

Comment installer des extensions de PHP à partir de la source

Parfois, il est difficile de savoir quelles extensions PHP vous aurez besoin avant d'installer PHP. Dans les cas où vous devez ajouter des extensions plus tard, vous pourriez avoir de la chance et l'extension pourrait être dans le référentiel du système d'exploitation que vous utilisez. Ce pourrait être un simple sud-apt-get install php5-in intl. Dans d'autres cas, cependant, vous devrez peut-être l'installer à partir de Source - PhalCon en est un cas, mais il rend la procédure extrêmement simple en introduisant le support des fournisseurs, les raccourcis et les instructions pré-écrites pour votre système d'exploitation. Et s'il n'y a pas de tel pour d'autres extensions, cependant?

Dans ce tutoriel, nous allons passer en installant des extensions personnalisées sur les systèmes Linux (et OS X - le processus est presque identique). La procédure est très similaire à ce que nous avons déjà fait sur Nitrous.io, mais adapté pour les environnements locaux - plus précisément, Laravel Homestead. Vous pouvez facilement dériver des instructions d'installation de ce tutoriel et les appliquer à d'autres distros.

Les plats clés

  • L'installation d'extensions de PHP à partir de la source nécessite des outils de développement PHP et un compilateur installé sur votre machine, ainsi que le code source PHP et le code source de l'extension.
  • Le processus d'installation des extensions de PHP à partir de la source implique plusieurs étapes: télécharger le code source, préparer le dossier de l'extension pour la compilation avec phpize, configurer l'environnement pour la compilation, compilation les sources dans un fichier .so et déplacer ce fichier dans le fichier dans le Dossier d'extensions de l'installation PHP actuelle.
  • Après l'installation, les extensions PHP doivent être activées en les ajoutant au fichier php.ini ou en créant un fichier INI séparé pour chaque extension dans un dossier qui est inclus automatiquement après le chargement PHP.ini.
  • Pour supprimer les extensions, vous pouvez utiliser l'outil PHP5DISMOD, supprimer les liens symboliques manuellement ou supprimer les lignes d'activation des fichiers php.ini.

Démarrage du VM

Si vous ne l'avez pas déjà fait, lisez la publication de propriété familiale liée ci-dessus et faites-la opération. Immédiatement après avoir exécuté une nouvelle boîte de propriété familiale, vous devriez être en mesure de le faire:

Comment installer des extensions de PHP à partir de la source

C'est parfaitement bien, cela se produit parce que le dossier qui est monté par défaut ne contient en fait aucun fichier. Maintenant, SSH vagabond dans la machine virtuelle et exécutez les commandes suivantes:

<span>cd Code
</span><span>git clone https://github.com/Swader/publicinfo</span>

Cela crée un fichier d'informations PHP valide dans le chemin d'accès sur lequel Homestead est défini par défaut. Rafraîchir l'URL produira désormais un écran phpinfo:

Comment installer des extensions de PHP à partir de la source

Préparer l'environnement

Pour construire des extensions à partir de la source, nous avons besoin des outils PHP Dev installés sur notre machine, ainsi qu'un compilateur qui peut produire le fichier d'extension. Voici comment vous installez ces conditions préalables sur divers systèmes d'exploitation:

ubuntu

<span>cd Code
</span><span>git clone https://github.com/Swader/publicinfo</span>

fedora

<span>sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev</span>

rhel

<span>sudo yum install php-devel php-mysqlnd gcc libtool</span>

SUSE

<span>sudo yum install php-devel php-mysql gcc libtool</span>

Si vous utilisez la propriété la plus récente, tous ces outils seront déjà installés pour vous. Avec tout préparé, commençons à installer des extensions.

Installation des extensions

Il existe deux types d'extensions que vous pouvez installer: groupés avec PHP mais pas installés par défaut, et les extensions de tiers. Les extensions de tiers comme Phalcon facilitent généralement le processus d'installation en fournissant des raccourcis, car ils n'ont pas à se conformer à certaines traditions que les extensions de PHP sont liées par.

Tout d'abord, passons dans le dossier de la maison sur le VM: CD ~. Là-bas, faites un dossier de téléchargements et CD dedans. Lors de l'installation d'une extension groupée, vous aurez besoin du code source de PHP sur votre machine, de préférence une correspondant à votre version actuelle. La version Homestead utilise est 5.5.12, donc je vais télécharger celui-là:

<span>yast2 -i php5-pear php5-devel php5-mysql gcc</span>

J'utilise le miroir belge ci-dessus, n'hésitez pas à utiliser celui de l'un ou l'autre des archives de téléchargement.

Pour voir les sources de toutes les extensions groupées, accédez au dossier EXT dans le dossier de code source PHP désarchivé et faites une liste avec LS.

Comment installer des extensions de PHP à partir de la source

Installation d'une extension groupée

Tout d'abord, nous installerons l'extension PHP-INTL si vous ne l'avez pas déjà installée. Si vous le faites, c'est bien - la procédure d'installation que vous verrez ci-dessous est identique pour chaque extension PHP groupée. L'extension INTL est pour l'internationalisation - Lisez la suite ici si vous êtes intéressé.

Voyant que l'extension INTL a besoin de la bibliothèque des soins intensifs comme condition préalable (comme indiqué dans les exigences), installons cela en premier.

<span>wget http://be2.php.net/distributions/php-5.5.12.tar.bz2
</span><span>tar xvjf php-5.5.12.tar.bz2
</span><span>cd php-5.5.12</span>

Sous d'autres distributions, les instructions d'installation peuvent varier. Il est préférable que vous vous référez au site de l'USI ou aux documents de votre distribution individuelle pour cette étape.

Une fois les soins intensifs installés, effectuez les éléments suivants dans le dossier EXT:

<span>sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg</span>

Expliquons ce qui se passe.

  • phpize prépare le dossier de l'extension pour la complicité. Il vous permet de faire les commandes suivantes en créant un fichier de configuration, et en faisant essentiellement le dossier de l'extension "pense" qu'il est en php lui-même. La procédure après Phpize est, en fait, identique à ce que vous feriez lors de l'installation de PHP à partir de la source - uniquement dans ce cas, un simple fragment de PHP est compilé et préparé pour une utilisation avec le php.
  • déjà compilé et installé
  • ./ configure --enable-Intl configure l'environnement pour la compilation. Il prépare tout ce que le compilateur devra élaborer le fichier intl.so que nous utiliserons. Le drapeau Activer-INTL est nécessaire même si nous sommes dans le dossier INTL parce que le dossier, efficacement, pense que c'est est php, et nous devons l'aider à vivre cette illusion. Cette commande le dit: "OK, vous êtes le code source de PHP. Maintenant, compilez et installez avec l'extension INTL. », Alors qu'en fait, c'est la seule partie qui peut
  • être installée à partir de ce dossier.
  • Make compilera les sources en intl.o, en plaçant le fichier dans le dossier même dans lequel vous vous trouvez actuellement, sous le sous-dossier des modules.
  • sudo marquer l'installation déplacera ce fichier dans le dossier d'extensions de l'installation PHP actuel.

Tout ce que nous devons faire maintenant est d'activer l'extension en faisant consommer php.ini. Nous le ferons plus tard, compilons d'abord une extension tierce.

Installation d'une extension tierce

Nous installerons Mongo comme extension tiers. Il existe des distributions binaires disponibles pour Mongo qui simplifient l'installation, mais faisons-le manuellement pour l'éducation. Nous supposerons que vous avez déjà installé le Mongo réel et que vous vous concentrez donc uniquement sur l'extension PHP. Si vous n'avez pas installé Mongo, reportez-vous à leurs documents d'installation.
<span>cd Code
</span><span>git clone https://github.com/Swader/publicinfo</span>

Comment installer des extensions de PHP à partir de la source

Cela a construit notre fichier mongo.so et l'a placé dans le dossier Extensions de notre installation PHP. Nous allons l'activer dans la section suivante.

Activation et test

Pour voir si les fichiers .so compilés sont en effet dans notre dossier d'extensions PHP, énumérez son contenu:

Comment installer des extensions de PHP à partir de la source

Comme vous pouvez le voir, ils sont mis en évidence en vert vif.

pour leur permettre, nous devons en parler à php.ini. Il existe plusieurs façons de le faire:
  1. Vous pouvez mettre les lignes Extension = Mongo.so et Extension = intl.so directement dans php.ini. Cela fonctionne et est une approche parfaitement valide dans la plupart des cas.
  2. Vous pouvez créer un fichier INI séparé pour chacun de ceux-ci, les mettre dans un dossier qui est inclus automatiquement après le chargé de php.ini et de maintenir la séparation et l'isolement de php.ini de cette façon. Cette approche est plus saine, bien que plus difficile à accomplir.
  3. Vous pouvez combiner 2) et les outils par défaut pour activer les mods PHP. Homestead utilise cette approche, tout comme nous.
<span>cd Code
</span><span>git clone https://github.com/Swader/publicinfo</span>

Ce dossier est le référentiel de tous ces fichiers INI individuels. Créez deux nouveaux fichiers ici:

<span>sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev</span>

Ces commandes ont créé deux nouveaux fichiers INI, chacun pour l'une des extensions que nous avons déjà construites. Comme ils se trouvent maintenant dans le dossier MODS-disponible, nous pouvons utiliser l'outil de ligne de commande PHP5enMod (abréviation pour PHP Activer Mod).

<span>sudo yum install php-devel php-mysqlnd gcc libtool</span>

Remarque: si vous n'avez pas l'outil PHP5EnMod, symboliser les fichiers INI dans le dossier Conf.d de divers runtimes PHP fera l'affaire:

<span>sudo yum install php-devel php-mysql gcc libtool</span>

La raison pour laquelle il y a quatre entrées est que nous avons la version de la ligne de commande de PHP et la version FPM de PHP. Chacun utilise son propre fichier php.ini, et chacun charge son propre dossier Conf.d pour les extensions - par conséquent, nous devons ajouter les deux extensions aux deux versions PHP si nous voulons les extensions disponibles. Utilisez cette approche uniquement si vous n'avez pas l'outil PHP5enMod.

Enfin, redémarrons Nginx et PHP-FPM pour charger ces modifications.

<span>yast2 -i php5-pear php5-devel php5-mysql gcc</span>

Pour voir si nous les avons installés, actualisez respectivement l'écran phpinfo et recherchez respectivement Mongo et Intl.

Comment installer des extensions de PHP à partir de la source

Succès!

Retrait des extensions

Pour supprimer les extensions, il n'est pas nécessaire de supprimer des fichiers réels, sauf si vous êtes vraiment bas dans l'espace. Vous pouvez le faire de trois manières:

  1. Exécutez PHP5Dismod si vous avez l'outil disponible. C'est l'opposé de l'outil PHP5enMod mentionné ci-dessus. Les fichiers .so resteront en place et les fichiers INI resteront en mods disponibles, ils ne se chargeront tout simplement pas car leurs liens symboliques seront supprimés du FPM et des dossiers CLI Conf.d.
  2. Retirez manuellement les liens symboliques. Par exemple sudo rm /etc/php5/cli/conf.d/mongo.ini
  3. Si vous avez activé les extensions en les mettant directement dans les fichiers php.ini, supprimez ces lignes des fichiers php.ini, ou mieux encore, commentez-les afin qu'ils restent accessibles pour une utilisation ultérieure si vous changez d'avis.

Conclusion

Comme vous pouvez le voir, l'installation d'extensions de Source est extrêmement simple, même s'il n'y a pas d'instructions précises et même si l'extension n'est pas prise en charge par le référentiel officiel d'un système d'exploitation. La prochaine fois que vous devez ajouter une extension dans votre installation PHP sur un système * Nix (ce didacticiel s'applique également à OS X), reportez-vous à ce message pour un rafraîchissement.

Veuillez laisser vos commentaires ci-dessous, et faites-moi savoir si vous êtes confus par une extension spécifique et que vous souhaitez aider à l'installer.

Questions fréquemment posées (FAQ) sur l'installation des extensions de PHP à partir de la source

Quelles sont les conditions préalables pour installer des extensions de PHP à partir de la source?

Avant de commencer à installer des extensions de PHP à partir de la source, vous devez avoir quelques choses en place. Tout d'abord, vous devez installer PHP sur votre système. Vous devez également configurer l'environnement de développement PHP, qui comprend des outils comme un compilateur et faire. De plus, vous devez avoir le code source PHP disponible, car vous construirez l'extension directement à partir de ce code. Enfin, vous devez avoir le code source de l'extension. Cela peut généralement être téléchargé à partir du site officiel de l'extension ou à partir d'un référentiel comme PECL.

Comment puis-je vérifier si une extension PHP est installée correctement?

Après l'installation d'une extension PHP, vous pouvez vérifier son installation en utilisant la fonction phpinfo (). Cette fonction fournit de nombreuses informations sur votre installation PHP, y compris la liste des extensions installées. Pour l'utiliser, créez un nouveau fichier PHP dans la racine du document de votre serveur Web, ajoutez un appel à phpinfo (), puis affichez ce fichier dans votre navigateur Web. Les extensions installées sont répertoriées dans la section «PHP Core».

Puis-je installer des extensions PHP sur un système Windows?

Oui, vous pouvez installer des extensions de PHP sur un système Windows. Cependant, le processus est légèrement différent par rapport à un système de type Unix. Au lieu de compiler l'extension à partir de la source, vous téléchargeriez généralement un fichier DLL précompilé et l'ajouteriez à votre installation PHP. Le site Web php.net fournit des instructions détaillées sur la façon de procéder.

Que dois-je faire si je rencontre des erreurs pendant le processus d'installation?

Si vous rencontrez des erreurs pendant le processus d'installation, le premier L'étape consiste à lire soigneusement le message d'erreur. Il contient souvent des indices sur ce qui n'a pas fonctionné. Les problèmes communs incluent les dépendances manquantes, les options de configuration incorrectes et les problèmes avec le code source PHP. Si vous ne pouvez pas résoudre le problème par vous-même, envisagez de demander de l'aide de la communauté PHP. Il existe de nombreux forums et listes de diffusion où vous pouvez demander de l'aide.

Comment puis-je mettre à jour une extension PHP?

La mise à jour d'une extension PHP implique généralement le téléchargement de la dernière version du code source de l'extension et puis répéter le processus d'installation. Cependant, les étapes exactes peuvent varier en fonction de l'extension. C'est une bonne idée de vérifier la documentation officielle de l'extension pour des instructions de mise à jour spécifiques.

Puis-je installer plusieurs extensions de PHP à la fois?

Oui, il est possible d'installer plusieurs extensions de PHP à la fois. Cela peut être fait en spécifiant plusieurs extensions dans la commande Configurer. Cependant, gardez à l'esprit que chaque extension peut avoir son propre ensemble de dépendances et d'options de configuration.

Comment puis-je désinstaller une extension PHP?

La désinstallation d'une extension PHP consiste à supprimer la configuration de l'extension de votre fichier php.ini, puis de redémarrer votre serveur Web. Si l'extension a été installée en tant que module partagé, vous devrez peut-être également supprimer le fichier .so ou .dll du module.

Qu'est-ce que le référentiel PECL?

Le référentiel PECL est une collection de collection de Extensions PHP qui sont distribuées sous forme de code source. Ces extensions peuvent être installées à l'aide de la commande PECL, qui automatise le processus de téléchargement, de compilation et d'installation d'extensions.

Puis-je installer des extensions PHP sans accès racine?

Oui, il est possible d'installer Extensions PHP sans accès racine. Cela peut être fait en installant PHP dans votre répertoire domestique, puis en y installant les extensions. Cependant, cette approche nécessite des connaissances plus techniques et peut ne pas convenir à tous les utilisateurs.

Quelles sont les extensions de PHP courantes et que font-ils?

Il existe de nombreuses extensions de PHP disponibles, chacune fournissant chacune fonctionnalité supplémentaire au langage PHP. Certaines extensions courantes incluent MySQLI pour interagir avec les bases de données MySQL, GD pour la création et la manipulation des fichiers d'image, et boucler pour faire des demandes HTTP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn