Главная
Главная Руководства Raspberry Pi › Raspbian, установка FastCGI для Perl и настройка под nginx



Автор:

Статья опубликована: 2015-04-19 12:02:47
Последние правки: 2018-03-11 20:26:33

Raspbian. Устанавливаем и настраиваем FastCGI. Nginx, Perl.

  • Исходные данные
    root@raspberrypi:/# uname -sr
    Linux 3.18.7-v7+
    root@raspberrypi:/home/pi# dpkg -s fcgiwrap
    Package: fcgiwrap
    Version: 1.0.3-3
    

  • Установка и настройка fcgiwrap
    root@raspberrypi:/home/pi# apt-get install fcgiwrap
    
    Есть два способа использования fcgiwrap: Unix-сокет или сетевой стек TCP. В этой статье я буду использовать сокет, поэтому редактировать /etc/init.d/fcgiwrap нет необходимости.


  • Настройка сайта в nginx
    В данном примере используется конфигурация сайта, отличная от других примеров, которые можно найти в интернете, поэтому будьте внимательны.
    Имя сайта: shs.home
    Файл конфигурации: /etc/nginx/sites-available/shs.conf
    Директории сайта: html- и прочие файлы - /home/shs/htdocs, perl-скрипты - только в /home/shs/cgi-bin
    В блок server файла конфигурации необходимо добавить следующие строки:
    server {
        location ~ /cgi-bin/ {
            gzip off;
            root /home/shs;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass unix:/var/run/fcgiwrap.socket;
            fastcgi_index index.pl;
            fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
        }
    }
    

    Настройка закончена, перезапускаем nginx.

    Если не терпится проверить работоспособность, то вот вам простенький perl-скрипт, который показывает переменные окружения. Его необходимо поместить в /cgi-bin/, задать владельцами пользователя www-data, группу www-data и выставить права 0755.
    #!/usr/bin/perl
    
    print "Content-type: text/html\nPragma: no-cache\n\n";
    foreach (sort keys %ENV){
     print $_,'=',$ENV{$_},'
    '; } exit;
    Если вы настраивали геолокацию, то увидите там две переменные:
    HTTP_X_GEOIP_CITY_NAME=Moscow
    HTTP_X_GEOIP_COUNTRY_CODE=RU