我有一个与Apache一起使用的.fcgi文件,我只是将重写规则指向文件并完成它的工作,但似乎Nginx无法像这样工作。
在Apache上,我只是将请求重定向到文件。从最初的项目.htaccess:
RewriteEngine On
RewriteBase /matrufsc
RewriteRule ^dispatch\.fcgi/ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]
因此,除尝试访问root之外的所有请求都将路由到dispatch.fcgi/$request
。但是Nginx无法直接执行文件。我有什么替代方法来执行这个文件?
这是一个python脚本,根据请求的"文件"过滤请求并采取行动。您可以看到脚本源here at GitHub,对于具有上述htaccess的Apache,它的工作原理如此。我不知道如何使用FastCGI。
如何从Nginx生成fastcgi进程?我对它没有任何线索或如何更好地描述它。
答案 0 :(得分:2)
您将需要使用名为fastcgi的模块。
文档在这里FastCGI Module。
示例位置
location / {
fastcgi_pass localhost:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
这也需要运行fastcgi守护程序。这个守护进程的安装取决于你的操作系统。
这是wiki上关于fcgi的另一个页面。