Annotation of embedaddon/php/README.Zeus, revision 1.1
1.1 ! misho 1: Using PHP 5 with the Zeus Web Server
! 2: -----------------------------------
! 3:
! 4: Zeus fully supports running PHP in combination with our
! 5: webserver. There are three different interfaces that can be used to
! 6: enable PHP:
! 7:
! 8: * CGI
! 9: * ISAPI
! 10: * FastCGI
! 11:
! 12: Of the three, we recommend using FastCGI, which has been tested and
! 13: benchmarked as providing the best performance and reliability.
! 14:
! 15: Full details of how to install PHP are available from our
! 16: website, at:
! 17:
! 18: http://support.zeus.com/products/php.html
! 19:
! 20: If you have any problems, please check the support site for more
! 21: up-to-date information and advice.
! 22:
! 23:
! 24: Quick guide to installing CGI/FastCGI with Zeus
! 25: -----------------------------------------------
! 26:
! 27: Step 1 - Compile PHP as FastCGI.
! 28:
! 29: Compile as follows:
! 30: ./configure --enable-fastcgi
! 31: make
! 32:
! 33: Note that PHP has many options to the configure script -
! 34: e.g. --with-mysql. You will probably want to select your usual options
! 35: before compiling; the above is just a bare minimum, for illustration.
! 36:
! 37: After compilation finishes, you will be left with an executable
! 38: program called 'php'. Copy this into your document root, under a
! 39: dedicated FastCGI directory (e.g. $DOCROOT/fcgi-bin/php)
! 40:
! 41:
! 42: Step 2 - configure Zeus
! 43:
! 44: Four stages:
! 45: - enable FastCGI
! 46: - configure FastCGI
! 47: - setup alias for FastCGI
! 48: - setup alias for PHP
! 49:
! 50: 1) Using the admin server, go to the 'module configuration' page for
! 51: your virtual server, and ensure that 'fastcgi' is enabled (select the
! 52: tickbox to the left).
! 53:
! 54: 2) While we can run FastCGI's locally, there are known problems with
! 55: some OS's (specifically, the communication between web server and
! 56: FastCGI happens over a unix domain socket, and some OS's have trouble
! 57: sustaining high connection rates over these sockets). So instead, we
! 58: are going to set up the PHP FastCGI to run 'remotely' over localhost
! 59: (this uses TCP sockets, which do not suffer this problem). Go to the
! 60: 'fastcgi configuration' page, and under 'add remote fastcgi':
! 61: Add Remote FastCGI
! 62: Docroot path /fcgi-bin/php
! 63: Remote machine localhost:8002
! 64: The first entry is where you saved PHP, above.
! 65: The second entry is localhost:<any unused port>
! 66: We will start the FastCGI listening on this port shortly.
! 67: Click 'update' to commit these changes.
! 68:
! 69: 3) Go to the path mapping module and add an alias for FastCGI:
! 70: Add Alias
! 71: Docroot path /fcgi-bin
! 72: Filesystem directory /path/to/docroot/fcgi-bin
! 73: Alias type fastcgi
! 74: Click 'update' to commit these changes
! 75:
! 76: 4) Also on the path mapping module, add a handler for PHP:
! 77: Add handler
! 78: File extension php
! 79: Handler /fcgi-bin/php
! 80: Click 'update' to commit these changes
! 81:
! 82: Finally restart your virtual server for these changes to take effect.
! 83:
! 84:
! 85: Step 3 - start PHP as a FastCGI runner
! 86:
! 87: When you start PHP, it will pre-fork a given number of child processes
! 88: to handle incoming PHP requests. Each process will handle a given
! 89: number of requests before exiting (and being replaced by a newly
! 90: forked process). You can control these two parameters by setting the
! 91: following environment variables BEFORE starting the FastCGI runner:
! 92:
! 93: PHP_FCGI_CHILDREN - the number of child processes to pre-fork. This
! 94: variable MUST be set, if not then the PHP will not run as a FastCGI.
! 95: We recommend a value of 8 for a fairly busy site. If you have many,
! 96: long-running PHP scripts, then you may need to increase this further.
! 97:
! 98: PHP_FCGI_MAX_REQUESTS - the number of requests each PHP child process
! 99: handles before exiting. If not set, defaults to 500.
! 100:
! 101: To start the FastCGI runner, execute '$ZEUSHOME/web/bin/fcgirunner
! 102: 8002 $DOCROOT/fcgi-bin/php'. Substitute the appropriate values for
! 103: $ZEUSHOME and $DOCROOT; also substitute for 8002 the port you chose,
! 104: above.
! 105:
! 106: To stop the runner (e.g. to experiment with the above environment
! 107: variables) you will need to manually stop and running PHP
! 108: processes. (Use 'ps' and 'kill'). As it is PHP which is forking lots
! 109: of children and not the runner, Zeus unfortunately cannot keep track
! 110: of what processes are running, sorry. A typical command line may look
! 111: like 'ps -efl | grep $DOCROOT/fcgi-bin/php | grep -v grep | awk
! 112: '{print $4}' | xargs kill'
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>