Nginx модуль perl

Nginx модуль perl

Сегодня мы рассмотрим с Вами как установить поддержку перл модулей для Nginx. Благодаря nginx вы можете реализовать богатый функционал для Ваших веб сервисов.
Итак, для начала нужно установить FCGI библиотеки для Perl. Предполагается что nginx у вас уже установлен.

 apt-get install libfcgi-perl

Дальше качаем wraper и скрипт для его запуска:

 sudo su
 wget https://nginxlibrary.com/downloads/perl-fcgi/fastcgi-wrapper -O /usr/bin/fastcgi-wrapper.pl
 wget https://nginxlibrary.com/downloads/perl-fcgi/perl-fcgi -O /etc/init.d/perl-fcgi

Выставляем правильные права доступа на файлы (делаем их исполняемыми):

chmod +x /usr/bin/fastcgi-wrapper.pl
 chmod +x /etc/init.d/perl-fcgi

Init.d скрипт нужно немного подредактировать:
поменять su — на sudo -u
убрать -c из строки выполнения
Для этого выполните следующую команду в bash^

 sed -i -e 's/su\ -/sudo\ -u/g' -e '/sudo/s/-c\ //g' /etc/init.d/perl-fcgi

Ставим на загрузку и запускаем перловый сервер:

update-rc.d perl-fcgi defaults
 /etc/init.d/perl-fcgi start

По умолчанию сервер perl-fcgi запустится на 8999 порту. Конечно это лучше проверить:

netstat -anp |grep -i perl

Дальше нужно научить Nginx проксировать запросы в perl. Добавляем вот такие строки в файл с конфигурацией виртуального хоста Nginx.

location ~ \.pl$ {
 try_files $uri =404;
 gzip off;
 fastcgi_pass 127.0.0.1:8999;
 fastcgi_index index.pl;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 }

Теперь наш Nginx умеет работать с perl.
Можно выполнить проверку конфигурации nginx и перезапустить его, чтобы изменения вступили в силу:
nginx -t

/etc/init.d/nginx restart

Для проверки можно созддать файл info.pl в корневом каталоге сайта и открыть этот скрипт в браузере.

sudo touch /var/www/html/info.pl
 sudo nano /var/www/html/info.pl
#!/usr/bin/perl
 # test.cgi by Bill Weinman [https://bw.org/]
 # Copyright 1995-2008 The BearHeart Group, LLC
 # Free Software: Use and distribution under the same terms as perl.
use strict;
 use warnings;
 use CGI;
print "Content-type: text/html\n\n";
 print "Hello, world!";

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *