在Apache中实现无需使用FPM的多个PHP版本使用方法
P粉287345251
2023-08-16 14:14:17
<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>
使用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布局。
据我所知,您只能为主服务器实例使用类似a2denmod(1)的标准实用程序。因此,请熟悉服务器配置,Apache有很好的文档,并且我个人非常喜欢它的配置。可能是因为我从大约Apache 1.3开始使用它。
然而,由于现在是2023年,Nginx + PHP-FPM是一个非常不错的组合。原始的Nginx是一个相当不错的强大工具。