在 nginx 上安装 ikiwiki - fastcgi/fcgi 包装器

在 nginx 上安装 ikiwiki - fastcgi/fcgi 包装器

我的最终目标是设置 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/

相关内容