虽然现在已经是 PHP8 时代,但国内的很多应用还是仅支持 PHP7,所以不得不给 Ubuntu 22.04 安装 7.4 版本的 PHP。
# 先更新软件源并升级 sudo apt update && sudo apt upgrade -y # 安装software-properties-common软件管理器(这一步不是必须,有些发行版本已经安装好了) sudo apt install software-properties-common # 增加 ondrej/php PPA,提供了多个 PHP 版本 sudo add-apt-repository ppa:ondrej/php # 再次更新 sudo apt update
此时,就可以使用 apt 安装 php7.4
了。
笔者使用的是 Nginx
+ PHP-FPM
的模式,所以只安装 fpm 及相关扩展,默认的 apt install php7.4
会带上 apache 相关的组件。
sudo apt install -y php7.4-fpm php7.4-mysql php7.4-dev \ php7.4-redis php7.4-gd php7.4-mbstring php7.4-zip \ php7.4-curl php7.4-sqlite3 php7.4-xml php7.4-yaml \ php7.4-decimal php7.4-http php7.4-imagick php7.4-bcmath \ php7.4-raphf php7.4-xmlrpc
安装成功即可。
nginx 的 fastcgi_pass
配置也需要跟着修改:
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
安装好 php-7.4 后,并不会与已安装的 8.1 冲突,可以和平共处。
当然,如果要在命令行中使用 php7.4,还需要指定指定的二进制文件的完整路径。
/usr/bin/php7.4 -v
切换终端的 php 版本
# 列出可用的 php 版本 sudo update-alternatives --config php # 列出可用版本时,会询问选择哪个版本作为默认版本 # 将 php 版本切换为新安装的 7.4 sudo update-alternatives --set php /usr/bin/php7.4
一个小问题
最终测试了一下 php -v,显示 7.4 版本了。但报了一个错:
PHP Warning: Cannot load module 'http' because required module 'propro' is not loaded in Unknown on line 0
看起来是无法加载 http 模块,因为依赖的 propro 模块没有安装,于是安装之:
apt install php7.4-propro
再次执行 php -v,问题解决。