从 NginX 安装托管 Cacti

从 NginX 安装托管 Cacti

我在从 NginX 托管 Cacti 安装时遇到问题。

我在 /usr/share/cacti 下安装了 cacti,并且在我的默认 NginX 配置文件中安装了以下块。

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 在处理页面请求(并将它们传递给 PHP5-FPM)时从 URI 中“删除”'/cacti/' 前缀

任何帮助,将不胜感激。

答案1

root指令仍会导致附加 URL 路径,因此如果根目录为/usr/share/cacti且路径为 则/cacti目录为/usr/share/cacti/cacti。您可以执行以下两项操作之一:

  1. 由于您的 URL 路径与目录匹配,因此将根目录设置为高一级:

    location /cacti {
        root /usr/share;
        ...
    }
    
  2. 使用alias指令,不附加 URL 路径。SCRIPT_FILENAME但是,此方法需要修改传递给 PHP 的参数。

    location /cacti {
        alias /usr/share/cacti;
        ...
        fastcgi_param SCRIPT_FILENAME /usr/share$request_filename;
    }
    

相关内容