- blogs:
- cles::blog
2019/09/19

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



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でログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Windows 10 で勝手にログアウトされないようにする(3484)
2 . リモートデスクトップで Alt + PrtSc と同じことをするには(3012)
3 . RDP のプロトコルを TCP だけに変更する(2335)
4 . 「日次」は「にちじ」じゃない?(2085)
5 . リモートデスクトップで Ctrl + Alt + Del キーを送信するには(2045)
2 . リモートデスクトップで Alt + PrtSc と同じことをするには(3012)
3 . RDP のプロトコルを TCP だけに変更する(2335)
4 . 「日次」は「にちじ」じゃない?(2085)
5 . リモートデスクトップで Ctrl + Alt + Del キーを送信するには(2045)
cles::blogについて
Referrers