我在从NginX托pipeCacti安装时遇到了问题。
我将cacti安装在/ usr / share / cacti下,并在我的默认NginXconfiguration文件中的下面的块中。
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 /'前缀从URI中“删除”(并将它们传递给PHP5-FPM )
任何帮助,将不胜感激。
root指令仍然会导致追加URLpath,所以如果根目录是/usr/share/cacti ,path是/cacti目录是/usr/share/cacti/cacti 。 你可以做两件事之一:
由于您的urlpath与目录匹配,请将根目录设置为更高一级:
location /cacti { root /usr/share; ... }
使用alias指令,它不会追加URLpath。 这种方法将需要修改传递给PHP的SCRIPT_FILENAME参数。
location /cacti { alias /usr/share/cacti; ... fastcgi_param SCRIPT_FILENAME /usr/share$request_filename; }