Fastcgi-php-starter-for-freebsd » History » Revision 9
Revision 8 (davojan, 2006-05-27 11:39) → Revision 9/14 (davojan, 2006-05-27 11:56)
= Handy External Spawning FastCGI PHP Processes in FreeBSD = The script attached should be very handy for FreeBSD users. This is rc.d script to spawn FastCGI PHP processes. It is based on [source:tags/lighttpd-1.4.8/doc/spawn-php.sh spawn-php.sh] from `doc/` directory in the lighttpd sources. == Install == Just copy [attachment:fastcgi-php.sh fastcgi-php.sh] to `/usr/local/etc/rc.d/`. Then {{{ #!ShellExample # cd /usr/local/etc/rc.d/ # chown root:wheel fastcgi-php.sh # chmod 544 fastcgi-php.sh # mkdir /var/run/fcgiphp # chown www:www /var/run/fcgiphp }}} You should replace `www:www` in the last line with your user:group which FastCGI will run under (see `fcgiphp_user` and `fcgiphp_group` in configuration below). == Configure == Here are configuration parameters with their default values, which you can change in `/etc/rc.conf`: {{{ #!sh fcgiphp_enable="NO" # enable FastCGI+PHP fcgiphp_bin_path="/usr/local/bin/php" # absolute path to the PHP binary fcgiphp_user="www" # switch to user fcgiphp_group="www" # switch to group fcgiphp_children="10" # number of PHP childs to spawn fcgiphp_port="8002" # bind to tcp-port on localhost fcgiphp_socket="/tmp/php-fastcgi.sock" # bind to unix domain socket fcgiphp_env="SHELL PATH USER" # allowed environment variables separated by spaces fcgiphp_max_requests="500" # number of request server by a single php-process until is will be restarted fcgiphp_addr="localhost" # adresses where PHP should access server connections from }}} To make script workable you must adjust only one thing: {{{ #!sh fcgiphp_enable="YES" }}} Note, that `socket` has more priority than `port`. If you want to bind to TCP-port you must unset socket parameter: {{{ #!sh fcgiphp_socket="" fcgiphp_port="8002" }}} == Control == Now you can: {{{ #!ShellExample # /usr/local/etc/rc.d/fastcgi-php.sh start Starting fcgiphp. # /usr/local/etc/rc.d/fastcgi-php.sh stop Stopping fcgiphp. # /usr/local/etc/rc.d/fastcgi-php.sh restart Stopping fcgiphp. Starting fcgiphp. }}} == Compatibility == The script was tested only under FreeBSD 6.0, but it should run under any modern FreeBSD system.