You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Zeev Suraski c824ee09a0 Forgot to commit it... 25 years ago
TSRM sizeof(size_t) != sizeof(int) on 64-bit platforms. 25 years ago
Zend Kill a misleading warning which is intended for old code 25 years ago
build Build compat bridge for makes which support only the BSD .include command. 26 years ago
ext win32 sapi symbol export fixes 25 years ago
main win32 sapi symbol export fixes 25 years ago
pear add a Crypt_HCEMD5 class. This implements the same algorithm as the perl 25 years ago
regex Overall UNIX build system improvements: 26 years ago
sapi @- In CGI mode, $HTTP_SERVER_VARS now includes all of the environment variables 25 years ago
scripts A little script for converting source files to the Z_* macros 26 years ago
tests have you ever tried to run the regression tests with error_reporting=E_ALL ? 25 years ago
win32 install instructions for more webservers 25 years ago
CODING_STANDARDS As per andi, similar names are for legacy reasons only. 25 years ago
CREDITS - Update link 26 years ago
ChangeLog ChangeLog update 25 years ago
EXTENSIONS update my email. 25 years ago
FUNCTION_LIST.txt PHP 4.0 27 years ago
INSTALL Adding note about having to make install if you do not have apache already installed (IE there is no apache dir to copy httpd binary to) 26 years ago
LICENSE Sigh, that should be the last one :I 26 years ago
Makefile.in Change directory name from core to main. 26 years ago
NEWS Forgot to commit it... 25 years ago
README.BCMATH Moving README-BCMATH to README.BCMATH 26 years ago
README.CVS-RULES MAINTAINERS has become EXTENSIONS 26 years ago
README.EXT_SKEL support for short comments was added to ext_skel proto files 25 years ago
README.QNX PHP 4.0 27 years ago
README.SELF-CONTAINED-EXTENSIONS Add note about software requirements 26 years ago
README.Zeus Added extra help with library issues, and some performance tuning tips 25 years ago
TODO Add note 25 years ago
acconfig.h.in Wipe out acconfig.h.in and rewrite some checks to use PHP_ARG_ENABLE. 26 years ago
acinclude.m4 - Fix from Sascha. It fixes errorneous inclusion of bz2 25 years ago
apidoc-zend.txt Close bug #7325. Patches by djm@web.us.uu.net. 25 years ago
apidoc.txt I think that is the preferred way as of now 27 years ago
build-defs.h.in Changed lots of PHP 3 licence headers to PHP 4, mainly in .h files. 26 years ago
buildconf Build compat bridge for makes which support only the BSD .include command. 26 years ago
config.guess Upgrade to Libtool 1.3.5. 26 years ago
config.sub Upgrade to Libtool 1.3.5. 26 years ago
configure.in Moving --with-openssl to global configure, want OpenSSL for not just snmp 25 years ago
cvsclean "User interface" for removing all files which are ignored by cvs 26 years ago
dynlib.m4 LTLIBRARY_DEPENDENCIES might depend on variables defined in config_vars.mk, 25 years ago
footer PHP 4.0 27 years ago
genfiles Update to reflect the changes in the parsers/scanners 25 years ago
genif.sh Use [\]n to refer to the two characters '\' and 'n'. This is the correct way 26 years ago
header fix license version number in sample header 26 years ago
ltconfig Should be ok to use CC here 25 years ago
ltmain.sh Temporary fix for mac os x stuff. 25 years ago
makedist Don't distribute buildmk.stamp to the end user. Otherwise, buildcheck.sh 26 years ago
makerpm Small fix: Description still referred to package as PHP3. 26 years ago
php.ini-dist Adding textlimit and textsize parameters to MSSQL sections 25 years ago
php.ini-optimized Adding textlimit and textsize parameters to MSSQL sections 25 years ago
php.ini-recommended Adding textlimit and textsize parameters to MSSQL sections 25 years ago
php4.gif temporary icon for RPMs until Colin gets back and can make us a spiffy new one 27 years ago
php4.spec.in added workaround for Solaris PIC weirdness. 27 years ago
run-tests.php Test descriptions showed up blank, fixed. 25 years ago
snapshot Integration of -ng changes. Changes: 26 years ago
stamp-h.in # Fix ColorResolve bogosity 26 years ago
strtok_r.c Get Win32 to compile again 26 years ago
stub.c * archive-based convenience libraries completely replaced 27 years ago

README.Zeus

Using PHP4 with the Zeus Web Server
-----------------------------------

Zeus fully supports running PHP in combination with our webserver. A
significant improvement in PHP 4 is that you can now run PHP as an
ISAPI module, giving great performance benefits over traditional CGI
code.

