pecl installe pour la précédente version de php
J'ai mis à jour mon MacBook pour Mavericks et ruiné mon environnement de développement. Le problème que j'ai maintenant c'est que ma poire/pecl essaie toujours d'installer pour ma précédente (5.3) de la version de PHP au lieu de la version 5.4.
Version de PHP:
$ php -v
PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
Poire
$ pear version
PEAR Version: 1.9.4
PHP Version: 5.4.17
Zend Engine Version: 2.4.0
Running on: Darwin MBP-retina.local 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64
Si j'installe l'apc avec
$ sudo pecl install apc
downloading APC-3.1.13.tgz ...
Starting to download APC-3.1.13.tgz (171,591 bytes)
.....................................done: 171,591 bytes
55 source files, building
running: phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
...
Build process completed successfully
Installing '/usr/local/Cellar/php53/5.3.26/include/php/ext/apc/apc_serializer.h'
Installing '/usr/local/Cellar/php53/5.3.26/lib/php/extensions/no-debug-non-zts-20090626/apc.so'
install ok: channel://pecl.php.net/APC-3.1.13
Extension apc enabled in php.ini
Et activer le module apc dans mon php.ini de php -v devient:
$ php -v
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20100525/apc.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20100525/apc.so, 9): image not found in Unknown on line 0
PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
Donc pecl installe mon apc extension dans /usr/local/Cellar/php53/5.3.26/lib/php/extensions/no-debug-non-zts-20090626
et php s'attend à ce qu'il en /usr/lib/php/extensions/no-debug-non-zts-20100525/
.
Simplement en faisant un lien symbolique donne l'erreur suivante:
$ php -v
PHP Warning: PHP Startup: apc: Unable to initialize module
Module compiled with module API=20090626
PHP compiled with module API=20100525
These options need to match
in Unknown on line 0
PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
Ce n'est donc pas une solution.
Quelqu'un peut me pointer dans la bonne direction? Je n'ai pas vraiment d'idée de ce qui se passe ici.
Vous devez vous connecter pour publier un commentaire.
Dans mon cas, j'ai été de tenter d'installer Gearman.
pecl install gearman de l'installer correctement.
php -i
serait montrer:Encore pecl et de l'installer à l'aide de:
Après avoir changé mes paramètres de configuration à utiliser:
La Première Correction
J'ai remarqué que je voudrais quand même
Vous pouvez résoudre ce problème en utilisant le paramètre de configuration:
Correctif Supplémentaire
Pourquoi était-ce un problème?
Pour moi, j'ai eu ce problème parce que j'ai ajouté une coutume PPA et réinstallé PHP. Cela signifiait que ma précédente installation de php5-dev a été hors de la synchronisation.
Vous si vous vous trouvez dans la même situation, vous pourriez juste voulez exécuter..
Alternativement, vous pouvez télécharger la source et exécutez la commande phpize.
sudo pear config-set php_ini /etc/php.ini
-- pecl était apparemment à l'aide de la poire de la config de manière invisible.La solution était assez simple. J'ai dû apporter des modifications à mon pecl config. Il s'est avéré que ces deux commande a fait le tour:
pecl utilisé la mauvaise commande phpize. Il y avait deux versions de la commande phpize. La même chose vaut pour mon php.fichier ini.
Aucune des autres réponses (encore), semble avoir de multiples "co-installable" les versions de PHP en voulant construire une extension donnée de tout ce qui est installé sur les versions de PHP.
Pour illustrer le scénario dans lequel je me trouve (je suis en utilisant le Ondrej Surý PHP Ppa pour Ubuntu 16.04 LTS):
pecl install extension-name
fait le travail pour PHP 7.1, mais pas les autres.L'autre anwsers indiquent que, même s'il est possible de désinstaller/réinstaller
php*-dev
, je préfère pas, compte tenu de l'intentionnel, co-installé sur les versions de PHP sur le système.Une solution est de construire l'extension pour chaque version présente sur le système.
Cet extrait illustre la création avec PHP 5.6, mais j'ai fait le même pour la version 7.0 et 7.1 et les étapes sont les mêmes.
Cet exemple illustre le clonage de l'extension à partir d'un dépôt Git, mais on peut utiliser n'importe quelle source directory.
(
#
indique que vous devez être root ou utilisezsudo
)Mieux pour réinstaller la commande phpize extensions comme il sera utilisé par PECL et ne pas faire des hacks.
Faire ensuite (php 5.5 => php 5.6 exemple) :
(vous pouvez changer de 5,6 à la version dont vous avez besoin)
Alors:
Il y a une façon de passer de PHP-Version sur Ubuntu:
Source: https://superuser.com/a/1100911/371795