NGINX で CGI

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

タイトルとURLをコピーしました