[ic] Nginx config

Josh Lavin jlavin at endpoint.com
Thu Aug 27 00:46:40 UTC 2015

I recently attempted running Interchange 5.8.2 on Nginx, rather than

In case it helps someone later, below are my configs that worked with
the Strap template, using "/cgi-bin/strap" as the URL.

These are what I used for for CentOS 7, based on info from older posts
to this list, which mostly worked, but not fully.


Linked here:

Included below:

/etc/init.d/fcgiwrap (systemd, I know, I know, but this still works)

# fcgiwrap launcher, /etc/init.d/fcgiwrap
# see: https://github.com/gnosek/fcgiwrap
# and: https://web.archive.org/web/20130324035657/http://nginx.localdomain.pl/wiki/FcgiWrap
# props: https://web.archive.org/web/20130322054803/http://www.tonimueller.org/blog/2012/09/hosting-interchange-on-nginx.html
use strict;
use warnings FATAL => qw( all );
use IO::Socket::UNIX;
my $bin_path = '/usr/local/sbin/fcgiwrap';
my $socket_path = $ARGV[0] || '/run/nginx/cgi.sock';
my $num_children = $ARGV[1] || 1;
close STDIN;
unlink $socket_path;
my $socket = IO::Socket::UNIX->new(
    Local => $socket_path,
    Listen => 100,
die "Cannot create socket at $socket_path: $!\n" unless $socket;
for (1 .. $num_children) {
    my $pid = fork;
    die "Cannot fork: $!" unless defined $pid;
    next if $pid;
    exec $bin_path;
    die "Failed to exec $bin_path: $!\n";


server {
    # [snip] various other configs for this server.

    # ic stuff, running as /cgi-bin/strap:
    location  /strap {
        root  /home/josh/www;
    location  /interchange-5 {
        root  /home/josh/www;
    location ^~ /cgi-bin {
        root         /home/josh/www;
        fastcgi_pass unix:/run/nginx/cgi.sock;
        gzip off;
        expires off;

        set $path_info $request_uri;
        if ($path_info ~ "^/cgi-bin/strap/([^\?]*)") {
            set $path_info $1;

        include                     fastcgi_params;
        fastcgi_read_timeout        5m;
        fastcgi_index               /cgi-bin/strap;

        fastcgi_param SERVER_SOFTWARE NginxEncoded/$nginx_version;  # not in Toni's
        fastcgi_param SCRIPT_NAME /cgi-bin/strap;
        fastcgi_param SCRIPT_FILENAME /home/josh/cgi-bin/strap;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param HTTP_COOKIE $http_cookie;

Josh Lavin
End Point Corporation

More information about the interchange-users mailing list