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 [2015/05/20 18:35]
root
software:perl:fastcgi [2022/02/05 03:59]
root
Line 1: Line 1:
 +{{tag>software freebsd perl deprecated mysoft}}
 +
 ====== 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) \\ +----
-**Демон**: [[http://netlab.linkpc.net/download/software/perl/fastcgi/perl-fcgi.pl|perl-fcgi.pl]]\\+
  
 +Демон не моя разработка, я нашёл несколько готовых вариантов, доработал их немного, добавил rc.d скрипт для FreeBSD. В коде демона есть отсылки к оригиналам.\\
 +Работа chroot не проверялась, остальное вроде работает.\\
 +Часть не реализованных в демоне опций выполняется стартовым скриптом (chroot, смена пользователя и группы), часть не реализована (смена владельца и группы на сокете).\\
  
-Поставил nginx вместо lighttpd и долго мучался с подключением perl+**Стартовый скрипт**: [[http://netlab.linkpc.net/download/software/perl/fastcgi/perl-fcgi|perl-fcgi]] (на FreeBSD расположить в /usr/local/etc/rc.d)\\ 
-Не нашёл ничего чтобы работало демоном для перла по fast-cgi. +**Демон**: [[http://netlab.linkpc.net/download/software/perl/fastcgi/perl-fcgi.pl|perl-fcgi.pl]] (на FreeBSD расположить в /usr/local/etc/ - можно поменять в стартовом скриптесм выше)\\ 
-Зато было две модификации перлового скрипта, который как раз и работал по fast-cgi. +**Лицензия**BSD\\
-Пришлось самому его дописывать и делать обёртку стартового скрипта. +
-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]+
  
 +**Более продвинутый вариант**: [[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:+ 
 + 
 +===== Пример настроек ===== 
 +В 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 40:
 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/ - можно поменять в стартовом скрипте, см выше): 
- 
- 
- 
-Постарался проследить историю развития скрипта, может что то и напутал. 
-Версию с более продвинутой логикой внутри мне не удалось заставить работать, поэтому я взял версию немного по проще, судя по описанию она не возвращает сообщений об ошибках в скриптах. 
- 
-В коде видно часть не реализованных опций - часть из них реализуется стартовым скриптом (chroot, смена пользователя и группы), часть нет (смена владельца и группы на сокете). 
software/perl/fastcgi.txt · Last modified: 2022/02/05 04:02 by root