使PHP7和PHP8共存
我已经从PHP 7升级到了PHP 8,就像PHP通常的情况一样,我在/usr/bin
中仍然有php7.4(还有php8.0),但是,当我运行php -v
命令时,它回答php8.0。
从那时起,当我试图安装软件(例如Docker和VirtualBox)时,我得到错误消息php7.4-fpm.service: Failed with result 'exit-code'
,然后是Failed to start The PHP 7.4 FastCGI Process Manager
。因此,我似乎需要运行php7. 4来安装此类应用程序。
但是我使用PHP8的功能来编写网站代码,因此不想回到php7.4
有没有同时使用php8.0和php7.4的方法?我可以让php8在虚拟机上工作,但它很重。
我使用的是Ubuntu 20(但我不确定这个问题是否特定于操作系统)。
兹洛茨
4条答案
按热度按时间mzillmmw1#
正如@Abilogos在他的回答中提到的,你可以使用
update-alternatives
和cli有多个版本的php,设置为默认的版本将与php
命令一起工作,但当涉及到使用Apache/Nginx为网站运行特定版本时,它得到“这很困难,最近我也遇到了这个问题,当时我想让我的代码与PHP 8并行兼容,而不妨碍现有的工作代码和最后我终于得到了我所需要的东西,使这一切的工作。下面是我在Fedora 33上所做的
**步骤1.**安装PHP 8.0作为默认版本,并使用Remi repo,我已经安装了其他PHP版本以及(5.6,7.0,7.1,7.2,7.3 & 7.4)
**步骤2.**我检查了
update-alternatives
以将PHP版本从8.0更改为7.4,但没有条目。因此,我将所有这些都安装在update-alternatives
中**第3步。**现在,您可以随时在cli中轻松更改PHP版本。例如,当您的应用程序依赖于某些库,但这些库与PHP 8兼容,并且您希望更改默认PHP版本以运行
composer install
**步骤4.**现在,要配置website 1在PHP 8上运行,website 2在PHP 7.4上运行,我们需要配置两个PHP-FPM,并在不同的端口上运行。
更改默认PHP-FPM端口
同样,更改PHP-FPM 7.4端口
启动/重新启动PHP-FPM服务
**步骤5.**更改vhost配置文件,以便对website 1和website 2使用不同版本的PHP
重新启动Apache/Nginx
我们就完事了
ki0zmccv2#
你可以有多个版本的php,但是只有一个可以被设置为默认版本。
使用此设置默认值:
使用默认值:
使用特定版本:
kxkpmulp3#
用
sudo apt-get purge php7.4-common
删除php7.4解决了我的问题。jm81lzqq4#
有几个很棒的教程可以解决这个问题。
https://www.digitalocean.com/community/tutorials/how-to-run-multiple-php-versions-on-one-server-using-apache-and-php-fpm-on-ubuntu-18-04
https://tecadmin.net/how-to-install-multiple-php-version-with-apache-on-ubuntu-20-04/
https://bobcares.com/blog/run-multiple-php-versions-apache-php-fpm/