NGINX で CGI
CentOS 8
Apache からを NGINX に変更したら CGI が動かないので調べてみた。
fcgiwrap を EPEL からインストール
# dnf -y install epel-release
# dnf --enablerep=epel -y install fcgiwrap
Ngignx.conf の設定
CGI を利用したいサイトの設定ファイル nginx.conf の server セクションに追加。
location ~ \.cgi$ {
root /var/www/app
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
Nginx をリスタート。
# systemctl restart nginx.service
fcgiwrap 用の設定ファイルを作成
# vi /usr/lib/systemd/system/fcgiwrap.service
[Unit]
Description=Simple CGI Server
After=nss-user-lookup.target
Requires=fcgiwrap.socket
[Service]
EnvironmentFile=/etc/sysconfig/fcgiwrap
ExecStart=/usr/sbin/fcgiwrap ${DAEMON_OPTS} -c ${DAEMON_PROCS}
User=nginx
Group=root
[Install]
Also=fcgiwrap.socket
# vi /usr/lib/systemd/system/fcgiwrap.socket
#[Unit]
Description=fcgiwrap socket
[Socket]
ListenStream=/run/fcgiwrap.socket
[Install]
WantedBy=sockets.target
fcgiwrap 起動
# vi systemctl enable --now fcgiwrap
CGI テストをしてみる
#!/usr/bin/perl
print "Content-type:text/plain\n\n";
print "CGIのテスト";
実行権限を付ける
ブラウザからアドレスにアクセスし 「CGIのテスト」 と表示されることを確認
参考サイト
https://www.server-world.info/query?os=CentOS_8&p=nginx&f=6
https://blog.panicblanket.com/archives/5394