Note that you will need to be running at least version 3.3.6 of the
webserver. If you are running an earlier version, please see our
website (http://www.zeus.com) for upgrade instructions.


To build the ISAPI version of PHP, start the configuration with:

./configure --with-zeus=/usr/local/zeus

Obviously, replace /usr/local/zeus with the location of where you have
installed Zeus on your machine. For PHP to build successfully, you
need to have 3.3.6 already installed, because the code relies on the
presence of header files provided with the latest version.

You may have to adjust the environment variable LDFLAGS and EXTRA_LIBS
in order to link in extra libraries. This depends on the platform on
which you are building and also on the compiler used (see below). A
standard GNU/Linux install with GCC should build fine with no changes.


Configuring the webserver
-------------------------

After running 'make' and 'make install', you will have a 'libphp4.so'
file. Copy this file into a directory reserved for ISAPI
binaries. Now, perform the following steps for each virtual server
that you wish to run PHP on:

1) On the Admin server, go to 'edit server->path mapping'
2) Add an alias to the directory with libphp4.so in it, mapped to
/isapi/ (or a location of your choice). Make sure you set the alias
type to ISAPI.
3) Click 'update'
4) Add a handler for file extension 'php' to be run by /isapi/libphp4.so
5) Click 'update', then go back to the previous page.
6) Click on the 'module configuration' button, ensure that ISAPI
support is ticked.
7) Click on the ISAPI link. At the bottom of the page, click the
checkbox for running ISAPI extensions 'out of process'.
8) Click 'update'. Then restart the virtual server. Done!


Troubleshooting
---------------

*) Why does the compile fail at Zend/zend-scanner-cc.cc
or Zend/zend-parser.c ?

These source files are auto-generated from the corresponding .y files.
The default distribution of PHP contains pre-generated versions of these
files that have caused problems for some people. The simplest solution is
to delete the files. They will then be rebuilt correctly. You must have the
following GNU tools to do this:

bison 1.28 or later
flex 2.5.4 or later

*) Why does my PHP library fail to load?

After configuring Zeus, if you get a '502 Bad Gateway' error when
accessing a PHP page, there are problems loading the PHP
library. Check the error log ($ZEUSHOME/web/log/errors) for errors.

Failing to load the PHP ISAPI module is likely to be due to unresolved
symbols in the module. A way to check for this is to visit our support
page at http://support.zeus.com/faq/entries/isapi_error.html and run
the program there on your libphp4.so. It will list any unresolved
symbols.

*) My libphp4.so has unresolved symbols. How do I fix this?

You must ensure that the PHP build process links in the appropriate
libraries that contain these symbols! The libraries required will
depend on the platform you are running PHP on.

You may need to set one or two environment variables before running
the 'configure' program to set up PHP; LDFLAGS and EXTRA_LIBS. Make
sure that you also export these variables to the build process.
(Type 'export LDFLAGS EXTRA_LIBS' in the shell to do this.)

If you are using 3rd party tools and libraries which are installed
in non-standard locations, you may need to set the environment
variable LD_LIBRARY_PATH to point to the library's location, prior
to running the Zeus Web Server. For example, if you have compiled
external MySQL support, and mysql is installed in /usr/local/mysql,
you should set LD_LIBRARY_PATH to '/usr/local/mysql/lib/mysql'
and then 'export LD_LIBRARY_PATH'. For convenience, you should add
this to the 'start-zeus' script provided.

On Linux, you can also tell the dynamic linker where to find the
libraries, by adding '/usr/local/mysql/lib/mysql' to the file
/etc/ld.so.conf - after editting this file, run 'ldconfig' as root,
to use the changes.


Specific examples:

Solaris + gcc:
Ensure you run ./configure with the `--enable-libgcc' parameter. You
may need to set LDFLAGS to '-L/usr/local/egcs/lib' (path depends on
your gcc installation)

FreeBSD 4:
Some people may find they need to run ./configure with the
'--enable-libgcc' compile option too.


Performance issues
==================

To make PHP run fast under Zeus, check the following points:

1) Run PHP as an ISAPI module, not a CGI - compile it with the --with-zeus=...
flag!

2) Tune the ISAPI runner to your required workload. There are several
tuneables that can be given. These are set by adding the appropriate
lines to the $ZEUSHOME/web/global.cfg file. Changes to this file will only
be picked up after the web server is restarted (run stop-zeus ; start-zeus)

tuning!modules!isapi!external!maxthreads xxx

- Sets the maximum number of threads that the ISAPI runner will spawn. If
further PHP page requests arrive, they will be queued until a current
page is finished. For busy websites, we suggest increasing this value
(defaults to 16). Replace the 'xxx' in the above line with the required
number of threads. Note that the threads are equally shared between
ISAPI extensions and filters, so if you want to handle 100 concurrent
PHP page requests, set this tuneable to 200.

tuning!modules!isapi!external!minthreads xxx

- Sets the minimum number of threads. Idle threads will be kept in a pool,
which avoids costly thread creation/deletion.


For more information and help with Zeus, please visit our website:
http://support.zeus.com