Nginx

從 NginX 託管 Cacti 安裝

  • February 26, 2013

我在從 NginX 託管 Cacti 安裝時遇到問題。

我在我的預設 NginX 配置文件中的 /usr/share/cacti 和以下塊下安裝了仙人掌。

location / {
   root /var/www;
   index index.html index.htm
}

location /cacti {
   root /usr/share/cacti;
   index index.php index.html index.htm;
   location ~ \.php$ {
       try_files $uri =404;
       include fastcgi_params;
       fastcgi_pass unix:/var/run/php5-fpm.sock;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$request_filename;
   }
}

我看到的問題是 NginX 錯誤日誌中充滿了“/usr/share/cacti/cacti/index.php”不存在的錯誤。

現在我只是簡單地將額外的目錄添加到 cacti,但我不知道如何讓 NginX 在處理頁面請求時從 URI 中“刪除”“/cacti/”前綴(並將它們傳遞給 PHP5-FPM )

任何幫助,將不勝感激。

root指令仍會導致 URL 路徑被附加,因此如果根是/usr/share/cacti並且路徑是/cacti目錄是/usr/share/cacti/cacti. 您可以執行以下兩項操作之一:

  1. 由於您的 URL 路徑與目錄匹配,因此將根設置高一級:
location /cacti {
   root /usr/share;
   ...
}
  1. 使用alias不附加 URL 路徑的指令。然而,這種方法需要修改SCRIPT_FILENAME傳遞給 PHP 的參數。
location /cacti {
   alias /usr/share/cacti;
   ...
   fastcgi_param SCRIPT_FILENAME /usr/share$request_filename;
}

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