Site Tools


software:perl:fastcgi

This is an old revision of the document!


Perl fastcgi daemon

Nginx, в отличии от lighttpd не умеет сам выполнять perl скрипты, а готовых fcgi демонов для этого не было в 2009 году, когда я перешёл на nginx. Что сейчас - не знаю, perl у меня для генератора статистики и работает без проблем.
Демон не моя разработка, я нашёл несколько готовых вариантов, доработал их немного, добавил rc.d скрипт для FreeBSD. В коде демона есть отсылки к оригиналам.
Работа chroot не проверялась, остальное вроде работает.
Часть не реализованных в демоне опций выполняется стартовым скриптом (chroot, смена пользователя и группы), часть не реализована (смена владельца и группы на сокете).

Стартовый скрипт: perl-fcgi (на FreeBSD расположить в /usr/local/etc/rc.d)
Демон: perl-fcgi.pl (на FreeBSD расположить в /usr/local/etc/ - можно поменять в стартовом скрипте, см выше)
Лицензия: BSD

Пример настроек

В rc.conf для FreeBSD добавляем:

perl_fcgi_enable="YES"
perl_fcgi_pidfile="/var/run/perl-fcgi.pid"
perl_fcgi_user="www"
perl_fcgi_group="www"
perl_fcgi_chdir="/"
perl_fcgi_chroot=""
# perl_fcgi_socket="127.0.0.1:53676"
perl_fcgi_socket="/var/run/perl-fcgi.sock"
perl_fcgi_socketbacklog="100"
perl_fcgi_socketmode="1777"
perl_fcgi_children="2"
perl_fcgi_childrentimeout="10"
perl_fcgi_max_requests="100"
perl_fcgi_path_env="/bin:/usr/bin"
  • enable - разрешить запуск при загрузке
  • user - имя пользователя под которым выполнять демона и скрипты
  • group - группа под которыми выполнять демона и скрипты
  • chdir - текущая директория для демона
  • chroot - корневая директория для демона
  • socket - unix сокет - путь или ip:port - для работы fcgi
  • socketbacklog - размер очереди входящих соединений, только для сетевых сокетов
  • socketmode - права доступа к сокету, только для unix сокета
  • children - количество дочерних процессов для выполнения скриптов
  • childrentimeout - максимальное время выполнения скрипта
  • max_requests - максимальное количество запросов обработанных одним дочерним процессом
  • path_env - перезаписать переменную окружения PATH
software/perl/fastcgi.1432167288.txt.gz · Last modified: 2015/05/21 00:14 by root