近頃のプログラミングは、難しい。 難しいというか、面倒である。 昔はもっと単純だった。
ここでは、昔の古風なスタイルのプログラミングを思い出してみる。
シェルスクリプトで書いた、シンプルな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; } }