Apache

Adobe Commerce支援Apache 2.4.x。

Apache必要指示

  1. 在伺服器設定(全域)或虛擬主機設定中設定AllowEncodedSlashes,以避免解碼可能導致URL問題的編碼斜線。 例如,透過API在SKU中擷取斜線形式的產品時,您不想要轉換該產品。 範例區塊不完整,需要其他指令。

    code language-conf
    <VirtualHost *:443>
      # Allow encoded slashes
      AllowEncodedSlashes NoDecode
    </VirtualHost>
    

Apache重寫和htaccess

本主題討論如何啟用Apache 2.4重寫並指定分散式組態檔.htaccess的設定。

Adobe Commerce使用伺服器重寫和.htaccess為Apache提供目錄層級的指示。 下列指示也包含在本主題的所有其他章節中。

使用此區段來啟用Apache 2.4重寫,並指定分散式組態檔.htaccess的設定

Adobe Commerce使用伺服器重寫和.htaccess為Apache提供目錄層級的指示。

NOTE
無法啟用這些設定通常會導致您的店面或管理員上不顯示任何樣式。
  1. 啟用Apache重寫模組:

    code language-bash
    a2enmod rewrite
    
  2. 若要讓應用程式使用分散式.htaccess設定檔,請參閱Apache 2.4檔案中的准則。

    note tip
    TIP
    在Apache 2.4中,伺服器的預設站台組態檔為/etc/apache2/sites-available/000-default.conf

    例如,您可以在000-default.conf結尾新增下列內容:

    code language-none
    <Directory "/var/www/html">
        AllowOverride All
    </Directory>
    
    note note
    NOTE
    有時候,可能需要其他引數。 如需詳細資訊,請參閱Apache 2.4檔案
  3. 如果您已變更Apache設定,請重新啟動Apache:

    code language-bash
    service apache2 restart
    
    note note
    NOTE
    • 如果您從舊版Apache升級,請先在000-default.conf中尋找<Directory "/var/www/html"><Directory "/var/www">
    • 您必須針對要安裝Adobe Commerce軟體的目錄,變更指示詞中AllowOverride的值。 例如,若要安裝在網頁伺服器docroot中,請在<Directory /var/www>中編輯指示詞。
NOTE
若無法啟用這些設定,通常會導致樣式無法顯示在店面或管理員中。

Apache必要模組

Adobe Commerce需要安裝下列Apache模組:

驗證Apache版本

若要驗證您目前執行的Apache版本,請輸入:

apache2 -v

結果顯示類似以下內容:

Server version: Apache/2.4.04 (Ubuntu)
Server built: Jul 22 2020 14:35:32

在Ubuntu上安裝或升級Apache

以下小節討論如何安裝或升級Apache:

  • 安裝Apache
  • 升級至Ubuntu上的Apache 2.4以使用PHP 7.4。

在Ubuntu上安裝Apache

若要安裝預設版本的Apache:

  1. 安裝Apache

    code language-bash
    apt-get -y install apache2
    
  2. 驗證安裝。

    code language-bash
    apache2 -v
    

    結果顯示類似以下內容:

    code language-none
    Server version: Apache/2.4.18 (Ubuntu)
    Server built: 2020-04-15T18:00:57
    
  3. 啟用重寫和.htaccess

在Ubuntu上升級Apache

若要升級至Apache 2.4:

  1. 新增具有Apache 2.4的ppa:ondrej存放庫:

    code language-bash
    apt-get -y update
    
    code language-bash
    apt-add-repository ppa:ondrej/apache2
    
    code language-bash
    apt-get -y update
    
  2. 安裝Apache 2.4:

    code language-bash
    apt-get install -y apache2
    
    note note
    NOTE
    如果'apt-get install'命令因未滿足的相依性而失敗,請洽詢https://askubuntu.com/之類的資源。
  3. 驗證安裝。

    code language-bash
    apache2 -v
    

    類似下列的訊息應會顯示:

    code language-none
    Server version: Apache/2.4.10 (Ubuntu)
    Server built: Jul 22 2020 22:46:25
    
  4. 啟用重寫和.htaccess

在CentOS上安裝Apache

Adobe Commerce需要Apache伺服器重寫。 您也必須指定可以在.htaccess中使用的指令型別,應用程式會使用它來指定重寫規則。

安裝和設定Apache基本上是三個步驟的流程:安裝軟體、啟用重寫並指定.htaccess指令。

安裝Apache

  1. 安裝Apache 2.4 (如果尚未安裝)。

    code language-bash
    yum -y install httpd
    
  2. 確認安裝:

    code language-bash
    httpd -v
    

    類似下列的訊息會顯示以確認安裝成功:

    code language-none
    Server version: Apache/2.4.40 (Unix)
    Server built: Oct 16 2020 14:48:21
    
  3. 繼續下一節。

    note note
    NOTE
    即使Apache 2.4預設隨附於CentOS,請參閱下一節以設定它。

啟用CentOS的重寫和.htaccess

  1. 開啟/etc/httpd/conf/httpd.conf檔案進行編輯:

    code language-bash
    vim /etc/httpd/conf/httpd.conf`
    
  2. 找出開頭為的區塊:

    code language-conf
    <Directory "/var/www/html">
    
  3. AllowOverride的值變更為All

    例如,

    code language-conf
    <Directory "/var/www/">
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      Allow from all
    </Directory>
    
    note note
    NOTE
    Order的前述值可能並非在所有情況下都有效。 如需詳細資訊,請參閱Apache檔案(2.4)。
  4. 儲存檔案並退出文字編輯器。

  5. 若要套用Apache設定,請重新啟動Apache。

    code language-bash
    service apache2 restart
    
NOTE
無法啟用這些設定通常會導致您的店面或管理員上不顯示任何樣式。

啟用Ubuntu的重寫和.htaccess

  1. 開啟/etc/apache2/sites-available/default檔案進行編輯:

    code language-bash
    vim /etc/apache2/sites-available/default
    
  2. 找出開頭為的區塊:

    <Directory "/var/www/html">

  3. AllowOverride的值變更為All

    例如:

    code language-conf
    <Directory "/var/www/html">
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      Allow from all
    </Directory>
    
  4. 儲存檔案並退出文字編輯器。

  5. 設定Apache以使用mod_rewrite模組:

    code language-bash
    cd /etc/apache2/mods-enabled
    
    code language-bash
    ln -s ../mods-available/rewrite.load
    
  6. 重新啟動Apache以套用變更:

    code language-bash
    service apache2 restart
    

解決403 (禁止)錯誤

如果您在嘗試存取網站時遇到403禁止錯誤,您可以更新Apache設定或虛擬主機設定,以啟用網站的訪客:

解決Apache 2.4的403禁止錯誤

若要讓網站訪客能夠存取您的網站,請使用Require指示之一。

例如:

<Directory "/var/www/">
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  Require all granted
</Directory>
NOTE
Order的前述值可能並非在所有情況下都有效。 如需詳細資訊,請參閱Apache檔案
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995