以代码为中心的开发环境

以代码为中心的开发环境

我的生产 Centos 7 机器正在运行 PHP 7.4,但我想针对 PHP 8 测试代码。几天前,在格式化新服务器时,我尝试过,yum-config-manager --enable remi-php8但这破坏了设置,因为我的 PHP 代码存在 TCPDF 问题,无法在 PHP 8 中运行,所以我不得不降级到 PHP 7.4。

Centos 中是否有办法同时拥有两个版本并按需切换?这样我就可以进行测试,但同时保持工作部分的完整性。

运行 nginx。

答案1

软件集合(SCL)设计用于与系统默认版本并行安装,从而允许同时运行多个版本。

这在PHP 配置提示,尤其是对于 httpd 用户(作为 mod_php,在 CentOS 7 中默认使用)切换到 FPM,只允许使用一个版本。Nginx 用户始终使用 FPM。

在 remi 存储库中,您可以找到 PHP 5.6 到 8.0 作为 SCL。

为了正确安装,请按照向导说明(并选择“多个版本”)。

答案2

我有一个类似的目标,但方式略有不同:

我希望能够使用 PHP 的较新版本以及生产版本进行测试,并针对它们运行测试用例。

以代码为中心的开发环境

我开始使用,这基本上是一种配置虚拟机的方式。配置以代码的形式呈现,Vagrant文​​件。我喜欢这种方式,它允许我设置完全相同的环境,并且可以在不更改系统其余部分的情况下测试新版本的 PHP。我设置的方式基本上是将您的src文件夹映射到虚拟机,然后您就可以开始了。
这也意味着任何检查代码的开发人员都将能够启动一个与所有其他开发人员正在使用的开发环境完全相同的开发环境。

进一步

这是我描述的场景的进一步发展,本质上是一条替代路线
经过几次迭代,以及对自动化测试的渴望,这意味着在我需要测试时启动一个测试环境,使用与我的生产环境相同的规格,我决定转向。开销较少,并且看起来 docker 更容易在不同的操作系统上运行,所以本质上我在 docker 中做了同样的事情,这意味着设置 CI/CD 很容易,因为很多这些工具都内置了 docker 集成。

相关内容