Ubuntu 18.04
Sponsored Link

Nginx : CGI 実行環境を設定する
2018/06/29
 
Nginx で CGI が実行可能なように設定します。
[1] FastCGI Wrap をインストールして Nginx に設定します。
root@www:~#
apt -y install fcgiwrap
root@www:~#
cp /usr/share/doc/fcgiwrap/examples/nginx.conf /etc/nginx/fcgiwrap.conf

root@www:~#
vi /etc/nginx/fcgiwrap.conf
location /cgi-bin/ {
  # Disable gzip (it makes scripts feel slower since they have to complete
  # before getting gzipped)
  gzip off;

  # Set the root to /usr/lib (inside this location this means that we are
  # giving access to the files under /usr/lib/cgi-bin)
  # 変更
  root  /var/www;

  # Fastcgi socket
  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  $document_root$fastcgi_script_name;
}

root@www:~#
mkdir /var/www/cgi-bin

root@www:~#
chmod 755 /var/www/cgi-bin

root@www:~#
vi /etc/nginx/sites-available/default
# server セクション内に追記

server {
        .....
        .....
        include fcgiwrap.conf;
}

root@www:~#
systemctl restart nginx

[2] 設定したディレクトリ (当例では [var/www/cgi-bin]) で CGI テストページ (Perl スクリプト) を作成して動作確認をします。以下のようなページが表示されれば OK です。
root@www:~#
vi /var/www/cgi-bin/index.cgi
#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "<html>\n<body>\n";
print "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">\n";
print "CGI Test Page";
print "\n</div>\n";
print "</body>\n</html>\n";

root@www:~#
chmod 705 /var/www/cgi-bin/index.cgi

[3] 設定したディレクトリ配下であれば、Ruby でも Python でも CGI として実行できます。
root@www:~#
vi /var/www/cgi-bin/index.py
#!/usr/bin/env python

print "Content-type: text/html\n\n"
print "<html>\n<body>"
print "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">"
print "Python Script Test Page"
print "</div>\n</body>\n</html>"

root@www:~#
chmod 705 /var/www/cgi-bin/index.py

関連コンテンツ
 
Tweet