在Apache中实现无需使用FPM的多个PHP版本使用方法
P粉287345251
P粉287345251 2023-08-16 14:14:17
0
1
539
<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粉287345251
P粉287345251

全部回复(1)
P粉138711794

使用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是一个相当不错的强大工具。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!