背景
升级 Ubuntu 16.04 都一年了,新版的仓库自带的 PHP 是 7+;而今天突然要对某个老项目进行维护,发现 PHP 版本太高,某些函数已经被取消了;所以查了一下怎么快捷的切换 PHP 版本,这里做个笔记。
详细步骤
安装 PHP 5.6
默认情况下,安装的 PHP 是 7+, 使用 sudo apt install PHP5
再按 Tab
键是没有任何提示的,因为仓库里没有低版本的 PHP,所以第一步是安装一个低版本的 PHP
# 查看已经安装的 PHP 包 dpkg -l | grep PHP| awk '{print $2}' |tr "\n" " " # 添加 PHP PPA sudo add-apt-repository ppa:ondrej/PHP # 更新缓存 sudo apt-get update # 安装 PHP5.6 sudo apt-get install PHP5.6-mbstring PHP5.6-mcrypt PHP5.6-MysqL PHP5.6-xml libapache2-mod-PHP5.6@H_403_15@参考:How can I downgrade from PHP 7 to PHP 5.6 on Ubuntu 16.04
切换版本
一般情况下,只需要切换两处的版本
CGI
和CLI
分别用于 Apache 等服务器和命令行PHP 7 ->5
# 禁用 Apache 中的 PHP7 sudo a2dismod PHP7 # 启用 PHP5.6 sudo a2enmod PHP5.6 # 重启 Apache sudo systemctl restart apache2.service # 切换 CLI sudo update-alternatives --set PHP /usr/bin/PHP5.6@H_403_15@PHP 5 ->7
# 禁用 Apache 中的 PHP5 sudo a2dismod PHP5.6 # 启用 PHP7 sudo a2enmod PHP7 # 重启 Apache sudo systemctl restart apache2.service # 切换 CLI sudo update-alternatives --set PHP /usr/bin/PHP7.0@H_403_15@