BLOGTIMES
2019/09/19

Raspberry Pi に Nginx を入れて CGI が動くようにしてみる

  nginx  raspberrypi  sh 
このエントリーをはてなブックマークに追加

Raspberry Pi に Nginx を入れて、bash で書いたスクリプトを簡単な CGI として動かせるようにしてみたのでメモ。

インストール

とりあえず apt で nginx と CGI のための fcgiwrap をインストールしておきます。

apt update apt -y install nginx fcgiwrap

CGI 実行のための設定もろもろ

【ubuntu】nginx環境でシェルスクリプトをcgiとして動かす」を参考にさせていただいて、以下のように設定を変更。サンプル用のプログラムも配置してから、nginx と fcgiwrap を起動します。
patch がちょっと変な感じになっていますが、これは通常のターミナルには tab 文字が貼り付けできない*1のでそれを \t でエスケーブするようにしているためです。

cat << 'EOF' | sed "s/\\\\t/`echo -en '\t'`/" | patch --- /etc/nginx/sites-available/default.org 2019-09-19 22:03:50.770293355 +0900 +++ /etc/nginx/sites-available/default 2019-09-19 22:03:50.770293355 +0900 @@ -61,6 +61,13 @@ \t# # With php-cgi (or other tcp sockets): \t# fastcgi_pass 127.0.0.1:9000; \t#} +\t +\tlocation ~ \.sh$ { +\t\troot /usr/share/nginx/html/; +\t\tfastcgi_pass unix:/var/run/fcgiwrap.socket; +\t\tinclude /etc/nginx/fastcgi_params; +\t\tfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; +\t} \t# deny access to .htaccess files, if Apache's document root \t# concurs with nginx's one EOF cat << 'EOF' > /usr/share/nginx/html/date.sh #!/bin/sh echo 'Content-type: text/html' echo '' /bin/date EOF systemctl start nginx systemctl enable nginx systemctl start fcgiwrap systemctl enable fcgiwrap

最後に curl で URL を叩いて、時刻が帰ってくれば設定完了です。

curl http://localhost/date.sh
  • *1: Ctrl+v tab を押すと1文字毎に入力することはできます

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11236
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン