<!--
.. title: Настройка nginx для вызова скриптов через CGI
.. slug: nginx_cgi
.. date: 2026-07-15 16:48:21 UTC+03:00
.. tags: linux 
.. category: linux
.. link: 
.. description: 
.. type: text
-->

`nginx` будет работать через FastCGI c сервером
`fcgiwrap`, который и будет запускать скрипты через CGI.

## Установка и настройка

Дальнейшие действия следует производить от имени *root*.

Установить серверы:

```bash
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`:

```python
#!/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>")
```

Сделать файл исполняемым

```bash
chmod 705 /var/www/cgi-bin/index.cgi
```

Проверить можно по ссылке вида **http://servername/cgi-bin/index.cgi**.


Скрипт не обязательно должен быть на `python`, можно использовать `bash`.

```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](https://www.server-world.info/en/note?os=Debian_11&p=nginx&f=8)
