添加PPA
PHP 5.6和PHP 7.0软件包来自第三方PPA,而Canonical的官方Ubuntu存储库未提供这些软件包。我在这里推荐的PPA来自OndřejSurý,他为Debian打包了PHP(然后由Ubuntu使用),因此虽然它不是官方存储库,但他并不是完全随机的!PPA本身在
这里
要将PPA添加到您的设置中:
sudo add-apt-repository ppa:ondrej/php
然后,我们还将希望从新的PPA中获取有关所提供内容的信息,然后运行:
sudo apt-get update
安装新的PHP版本
我已经安装了一些php5软件包,但没有卸载任何东西,当我要求安装新版本时,我让apt弄清楚它想要做什么:
sudo apt-get install php5.6 php7.0
这导致了许多来自于适当性的抱怨和许多冲突。建议的第一个解决方案是删除所有现有的php5软件包,以便可以安装PHP 5.6-所以我刚刚接受了第一个建议。
我使用apache,所以此设置使apache既有可用的php5.6和php7.0模块,又有实际加载的php5.6模块。
除了PHP本身,PHP的所有扩展和其他工具都在这两个版本的PHP中都存在,因此很容易添加所需的模块。我对这项工作的出色表现印象非常深刻。
配置和切换版本
现在,您已经在系统上安装了两个完全独立的PHP版本,下面让我们看一下所有组件的去向!
该配置文件都在/etc/php/5.6
,并/etc/php/7.0
分别-里面在这里你可以配置哪些扩展被装载,设置INI设置,以及其他一切在隔离每个版本。
我是一个Apache用户,正如我提到的,两个模块都可用。因此,从一个切换到另一个我需要做:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
对于Nginx用户来说,更改几乎一样容易,Digital Ocean对此有很好的文档(他们确实有出色的文档!),因此请查看他们的指南:https :
//www.digitalocean.com/community/tutorials/how-to- upgrade-to-php-7-on-ubuntu-14-04,
因为其中包括有关重新配置nginx以使用另一版本的PHP的部分。
从命令行,我可以同时使用php5.6和php7.0作为命令。我还有一个php命令-在/ etc / alternatives中查看它是否符号链接到特定版本的PHP cli *。您还可以通过运行来快速检查您正在使用哪个php -v
。
*更具体地说,运行哪个php以查看所使用的PHP版本-但这可能指向/usr/bin/php
,这对我来说本身就是该/etc/alternatives/php
命令的符号链接。
使用扩展
该PPA随附了常用的php-pear软件包,该软件包为两个版本的PHP提供了pecl命令,因此可以通过常规方式安装可通过PECL获得的任何扩展。您还将需要相关的标头,因此应安装php5.6-dev或php7.0-dev。
当pecl安装完成时,您将获得一条将* .so文件添加到php.ini的说明;实际上,最好的方法是查看其中的内容/etc/php/mods-available
。这里已经有一些模块,每个模块都在自己的文件中,以扩展名命名,并以.ini结尾。您可以复制一个用作模板,也可以创建自己的模板,并将扩展的所有相关配置放入其中(至少需要extension=[extensionName].so
)。
一旦新的扩展程序在mods中可用,请启用它,然后通过以下操作对其进行检查:
sudo phpenmod extension
php -m
这将在正确的位置创建符号链接,以供当前版本的PHP加载此模块,并且您应该在中显示的模块列表中看到它php -m
。专家提示:如果在输出中看不到它,请一直滚动到输出的顶部,看看那里是否有任何有用的错误消息。