近頃のプログラミングは、難しい。 難しいというか、面倒である。 昔はもっと単純だった。
ここでは、昔の古風なスタイルのプログラミングを思い出してみる。
シェルスクリプトで書いた、シンプルなCGIたち。
同じ内容で、Perlで書いたものたち。
同じ内容で、Cで書いたものたち。
CGIの定番、カウンタ。 シェルスクリプトで書いた方は、たまに壊れる簡易版。 Perlで書いた方は、ちゃんとファイルロックする安全版。 Cで書いたものも安全。
Nginxは、FastCGIはサポートしてるが、CGIは直接はサポートしてない。 fcgiwrapというツールを使うことで、FastCGI経由で間接的に、NginxでCGIを使うことができる。 fcgiwrapはDebianパッケージにあるので、Debian系OSなら apt-get install fcgiwrap でインストールできる。
Nginxの設定は、こんな感じ。
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name kaiko.kareha.org;
ssl_certificate /etc/letsencrypt/live/kaiko.kareha.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/kaiko.kareha.org/privkey.pem;
root /home/kaiko/public_html;
location /cgi-bin/ {
root /home/kaiko;
fastcgi_pass unix:/run/fcgiwrap.socket;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
location /cgi-txt/ {
root /home/kaiko;
autoindex on;
charset utf-8;
try_files $uri $uri/ =404;
}
location / {
autoindex on;
charset utf-8;
try_files $uri $uri/ =404;
}
}