Linux

NGINX + Drupal 安裝在 Linux 伺服器的子文件夾中

  • December 21, 2017

我正在嘗試像這樣配置伺服器具有以下可訪問地址:

domain.com/webmail (webmail app)
domain.com/app (node.js app)
domain.com/mailadmin (mail administration app)
domain.com/site (drupal website)

我的根目錄是/var/www

其中有以下目錄:

/var/www/webmail
/var/www/app
/var/www/postfixadmin
/var/www/site

我嘗試了幾種配置,但都沒有工作(有些工作部分,顯示首頁或顯示所有頁面但沒有任何 CSS 樣式)

乾杯

在這上面花了一整天的時間。我終於找到了一個完全可行的解決方案:

  1. 首先,您需要更改location /(Catch all) 所以它不會嘗試獲取子目錄
  2. 然後你需要為location /subfolder_name/你想要服務的每個應用程序創建一個
  3. 最後,您需要配置 drupal 位置和重寫,以便它擷取/drupal_subfolder/Drupal 路由器的請求並將其重寫。

所以這裡是程式碼:

location / {
           # First attempt to serve request as file, then
           # as directory, then fall back to displaying a 404.
           try_files $uri =404;
   }

   location /app/ {
        // reverse proxy configuration of a node.js app
        ...
   }

   location /webmail/ {

   }

   location /mailadmin/ {

   }

   location @drupal_rewrite {
           rewrite ^/site/(.*)$ /site/index.php?$1;
   }

   location /site/ {
           try_files $uri @drupal_rewrite;
   }

在我的配置(上圖)中,只有location /app/andlocation /site/塊有內容。

希望它可以幫助某人。:)

(我用的是:ubuntu + nginx + drupal 8.2)

引用自:https://serverfault.com/questions/825937