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 [2015/05/20 18:36]
root
software:perl:fastcgi [2022/02/05 04:02] (current)
root
Line 1: Line 1:
 ====== Perl fastcgi daemon ====== ====== 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>
  
-**Стартовый скрипт**: [[http://netlab.linkpc.net/download/software/perl/fastcgi/perl-fcgi|perl-fcgi]] (на FreeBSD расположить в /usr/local/etc/rc.d) \\+---- 
 + 
 +Демон не моя разработка, я нашёл несколько готовых вариантов, доработал их немного, добавил 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/ - можно поменять в стартовом скрипте, см выше)\\ **Демон**: [[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]]
  
-Поставил nginx вместо lighttpd и долго мучался с подключением perl. 
-Не нашёл ничего чтобы работало демоном для перла по fast-cgi. 
-Зато было две модификации перлового скрипта, который как раз и работал по fast-cgi. 
-Пришлось самому его дописывать и делать обёртку стартового скрипта. 
-chroot не тестировал, но работать должно, потому что за основу брался рабочий скрипт от spawn-fcgi из соседней ветки: [url=http://www.netlab.linkpc.net/forum/index.php?topic=6.0]http://www.netlab.linkpc.net/forum/index.php?topic=6.0[/url] 
  
  
-Пример настроек в rc.conf для FreeBSD:+===== Пример настроек ===== 
 +В rc.conf для FreeBSD добавляем:
 <code>perl_fcgi_enable="YES" <code>perl_fcgi_enable="YES"
 perl_fcgi_pidfile="/var/run/perl-fcgi.pid" perl_fcgi_pidfile="/var/run/perl-fcgi.pid"
Line 29: Line 38:
 perl_fcgi_max_requests="100" perl_fcgi_max_requests="100"
 perl_fcgi_path_env="/bin:/usr/bin"</code> 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)
  
  
-Демонический скрипт perl-fcgi.pl (ложить в /usr/local/etc/ - можно поменять в стартовом скрипте, см выше): +{{tag>software freebsd perl deprecated mysoft}}
- +
- +
- +
-Постарался проследить историю развития скрипта, может что то и напутал. +
-Версию с более продвинутой логикой внутри мне не удалось заставить работать, поэтому я взял версию немного по проще, судя по описанию она не возвращает сообщений об ошибках в скриптах.+
  
-В коде видно часть не реализованных опций - часть из них реализуется стартовым скриптом (chroot, смена пользователя и группы), часть нет (смена владельца и группы на сокете). 
software/perl/fastcgi.1432147004.txt.gz · Last modified: 2015/05/20 18:36 by root