2016-10-26 3 views
0

J'ai 2 versions de php installées sur mon ubuntu php5.6 et php7. 5.6 est défini comme version active. Maintenant, j'essaie d'installer GPG en utilisant la ligne de code ci-dessous, et il l'installe sous le répertoire /etc/php/7.0.installer GNU PG (GPG) pour php5.6 sur ubuntu 16.04

sudo apt-get install php-gnupg 

Comment l'installer pour php5.6?

+1

La question est: comment avez-vous réussi à installer les deux versions de php en parallèle? Cela ne peut évidemment pas se produire en utilisant les paquets fournis. Donc, je vous suggère de suivre la même approche que vous avez fait à l'époque pour installer cette extension maintenant. – arkascha

+0

Ubuntu 16.04 est livré avec php7. J'ai installé 5.6 plus tard. Évidemment, nous pouvons sélectionner n'importe quelle version de php à utiliser. – xxxx

+0

Vous pouvez en effet basculer entre les versions en utilisant la gestion normale des paquets. Mais vous ne pouvez pas installer des versions différentes en parallèle. C'est parce que les paquets sont en conflit. La question demeure donc: comment avez-vous installé cette deuxième version de php? – arkascha

Répondre

0

Extension dir php 5.6 est /usr/lib/php/20131226 et l'extension dir pour php 7.0 est /usr/lib/php/20151012 que cette commande affiche:

php -r "print phpinfo();" | grep "extension_dir" 

Pecl installe GnuPG dans /usr/lib/php/20131226/gnupg.so car le PECL a été installé lorsque PHP 5.6 est activé

pecl list-files gnupg 

Conclusion: PHP 7.0 utilise un répertoire d'extension différent de celui où gnupg est installé.

Essayez d'abord ce qui ne fonctionne pas: Créer un lien symbolique pour gnup.so dans le répertoire d'extension php 7.0 qui pointe vers l'intérieur gnup.so php 5,6

sudo ln -s /usr/lib/php/20131226/gnupg.so /usr/lib/php/20151012/gnupg.so 

Résultats dans:

Warning: PHP Startup: gnupg: Unable to initialize module 
Module compiled with module API=20131226 
PHP compiled with module API=20151012 

Deuxième essai qui ne fonctionnait pas aussi:

  1. Désinstaller extension PECL: sudo pecl uninstall gnupg
  2. Activer php version 7.0
  3. Installer GnuPG nouveau: sudo pecl install gnupg

Donne même erreur de compilation.

solution finale:

installer une version compilée du GnuPG qui fonctionne avec php 7.0: voir php docs here

Vérifiez si GnuPG est installé

php -r 'var_dump(function_exists("gnupg_decrypt"));';