Настройка nginx для вызова скриптов через CGI
nginx будет работать через FastCGI c сервером
fcgiwrap, который и будет запускать скрипты через CGI.
Установка и настройка
Дальнейшие действия следует производить от имени root.
Установить серверы:
apt install nginx-full fcgiwrap
Создать файл конфигурации /etc/nginx/fcgiwrap.conf для nginx:
location /cgi-bin/ { gzip off; root /var/www; fastcgi_pass unix:/var/run/fcgiwrap.socket; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
Создать каталог для cgi-скриптов:
mkdir /var/www/cgi-bin chmod 755 /var/www/cgi-bin
Добавить в файл конфигурации /etc/nginx/sites-available/default
строку include fcgiwrap.conf;
server { ..... ..... include fcgiwrap.conf; }
Включить fcgiwrap и перезапустить nginx:
systemctl enable fcgiwrap systemctl restart nginx
Проверка
Создать тестовый файл /var/www/cgi-bin/index.cgi:
#!/usr/bin/env python3 print("Content-type: text/html\n") print("<html>\n<body>") print("<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">") print("CGI Script Test Page") print("</div>") print("</body>\n</html>")
Сделать файл исполняемым
chmod 705 /var/www/cgi-bin/index.cgi
Проверить можно по ссылке вида http://servername/cgi-bin/index.cgi.
Скрипт не обязательно должен быть на python, можно использовать bash.
#!/bin/bash printf "Content-type: text/html\r\n" printf "\r\n" printf "<html>\n<body>" echo "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">" printf "CGI Script Test Page" printf "</div>\n" echo `whoami` printf "</body>\n</html>\r\n"
Источник: https://www.server-world.info/en/note?os=Debian_11&p=nginx&f=8