Site Tools


software:perl:fastcgi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
software:perl:fastcgi [2022/02/04 18:36]
– removed - external edit (Unknown date) 127.0.0.1
software:perl:fastcgi [2022/02/05 04:02] (current)
root
Line 1: Line 1:
 +====== Perl fastcgi daemon ======
 +Nginx, в отличии от lighttpd не умеет сам выполнять perl скрипты, а готовых fcgi демонов для этого не было в 2009 году, когда я перешёл на nginx.\\
 +
 +----
 +
 +<note important>Сейчас, в 2018 я перешёл на [[https://github.com/gnosek/fcgiwrap|fcgiwrap]]. Настраивается предельно просто.</note>\\
 +Так же хорошо работает uWSGI, инструкции по настройке: [[http://vladimir-stupin.blogspot.nl/2014/08/nginx-php5-fpm-uwsgi.html|Настройка nginx, php5-fpm и uwsgi]] и [[http://uwsgi-docs.readthedocs.io/en/latest/CGI.html|Running CGI scripts on uWSGI]]. Главное не забыть в конфиге nginx <code>uwsgi_modifier1 9;</code>
 +
 +----
 +
 +Демон не моя разработка, я нашёл несколько готовых вариантов, доработал их немного, добавил rc.d скрипт для FreeBSD. В коде демона есть отсылки к оригиналам.\\
 +Работа chroot не проверялась, остальное вроде работает.\\
 +Часть не реализованных в демоне опций выполняется стартовым скриптом (chroot, смена пользователя и группы), часть не реализована (смена владельца и группы на сокете).\\
 +
 +**Стартовый скрипт**: [[http://netlab.linkpc.net/download/software/perl/fastcgi/perl-fcgi|perl-fcgi]] (на FreeBSD расположить в /usr/local/etc/rc.d)\\
 +**Демон**: [[http://netlab.linkpc.net/download/software/perl/fastcgi/perl-fcgi.pl|perl-fcgi.pl]] (на FreeBSD расположить в /usr/local/etc/ - можно поменять в стартовом скрипте, см выше)\\
 +**Лицензия**: BSD\\
 +
 +**Более продвинутый вариант**: [[https://gitorious.org/perl-fpm/perl-fpm/|perl-fpm от NiTr0]]\\
 +**Обсуждение на форуме**: [[http://forum.nag.ru/forum/index.php?showtopic=83021|forum.nag.ru]]
 +
 +
 +
 +===== Пример настроек =====
 +В rc.conf для FreeBSD добавляем:
 +<code>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"</code>
 +  * **enable** - разрешить запуск при загрузке
 +  * **user** - имя пользователя под которым выполнять демона и скрипты
 +  * **group** - группа под которыми выполнять демона и скрипты
 +  * **chdir** - текущая директория для демона
 +  * **chroot** - корневая директория для демона
 +  * **socket** - unix сокет - путь или ip:port - для работы fcgi
 +  * **socketbacklog** - размер очереди входящих соединений, только для сетевых сокетов
 +  * **socketmode** - права доступа к сокету, только для unix сокета
 +  * **children** - количество дочерних процессов для выполнения скриптов
 +  * **childrentimeout** - максимальное время выполнения скрипта
 +  * **max_requests** - максимальное количество запросов обработанных одним дочерним процессом
 +  * **path_env** - перезаписать переменную окружения PATH
 +
 +
 +===== Параметры командной строки демона =====
 +  * **-d** <directory> - chdir to directory before spawning (default /)
 +  * **-s** <address/path> - unix socket or tcp address:port
 +  * **-sb** <size> - socket backlog size (default 10)
 +  * **-M** <mode> - change Unix domain socket mode (default 0777)
 +  * **-F** <children> - number of children to fork (default 2)
 +  * **-Ft** <timeout> - children process timeout (default 30)
 +  * **-Fm** <num> - children process max requests (default 100)
 +  * **-P** <path> - name of PID-file for spawned process
 +  * **-e** <path> - set new PATH environment (default /bin:/usr/bin)
 +
 +
 +{{tag>software freebsd perl deprecated mysoft}}
  
software/perl/fastcgi.txt · Last modified: 2022/02/05 04:02 by root