所以我正在尝试安装ZoneMinder并让它在Nginx下运行,但它有一些需要使用Fast-CGI运行的编译文件。这些文件没有扩展名。
如果文件有扩展名,那么没有问题,Nginx将其解释为文件,如果找不到,则返回404。如果它没有扩展名,它将假定它是一个目录,然后当它找不到任何类型的索引页时最终返回404。
以下是我现在所拥有的:
# Security camera domain.
server {
listen 888;
server_name mydomain.com;
root /srv/http/zm;
# Enable PHP support.
include php.conf;
location / {
index index.html index.htm index.php;
}
# Enable CGI support.
location ~ ^/cgi-bin/(.+)$ {
alias /srv/cgi-bin/zm/;
fastcgi_pass unix:/run/fcgiwrap.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$1;
include fastcgi.conf;
}
}
这个想法是,cgi-bin目录下的任何内容都会通过fastcgi管道。
关于我如何解决这个问题的任何想法?
答案 0 :(得分:0)
仔细观察后,我意识到ZoneMinder只有两个cgi脚本(nph-zms,zms),因此更容易在nginx中明确说明它们:
# Enable CGI support.
location ~ ^/cgi-bin/(nph-zms|zms)$ {
alias /srv/cgi-bin/zm/;
fastcgi_pass unix:/run/fcgiwrap.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$1;
include fastcgi.conf;
}
似乎是最好的方式:)