如何使用Apache而不是FPM来使用多个PHP版本?[已关闭]

klr1opcd  于 12个月前  发布在  Apache
关注(0)|答案(1)|浏览(103)

已关闭此问题为not about programming or software development。它目前不接受回答。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
2个月前关闭。
Improve this question
我在服务器上安装了两个PHP版本7.27.4。两者也都被启用。
有一个使用PHP 7.2运行的项目。我需要运行一个新的项目使用PHP 7.4。正如我所提到的,我不使用PHP-FPM。经过一些研究,我应该使用a2dismod php7.2a2denmod php7.4来停止7.2并启动7.4版本。但是在这种情况下,当前工作的项目将停止工作,因为它与ver 7.2兼容。
那么,我如何配置Apache来处理在同一服务器上运行的两个不同的项目,一个使用PHP 7.2,另一个使用7.4,而不使用PHP-FPM?

tnkciper

tnkciper1#

当您将PHP用作Apache模块AFAIK时,每个服务器示例只能加载一个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 |     FCGI                               |
         |   +-------+ <--.      +-------------+ + pool #1    |
         |                '----> | PHP-FPM 7.4 | + ...        |
         |                       +-------------+              |
         +----------------------------------------------------+
+-------------------------------------------------+  
         |    +-------------+            +-------------+   |
  WAN <=====> | Apache #1   | <--------> | Apache #2   |   |
         |    |.............|    HTTP    |.............|   |
         |    | mod PHP 7.2 |            | mod PHP 7.4 |   |
         |    +-------------+            +-------------+   |
         +-------------------------------------------------+

AFAIK您只能使用标准实用程序,如a2 denmod(1)用于主服务器示例。因此,让自己对服务器配置感到舒适,Apache有很好的文档记录,我个人非常喜欢它的配置。也许我是从Apache 1.3开始的。
然而,由于现在是2023年,Nginx + PHP-FPM是一个非常好的组合。Vanilla Nginx是一个相当不错的动力。

相关问题