FastNetMon

Thursday 18 November 2010

Сборка spawn-fcgi 1.6.3 из исходников

Update:
В Debian Squeeze все ок и пересборка не требуется, версия новая:
spawn-fcgi -v
spawn-fcgi v1.6.3 (ipv6) - spawns FastCGI processes
Build-Date: Sep 24 2009 18:52:51

Менеджер процессов, который идет в комплекте с lighttpd в Lenny довольно малофункциональный - он умеет форкать лишь несколько тушек PHP, используя лишь встроенный механизм PHP (PHP_FCGI_CHILDREN), который не особенно надежен. Чтобы добавить поддержку полноценных отдельных процессов (в каждом из которых, в свою очередь может быть несколько тушек самого PHP, посредством выше упомянутого PHP_FCGI_CHILDREN) нужно собрать новый spawn-fcgid из исходников.

Вот данные старого:
spawn-fcgi -v
spawn-fcgi-1.4.19 - spawns fastcgi processes

spawn-fcgi -?
spawn-fcgi v1.4.19 - spawns fastcgi processes

Options:
-f fcgiapp filename of the fcgi-application
-a addr bind to ip address
-p port bind to tcp-port
-s path bind to unix-domain socket
-C childs (PHP only) numbers of childs to spawn (default 5)
-P path name of PID-file for spawed process
-n no fork (for daemontools)
-v show version
-h show this help
(root only)
-c dir chroot to directory
-u user change to user-id
-g group change to group-id


Собираем новый:
cd /usr/src
wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
tar -xf spawn-fcgi-1.6.3.tar.gz
cd spawn-fcgi-1.6.3
./configure --prefix=/opt/spawn-fcgi
make install

Вуаля:
/opt/spawn-fcgi/bin/spawn-fcgi -?
Usage: spawn-fcgi [options] [-- fcgiapp [fcgi app arguments]]

spawn-fcgi v1.6.3 (ipv6) - spawns FastCGI processes

Options:
-f path filename of the fcgi-application (deprecated; ignored if
is given; needs /bin/sh)
-d directory chdir to directory before spawning
-a address bind to IPv4/IPv6 address (defaults to 0.0.0.0)
-p port bind to TCP-port
-s path bind to Unix domain socket
-M mode change Unix domain socket mode
-C children (PHP only) numbers of childs to spawn (default: not setting
the PHP_FCGI_CHILDREN environment variable - PHP defaults to 0)
-F children number of children to fork (default 1)
-P path name of PID-file for spawned process (ignored in no-fork mode)
-n no fork (for daemontools)
-v show version
-?, -h show this help
(root only)
-c directory chroot to directory
-S create socket before chroot() (default is to create the socket
in the chroot)
-u user change to user-id
-g group change to group-id (default: primary group of user if -u
is given)
-U user change Unix domain socket owner to user-id
-G group change Unix domain socket group to group-id

То есть, теперь ключиком -F можно задать число тушек.

Вот пример запуска PHP для работы в режиме FastCGI режиме (-C рекомендуется в районе 2х штук, -F подстраивается в зависимости от количества свободной памяти):
/opt/spawn-fcgi/bin/spawn-fcgi -U www-data -G www-data -p 9001 -F 2 -C 3 -f php-cgi

No comments :

Post a Comment

Note: only a member of this blog may post a comment.