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!";