I have installed both php5.6 and php7.0 from PPA on Ubuntu according to this manual
http://lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
But I didn't get how to install extensions using pecl
for php5.6 or php7.0.
For example I have already installed version of libevent
or amqp
in php5.6.
Now when I type pecl install libevent
and my active php version is php7.0 (using update-alternatives --set php /usr/bin/php7.0),
peclreturns message that
libevent` already installed.
But it was installed only for php5.6 (when this version was active) and now I want to do it for php7.0.
Which commands could help me?
UPD
I have found this commands for switch pecl to php7.0 and packet them to executable bash scripts:
#!/bin/bash sudo update-alternatives --set php /usr/bin/php7.0 sudo pecl config-set php_ini /etc/php/7.0/cli/php.ini sudo pecl config-set ext_dir /usr/lib/php/20151012/ sudo pecl config-set bin_dir /usr/bin/ sudo pecl config-set php_bin /usr/bin/php7.0 sudo pecl config-set php_suffix 7.0
and for php5.6
#!/bin/bash sudo update-alternatives --set php /usr/bin/php5.6 sudo pecl config-set php_ini /etc/php/5.6/cli/php.ini sudo pecl config-set ext_dir /usr/lib/php/20131226/ sudo pecl config-set bin_dir /usr/bin/ sudo pecl config-set php_bin /usr/bin/php5.6 sudo pecl config-set php_suffix 5.6
But they are not help, pecl still gives me list
of already installed extensions to php5.6, even if I switched to php7.
pecl list Installed packages, channel pecl.php.net: ========================================= Package Version State amqp 1.7.1 stable libevent 0.1.0 beta stats 1.0.3 stable
It should be empty for php7.0 !
How to solve the problem?
UPD
For amqp I have just installed php-amqp package without using pecl.
apt-get install php-amqp
And libevent still not exists for php7. But I hadn't found a way to switch pecl installation between 5.6 and 7 version, so question is still open.
Add a PHP Repository So you'll need to add the PHP repository in your system to install the multiple PHP versions. Once the repository is up-to-date, you can proceed to install multiple PHP versions.
When pecl throws error is already installed and is the same as the released version
Switch to required php, php-config, phpize versions before installing from pecl
Just run it installation with force flag
sudo pecl install -f <package-name>
Here's what worked best for me when trying to script this (in case anyone else comes across this like I did):
$ pecl -d php_suffix=5.6 install <package> $ pecl uninstall -r <package> $ pecl -d php_suffix=7.0 install <package> $ pecl uninstall -r <package> $ pecl -d php_suffix=7.1 install <package> $ pecl uninstall -r <package>
The -d php_suffix=<version>
piece allows you to set config values at run time vs pre-setting them with pecl config-set
. The uninstall -r
bit does not actually uninstall it (from the docs):
vagrant@homestead:~$ pecl help uninstall pecl uninstall [options] [channel/]<package> ... Uninstalls one or more PEAR packages. More than one package may be specified at once. Prefix with channel name to uninstall from a channel not in your default channel (pecl.php.net) Options: ... -r, --register-only do not remove files, only register the packages as not installed ...
The uninstall line is necessary otherwise installing it will remove any previously installed version, even if it was for a different PHP version (ex: Installing an extension for PHP 7.0 would remove the 5.6 version if the package was still registered as installed).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With