如何使用 Apache 而不使用 FPM 来使用多个 PHP 版本?

问题描述 投票:0回答:1

我在服务器上安装了两个 PHP 版本

7.2
7.4
。两者也都已启用。

有一个使用 PHP 运行的项目

7.2
。我需要使用 PHP 运行一个新项目
7.4
。正如我所提到的,我不使用 PHP-FPM。经过一番研究,我应该使用
a2dismod php7.2
a2denmod php7.4
来停止
7.2
并启动
7.4
版本。但在这种情况下,当前的工作项目将停止工作,因为它与 ver
7.2
兼容。

那么,知道如何配置 Apache 来处理在同一服务器上运行的两个不同项目,一个使用 PHP

7.2
,另一个使用
7.4
而不使用 PHP-FPM?

php apache fpm
1个回答
0
投票

当您使用 PHP 作为 Apache 模块时,据我所知,每个服务器实例只能加载一个 PHP 模块。

与 PHP-FPM 所做的类似,您可以运行两个 Apache 服务器实例。一个配置了 PHP 7.2 模块,另一个配置了 PHP 7.4 模块。

鉴于 PHP 7.2 模块 Apache 是当前服务器实例,它将把 PHP 7.4 应用程序的虚拟主机代理到新的第二个 Apache 服务器实例。

这与 Nginx 和两个 PHP-FPM 相当,只是 Apache 和 Apache 的布局不同。

         +----------------------------------------------------+
         |                       +-------------+ + pool #1    |
         |                ,----> | PHP-FPM 7.2 | + pool #2    |
         |   +-------+ <--'      +-------------+ + ...        |
  WAN <====> | Nginx |                                        |
         |   +-------+ <--.      +-------------+ + pool #1    |
         |                '----> | PHP-FPM 7.4 | + ...        |
         |                       +-------------+              |
         +----------------------------------------------------+ 
         +------------------------------------+  
         |    +---------+       +---------+   |
  WAN <=====> | Apache  | <---> | Apache  |   |
         |    |.........|       |.........|   |
         |    | PHP 7.2 |       | PHP 7.4 |   |
         |    +---------+       +---------+   |
         +------------------------------------+

据我所知,您只能对主服务器实例使用 a2denmod(1) 等标准实用程序。因此,请让自己熟悉服务器配置,Apache 有很好的文档记录,我个人非常喜欢它的配置。也许我是从 Apache 1.3 开始的。

然而,现在已经是 2023 年了,Nginx + PHP-FPM 是一个非常好的组合。 Vanilla Nginx 是一个相当不错的强大工具。

© www.soinside.com 2019 - 2024. All rights reserved.