搜索

首页  >  问答  >  正文

在Apache中实现无需使用FPM的多个PHP版本使用方法

<p>我在服务器上安装了两个PHP版本 <code>7.2</code> 和 <code>7.4</code>。两个版本都已启用。</p> <p>目前有一个项目正在使用 PHP <code>7.2</code>。我需要运行一个新项目,使用 PHP <code>7.4</code>。正如我之前提到的,我不使用 PHP-FPM。经过一些研究,我应该使用 <code>a2dismod php7.2</code> 和 <code>a2denmod php7.4</code> 来停止 <code>7.2</code> 版本并启动 <code>7.4</code> 版本。但在这种情况下,当前正在运行的项目将停止工作,因为它与版本 <code>7.2</code> 兼容。</p> <p>所以,有没有办法在不使用 PHP-FPM 的情况下配置 Apache,使其能够处理在同一服务器上运行的两个不同项目,一个使用 PHP <code>7.2</code>,另一个使用 <code>7.4</code>?</p>
P粉287345251P粉287345251497 天前587

全部回复(1)我来回复

  • P粉138711794

    P粉1387117942023-08-17 10:53:01

    使用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 |     FCGI                               |
             |   +-------+ <--.      +-------------+ + pool #1    |
             |                '----> | PHP-FPM 7.4 | + ...        |
             |                       +-------------+              |
             +----------------------------------------------------+
    +-------------------------------------------------+  
             |    +-------------+            +-------------+   |
      WAN <=====> | Apache #1   | <--------> | Apache #2   |   |
             |    |.............|    HTTP    |.............|   |
             |    | mod PHP 7.2 |            | mod PHP 7.4 |   |
             |    +-------------+            +-------------+   |
             +-------------------------------------------------+

    据我所知,您只能为主服务器实例使用类似a2denmod(1)的标准实用程序。因此,请熟悉服务器配置,Apache有很好的文档,并且我个人非常喜欢它的配置。可能是因为我从大约Apache 1.3开始使用它。

    然而,由于现在是2023年,Nginx + PHP-FPM是一个非常不错的组合。原始的Nginx是一个相当不错的强大工具。

    回复
    0
  • 取消回复