Installer les paquets PECL sur Ubuntu

31

Je l'ai essayé 100 fois je suis vraiment nouveau sur Ubuntu et j'ai fini par un tas d'erreurs que je ne comprends même pas que quelqu'un peut m'aider s'il vous plaît ??

Voici ce que j'ai fait:

  1. J'ai installé PHP
  2. J'ai installé libcurl puis php5-dev
  3. J'ai essayé d'installer l'extension PECL et il est dit PHPIZE not found.
posée maniteja 10.01.2014 - 10:05
la source

3 réponses

40

Premièrement, vous devrez installer PEAR via apt-get pour obtenir le paquetage nécessaire et le système de distribution utilisé à la fois par PEAR et PECL . À partir d'une invite du shell, entrez:

sudo apt-get install php-pear

Vous serez invité à confirmer l'installation. Appuyez simplement sur "y" et entrez. Si tout se passe bien, vous devriez le voir télécharger et installer le paquet php-pear.

Maintenant, vous devrez installer le paquet php5-dev pour obtenir les fichiers sources PHP5 nécessaires à la compilation de modules supplémentaires. Entrez les informations suivantes à partir d'une invite du shell:

sudo apt-get install php5-dev

Si vous n’installez pas le paquet php5-dev et que vous essayez d’installer une extension PECL en utilisant "pear install", vous obtiendrez l’erreur suivante:

sh: phpize: not found
ERROR: 'phpize’ failed

L'extension PECL_HTTP nécessite l'installation d'un package de dépendance supplémentaire. Vous pouvez probablement sauter ceci pour d'autres extensions:

sudo apt-get install libcurl3-openssl-dev

Maintenant, nous sommes enfin prêts à installer l'extension. A l'invite du shell, entrez suivant, mais remplacez "pecl_http" par le nom de l'extension PECL que vous installez:

sudo pecl install pecl_http

Le programme d’installation peut vous demander des options spécifiques pour l’extension que vous installez. Vous pouvez probablement simplement entrer une ou plusieurs fois pour accepter toutes les valeurs par défaut, sauf si vous souhaitez définir des options spécifiques pour votre implémentation. Si tout se passe bien, le module devrait télécharger, compiler et installer.

Une fois l’installation terminée, il vous sera probablement demandé d’ajouter une ligne "extension=" à votre fichier php.ini. Ouvrez le fichier php.ini dans votre éditeur de texte préféré et ajoutez la ligne sous la section intitulée "Extensions dynamiques". Sur Ubuntu, le fichier php.ini semble se trouver dans le dossier / etc / php5 / apache2:

sudo nano /etc/php5/apache2/php.ini

Dans cet exemple, l’installation de l’extension pecl_http m’a demandé d’ajouter "extension = http.so". Maintenant que le fichier php.ini a été mis à jour, Apache devra être redémarré pour que la nouvelle extension soit chargée:

sudo /etc/init.d/apache2 restart 

source

    
réponse donnée Maythux 10.01.2014 - 10:43
la source
4

En plus de la réponse de @ Ask, je devais aussi faire:

sudo apt-get install libpcre3-dev

avant d'exécuter pecl install pecl_http car je recevais cette erreur à propos de pcre.h :

  

Erreur irrécupérable: pcre.h: Pas de tel fichier ou répertoire   compilation terminée.

Par ailleurs, au lieu d’éditer le fichier php.ini , j'ai créé un nouveau fichier appelé pecl-http.ini dans le sous-répertoire conf.d où se trouvait le fichier php.ini (sur ubuntu /etc/php5/apache2/conf.d )

Et je devais ajouter trois lignes:

extension=raphf.so
extension=propro.so
extension=http.so

Enfin, puisque cette version installée 2.0.6 je ne pouvais pas utiliser la fonction http_get_request_headers mais que je devais plutôt utiliser la version namespaced, \http\Env::getRequestHeader() voir plus de détails ici

ps: n'oubliez pas de redémarrer apache lorsque vous avez terminé ( service apache2 restart )

    
réponse donnée cwd 05.07.2014 - 03:31
la source
1

En plus des réponses de Maythux et de cwd, vous ne souhaiterez peut-être pas éditer votre fichier php.ini car ces modifications peuvent être perdues lors des mises à jour.

Debian (et donc Ubuntu) gère les modules php de la même manière que les modules apache. Regardez /etc/php5 , vous trouverez des répertoires comme celui-ci:

apache2/
cli/
mods-available/

Lorsque vous consultez mods-available , vous voyez plusieurs fichiers comme:

curl.ini
gd.ini
json.ini
mysql.ini
…

Pour activer / désactiver ces mods disponibles pour toutes les API (apache, cli, cgi), vous pouvez simplement utiliser les commandes php5enmod ou php5dismod comme ceci:

$ sudo php5enmod curl

respectivement

$ sudo php5dismod curl

Ceux-ci vont créer (ou supprimer) des liens symboliques vers le fichier de configuration du module dans apache2/conf.d/ et cli/conf.d/ .

Vous pouvez également spécifier le sapi pour activer / désactiver le mod pour (apache dans ce cas):

$ sudo php5enmod -s apache2

pecl install peut ne pas créer un fichier de configuration pour raphf (et les autres modules installés avec lui), mais vous pouvez le créer vous-même:

$ sudo touch /etc/php5/mods-available/raphf.ini

Ensuite, écrivez dans les lignes suivantes:

; configuration for php raphf module
; priority=20
extension=raphf.so

La priorité par défaut est 20. Cela peut dépendre du type de module que vous devez utiliser. Pour raphf 20 semble bien. ( Mettre à jour : si vous recherchez pecl_http, à partir de la version 2, il doit être chargé après rapfh et propro , définissez donc la priorité dans mods-available/http.ini à 30 . )

Avec cela, vous pouvez activer le module:

$ sudo php5enmod raphf

(Remarque: ma réponse dépend d’Ubuntu 14.04 mais pourrait fonctionner de la même manière pour la version 13.04, voir lien )

    
réponse donnée David 04.01.2016 - 11:16
la source

Lire d'autres questions sur les étiquettes