14.04从ppa:ondrej / php5-5.6干净地升级到ppa:ondrej / php
我今天经历了通常的服务器软件包升级,发现ppa:ondrej/php5-5.6
已被折旧,我们现在必须升级到ppa:ondrej/php
。
基本提供的说明是运行:
sudo add-apt-repository ppa:ondrej/php
然后:
sudo apt-get update sudo apt-get upgrade --show-upgraded
看看新的存储库,名称似乎没有完全排列,所以我想我需要做一些apt-get安装来安装所有正确的软件包。 它似乎也将安装所有PHP版本的子包(即php-gd),也可能安装php 5.5和php 7.0( https://stackoverflow.com/questions/37197539/an-issue-after-ppaondrej- php5-deprecation )
所以我的问题是,考虑到这是一个生产服务器,“切换”ppas和清理现有软件包的最简洁方法是什么? 我是否应该尝试删除先前PPA中安装的所有软件包和/或从我的系统中删除PPA?
它还没有出现在PPA的主页面中,但升级消息在2016年6月被弃用,所以重建我们的服务器映像不是一个很长的时间表。
我找到了这个页面,它提供了关于切换出apache使用的PHP版本的说明: https : //dzone.com/articles/php-70-and-56-on-ubuntu
旧的php5-*
软件包可与新的phpX.Y-*
方案共同安装,因此您需要做的第一件事就是安装并启用新软件包:
Apache 2.4
您需要安装新的libapache2-mod-phpX.Y
软件包,然后禁用旧的php5,并为PHP 5.6启用新的版本化模块,fe:
sudo apt-get install libapache2-mod-php5.6 sudo a2dismod php5 sudo a2enmod php5.6
NGINX / Apache 2.4与PHP-FPM
这更简单,只需安装phpX.Y-fpm
并将web服务器配置中的套接字路径更改为/run/php/phpX.Y-fpm.sock
并复制旧配置,PHP for PHP 5.6:
sudo apt-get install php5.6-fpm # now change the socket path in your nginx/apache2 configuration # and restart the server
如果已定义更多FPM池,则需要将旧配置复制到新路径,同样适用于PHP 5.6:
# keep the new www.conf sudo mv /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/www-5.6.conf # copy the old configuration to the new path sudo cp /etc/php5/fpm/pool.d/* /etc/php/5.6/fpm/pool.d/ sudo update-rc.d php5-fpm disable # or uninstall php5-fpm package # restart PHP 5.6 FPM to read the new configuration sudo service php5.6-fpm restart
现在,如果你想删除旧的软件包,你可能会遇到一些问题,因为可能有需要旧的php5 *名称的软件包,你可能想要添加ppa:ondrej/php5-compat
,提供映射php5-
薄层兼容包php5-
主要php5 *包的php5-
到php5.6-
:
sudo add-apt-repository ppa:ondrej/php5-compat sudo apt-get update sudo apt-get dist-upgrade
绝对在非生产环境中首先尝试这个! 好的一面是,这使得/etc/php5
的旧配置保持不变,因此您可以迁移旧设置。
在更新主PHP包之后,您可能想要查找其余的php5-*
包并安装它们的等价物,例如
apt-get install php-apcu # for php5-apcu apt-get install php-memcached # for php5-memcached
我将准备一个php5-compat repo的更新,它会自动生成这个映射。
可以在DEB.SURY.ORG PPA Wikis中找到更新的文本。