搜尋

首頁  >  問答  >  主體

在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>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 天前588

全部回覆(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
  • 取消回覆