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
Last revisionBoth sides next revision
software:perl:fastcgi [2022/02/04 18:36]
– removed - external edit (Unknown date) 127.0.0.1
software:perl:fastcgi [2022/02/05 03:59]
root
Line 1: Line 1:
 +{{tag>software freebsd perl deprecated mysoft}}
 +
 +====== 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)
 +
  
software/perl/fastcgi.txt · Last modified: 2022/02/05 04:02 by root