Ubuntu 升级至PHP7.0
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php7.0-mysql php7.0-curl php7.0-gd php7.0-json php7.0-mcrypt php7.0-opcache php7.0-xml libapache2-mod-php7.0
- (nginx)
sudo apt-get install php7.0-fpm
安装时遇到了这个错误:
>sudo apt-get install php7.0
正在读取软件包列表... 有错误!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/cn.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-en
E: 无法解析或打开软件包的列表或是状态文件。
>sudo rm /var/lib/apt/lists/* -vf
后再执行,出现这个问题:
sudo apt-get install php7.0
[sudo] password for skys215:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
php7.0 : 冲突: php5 (< 5.6.16+dfsg-4~) 但是 5.5.9+dfsg-1ubuntu4.14 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
使用命令
sudo apt-get -y purge php.*
删除所有以php开头的包即可。(注意该操作也会移除phpmyadmin,后面再安装一遍就好了)
在我的电脑会移除
libapache2-mod-php5* php-gettext* php-pear* php-seclib* php-tcpdf* php5-cli*
php5-common* php5-curl* php5-dev* php5-fpm* php5-gd* php5-imagick*
php5-intl* php5-json* php5-mcrypt* php5-mysql* php5-readline* php5-sqlite*
phpmyadmin* pkg-php-tools*
这些包。如果安装7.0后出现包缺失的问题,装回去就好了。