我在从 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
。您可以执行以下两项操作之一:
由于您的 URL 路径与目录匹配,因此将根目录设置为高一级:
location /cacti { root /usr/share; ... }
使用
alias
指令,不附加 URL 路径。SCRIPT_FILENAME
但是,此方法需要修改传递给 PHP 的参数。location /cacti { alias /usr/share/cacti; ... fastcgi_param SCRIPT_FILENAME /usr/share$request_filename; }