カテゴリー
Raspberry PI Model B+

Nginx で CGI を使えるようにする

  1. 必要なパッケージのインストール
  2. sudo apt-get install fcgiwrap spawn-fcgi
    
  3. 設定ファイル /etc/nginx/sites-available/default を編集
  4. pi@raspberrypi /etc/nginx/sites-available $ diff -u default.org default
    --- default.org 2015-01-11 14:28:27.657198270 +0900
    +++ default     2015-01-11 14:27:20.828190564 +0900
    @@ -77,6 +77,17 @@
            #location ~ /\.ht {
            #       deny all;
            #}
    +       # Userdir - cgi
    +       location ~ ^/~([^/]+)/(.+\.cgi)$ {
    +                if (!-f /home/$1/public_html/$2) {
    +                        rewrite ^ 404;
    +               }
    +               alias /home/$1/public_html/$2;
    +               fastcgi_pass unix:/var/run/fcgiwrap.socket;
    +               fastcgi_index index.cgi;
    +               fastcgi_param SCRIPT_FILENAME $request_filename;
    +               include fastcgi_params;
    +       }
            # Userdir - php
            location ~ ^/~([^/]+)/(.+\.php)$ {
                     if (!-f /home/$1/public_html/$2) {
    
  5. デーモンを再起動
  6. sudo /etc/init.d/fcgiwrap restart
    sudo /etc/init.d/nginx restart
    
  7. 動作確認用CGIスクリプトの準備
  8. cat > ~/public_html/does_work.cgi <<HERE
    #!/bin/bash
    
    cat << EOF
    Content-type: text/html
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <HTML>
    <HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=iutf-8">
    <TITLE>Building a report</TITLE>
    </HEAD>
    <BODY>
    CGI works!
    </BODY>
    </HTML>
    EOF
    HERE
    
  9. パーミッションの変更
  10. chmod a+x ~/public_html/does_work.cgi
    
  11. ブラウザからURLを与えて動作確認
  12. http://IPADDRESS/~pi/does_work.cgi
    
  13. うまくいけばブラウザ上に次のような結果を得る
  14. cgi_works

作成者: ブログの住人

電脳軟件を設ふ生業にて禄を食む者也。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください