我的最终目标是设置 ikiwiki,我当前的目标是让 fcgi 包装器为 nginx 工作,这样我就可以继续下一步了……
ikiwiki 页面指出此页面作为 fcgi 包装器的示例:
http://technotes.1000lines.net/?p=23
到目前为止,我已经通过 aptitude 安装了 ikiwiki 和 libfcgi-perl 模块:
aptitude install libfcgi-perl
aptitude install ikiwiki
它安装了这些包以及一些最小依赖包。
因此,按照技术说明中的指南,我下一步http://technotes.1000lines.net/fastcgi-wrapper.pl但我不确定实际上应该把这个文件放在哪里...我是否应该将它作为服务运行?
该脚本在 /var/run/nginx 中创建一个套接字文件,但该目录不存在..我应该手动创建它吗?
因此,除了 cgi 包装器的 .pl 文件之外,我还需要为参数定义一个单独的 cgi 文件。如果我的配置文件如下所示...
server {
listen 80;
server_name notes.domain.org;
access_log /www/notes/public_html/notes.domain.org/log/access.log;
error_log /www/notes/public_html/notes.domain.org/log/error.log;
location / {
root /www/notes/public_html/notes.domain.org/public/;
index index.html;
}
}
而且我没有 cgi-bin 目录,我应该在我的结构中在哪里创建它,并且关于这一点,我显然必须在将它包含在我的 conf 之前更新下面的内容,但我只是不太确定这将如何工作。
# /cgi-bin configuration
location ~ ^/cgi-bin/.*\.cgi$ {
gzip off;
fastcgi_pass unix:/var/run/nginx/perl_cgi-dispatch.sock; [1]*
fastcgi_param SCRIPT_FILENAME /www/blah.com$fastcgi_script_name; [2]*
include fastcgi_params; [3]*
}
此外,由于用户是 www-data 并且/var/run
拥有 root 权限,授予其访问权限的正确方法是什么?
任何建议都值得感激。
答案1
你应该安装包通过 apitude。开箱即用。
大多数 nginx 教程都很烂,因为它们要么不是针对 Debian 的,要么试图重新发明轮子,要么使用旧的软件或配置。所以要小心,比平时多读一点。
仅供参考,我的 cgi 位置块:
location ~ \.cgi {
root /usr/lib;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
# Fastcgi parameters, include the standard ones
include /etc/nginx/fastcgi_params;
# Adjust non standard parameters (SCRIPT_FILENAME)
fastcgi_param SCRIPT_FILENAME /usr/lib$fastcgi_script_name;
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
}
/etc/nginx/fastcgi_params
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_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
ikiwiki 内容位于 /usr/lib/cgi-bin 中,您可以通过以下方式访问它http://服务器/cgi-bin/