]> granicus.if.org Git - php/commitdiff
- The documentation team has re-wroten the installation part of the manual.
authorAndi Gutmans <andi@php.net>
Tue, 10 Aug 2004 05:36:12 +0000 (05:36 +0000)
committerAndi Gutmans <andi@php.net>
Tue, 10 Aug 2004 05:36:12 +0000 (05:36 +0000)
INSTALL
NEWS
win32/install.txt

diff --git a/INSTALL b/INSTALL
index 5a9a4f07aa40be1fe88c9873fd64839d2f6de746..7775bf7594b238ff9e2792b6e6764e8e30eb649a 100644 (file)
--- a/INSTALL
+++ b/INSTALL
-Installation Instructions for PHP 5
------------------------------------
 
-STOP!
+Installing PHP
+     _________________________________________________________________
+
+   Table of Contents
+   1. General Installation Considerations
+   2. Installation on Mac OS X
+
+        Using Packages
+        Compiling for OS X Server
+        Compiling for MacOS X Client
+
+   3. Installation on Unix systems
+
+        Gentoo installation notes
+        HP-UX specific installation notes
+        OpenBSD installation notes
+        Solaris specific installation tips
+        Apache 1.3.x on Unix systems
+        Apache 2.0 on Unix systems
+        Caudium
+        fhttpd related notes
+        Sun, iPlanet and Netscape servers on Sun Solaris
+        CGI and commandline setups
+
+   4. Problems?
+
+        Read the FAQ
+        Other problems
+        Bug reports
+
+   5. Runtime Configuration
+
+        The configuration file
+        How to change configuration settings
+     _________________________________________________________________
+
+Chapter 1. General Installation Considerations
+
+   Before starting the installation, first you need to know what do you
+   want to use PHP for. There are three main fields you can use PHP, as
+   described in the What can PHP do? section:
+
+     * Server-side scripting
+     * Command line scripting
+     * Client-side GUI applications
+
+   For the first and most common form, you need three things: PHP itself,
+   a web server and a web browser. You probably already have a web
+   browser, and depending on your operating system setup, you may also
+   have a web server (e.g. Apache on Linux and MacOS X; IIS on Windows).
+   You may also rent webspace at a company. This way, you don't need to
+   set up anything on your own, only write your PHP scripts, upload it to
+   the server you rent, and see the results in your browser.
+
+   While setting up the server and PHP on your own, you have two choices
+   for the method of connecting PHP to the server. For many servers PHP
+   has a direct module interface (also called SAPI). These servers
+   include Apache, Microsoft Internet Information Server, Netscape and
+   iPlanet servers. Many other servers have support for ISAPI, the
+   Microsoft module interface (OmniHTTPd for example). If PHP has no
+   module support for your web server, you can always use it as a CGI or
+   FastCGI processor. This means you set up your server to use the CGI
+   executable of PHP to process all PHP file requests on the server.
+
+   If you are also interested to use PHP for command line scripting (e.g.
+   write scripts autogenerating some images for you offline, or
+   processing text files depending on some arguments you pass to them),
+   you always need the command line executable. For more information,
+   read the section about writing command line PHP applications. In this
+   case, you need no server and no browser.
+
+   With PHP you can also write desktop GUI applications using the PHP-GTK
+   extension. This is a completely different approach than writing web
+   pages, as you do not output any HTML, but manage windows and objects
+   within them. For more information about PHP-GTK, please visit the site
+   dedicated to this extension. PHP-GTK is not included in the official
+   PHP distribution.
+
+   From now on, this section deals with setting up PHP for web servers on
+   Unix and Windows with server module interfaces and CGI executables.
+   You will also find information on the command line executable in the
+   following sections.
+
+   PHP source code and binary distributions for Windows can be found at
+   http://www.php.net/downloads.php. We recommend you to choose a mirror
+   nearest to you for downloading the distributions.
+     _________________________________________________________________
+
+Chapter 2. Installation on Mac OS X
+
+   This section contains notes and hints specific to installing PHP on
+   Mac OS X. There are two slightly different versions of Mac OS X,
+   Client and Server, our manual deals with installing PHP on both
+   systems. Note that PHP is not available for MacOS 9 and earlier
+   versions.
+     _________________________________________________________________
+
+Using Packages
+
+   There are a few pre-packaged and pre-compiled versions of PHP for Mac
+   OS X. This can help in setting up a standard configuration, but if you
+   need to have a different set of features (such as a secure server, or
+   a different database driver), you may need to build PHP and/or your
+   web server yourself. If you are unfamiliar with building and compiling
+   your own software, it's worth checking whether somebody has already
+   built a packaged version of PHP with the features you need.
+     _________________________________________________________________
+
+Compiling for OS X Server
+
+   Mac OS X Server install. 
+
+    1. Get the latest distributions of Apache and PHP.
+    2. Untar them, and run the configure program on Apache like so.
+
+./configure --exec-prefix=/usr \
+--localstatedir=/var \
+--mandir=/usr/share/man \
+--libexecdir=/System/Library/Apache/Modules \
+--iconsdir=/System/Library/Apache/Icons \
+--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
+--enable-shared=max \
+--enable-module=most \
+--target=apache
+
+    3. If you want the compiler to do some optimization, you may also
+       want to add this line:
+
+setenv OPTIM=-O2
+
+    4. Next, go to the PHP 4 source directory and configure it.
+
+./configure --prefix=/usr \
+    --sysconfdir=/etc \
+    --localstatedir=/var \
+    --mandir=/usr/share/man \
+    --with-xml \
+    --with-apache=/src/apache_1.3.12
+
+       If you have any other additions (MySQL, GD, etc.), be sure to add
+       them here. For the --with-apache string, put in the path to your
+       apache source directory, for example /src/apache_1.3.12.
+    5. Type make and make install. This will add a directory to your
+       Apache source directory under src/modules/php4.
+    6. Now, reconfigure Apache to build in PHP 4.
+
+./configure --exec-prefix=/usr \
+--localstatedir=/var \
+--mandir=/usr/share/man \
+--libexecdir=/System/Library/Apache/Modules \
+--iconsdir=/System/Library/Apache/Icons \
+--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
+--enable-shared=max \
+--enable-module=most \
+--target=apache \
+--activate-module=src/modules/php4/libphp4.a
+
+       You may get a message telling you that libmodphp4.a is out of
+       date. If so, go to the src/modules/php4 directory inside your
+       Apache source directory and run this command: ranlib libmodphp4.a.
+       Then go back to the root of the Apache source directory and run
+       the above configure command again. That'll bring the link table up
+       to date. Run make and make install again.
+    7. Copy and rename the php.ini-dist file to your bin directory from
+       your PHP 4 source directory: cp php.ini-dist
+       /usr/local/bin/php.ini or (if your don't have a local directory)
+       cp php.ini-dist /usr/bin/php.ini.
+     _________________________________________________________________
+
+Compiling for MacOS X Client
+
+   The following instructions will help you install a PHP module for the
+   Apache web server included in MacOS X. This version includes support
+   for the MySQL and PostgreSQL databases. These instructions are
+   graciously provided by Marc Liyanage.
+
+   Warning
+
+   Be careful when you do this, you could screw up your Apache web
+   server!
+
+   Do this to install:
+
+    1. Open a terminal window.
+    2. Type wget
+       http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz,
+       wait for the download to finish.
+    3. Type gunzip libphp4.so.gz.
+    4. Type sudo apxs -i -a -n php4 libphp4.so
+    5. Now type sudo open -a TextEdit /etc/httpd/httpd.conf. TextEdit
+       will open with the web server configuration file. Locate these two
+       lines towards the end of the file: (Use the Find command)
+
+#AddType application/x-httpd-php .php
+#AddType application/x-httpd-php-source .phps
+
+       Remove the two hash marks (#), then save the file and quit
+       TextEdit.
+    6. Finally, type sudo apachectl graceful to restart the web server.
+
+   PHP should now be up and running. You can test it by dropping a file
+   into your Sites folder which is called test.php. Into that file, write
+   this line: <?php phpinfo() ?>.
+
+   Now open up 127.0.0.1/~your_username/test.php in your web browser. You
+   should see a status table with information about the PHP module.
+     _________________________________________________________________
+
+Chapter 3. Installation on Unix systems
+
+   This section will guide you through the general configuration and
+   installation of PHP on Unix systems. Be sure to investigate any
+   sections specific to your platform or web server before you begin the
+   process.
+
+   As our manual outlines in the General Installation Considerations
+   section, we are mainly dealing with web centric setups of PHP in this
+   section, although we will cover setting up PHP for command line usage
+   as well.
+
+   There are several ways to install PHP for the Unix platform, either
+   with a compile and configure process, or through various pre-packaged
+   methods. This documentation is mainly focused around the process of
+   compiling and configuring PHP. Many Unix like systems have some sort
+   of package installation system. This can assist in setting up a
+   standard configuration, but if you need to have a different set of
+   features (such as a secure server, or a different database driver),
+   you may need to build PHP and/or your webserver. If you are unfamiliar
+   with building and compiling your own software, it is worth checking to
+   see whether somebody has already built a packaged version of PHP with
+   the features you need.
+
+   Prerequisite knowledge and software for compiling:
+
+     * Basic Unix skills (being able to operate "make" and a C compiler)
+     * An ANSI C compiler
+     * flex
+     * bison
+     * A web server
+     * Any module specific components (such as gd, pdf libs, etc.)
+
+   The initial PHP setup and configuration process is controlled by the
+   use of the commandline options of the configure script. Our manual
+   documents the different options separately. You will find the core
+   options in the appendix, while the different extension specific
+   options are descibed on the reference pages.
+
+   When PHP is configured, you are ready to build the module and/or
+   executables. The command make should take care of this. If it fails
+   and you can't figure out why, see the Problems section.
+     _________________________________________________________________
+
+Gentoo installation notes
+
+   This section contains notes and hints specific to installing PHP on
+   Gentoo Linux.
+     _________________________________________________________________
+
+Using Portage (emerge)
+
+   While you can just download the PHP source and compile it youself,
+   using Gentoo's packaging system is the simplest and cleanest method of
+   installing PHP. If you are not familiar with building software on
+   Linux, this is the way to go.
+
+   If you have built your Gentoo system so far, you are probably used to
+   Portage already. Installing Apache and PHP is no different than the
+   other system tools.
+
+   The first decision you need to make is whether you want to install
+   Apache 1.3.x or Apache 2.x. While both can be used with PHP, the steps
+   given bellow will use Apache 1.3.x. Another thing to consider is
+   whether your local Portage tree is up to date. If you have not updated
+   it recently, you need to run emerge sync before anything else. This
+   way, you will be using the most recent stable version of Apache and
+   PHP.
+
+   Now that everything is in place, you can use the following example to
+   install Apache and PHP:
+
+   Example 3-1. Gentoo Install Example with Apache 1.3
+# emerge \<apache-2
+# USE="-*" emerge php mod_php
+# ebuild /var/db/pkg/dev-php/mod_php-<your PHP version>/mod_php-<your PHP versi
+on>.ebuild config
+# nano /etc/conf.d/apache
+  Add "-D PHP4" to APACHE_OPTS
+
+# rc-update add apache default
+# /etc/init.d/apache start
+
+   You can read more about emerge in the excellent Portage Manual
+   provided on the Gentoo website.
+
+   If you need to use Apache 2, you can simply use emerge apache in the
+   last example.
+     _________________________________________________________________
+
+Better control on configuration
+
+   In the last section, PHP was emerged without any activated modules. As
+   of this writing, the only module activated by default with Portage is
+   XML which is needed by PEAR. This may not be what you want and you
+   will soon discover that you need more activated modules, like MySQL,
+   gettext, GD, etc.
+
+   When you compile PHP from source yourself, you need to activate
+   modules via the configure command. With Gentoo, you can simply provide
+   USE flags which will be passed to the configure script automatically.
+   To see which USE flags to use with emerge, you can try:
+
+   Example 3-2. Getting the list of valid USE flags
+# USE="-*" emerge -pv php
+
+[ebuild  N    ] dev-php/php-4.3.6-r1  -X -berkdb -crypt -curl -debug -doc
+-fdftk -firebird -flash -freetds -gd -gd-external -gdbm -gmp -hardenedphp
+-imap -informix -ipv6 -java -jpeg -kerberos -ldap -mcal -memlimit -mssql
+-mysql -ncurses -nls -oci8 -odbc -pam -pdflib -png -postgres -qt -readline
+-snmp -spell -ssl -tiff -truetype -xml2 -yaz  3,876 kB
+
+   As you can see from the last output, PHP considers a lot of USE flags.
+   Look at them closely and choose what you need. If you choose a flag
+   and you do not have the proper librairies, Portage will compile them
+   for you. It is a good idea to use emerge -pv again to see what Portage
+   will compile in accordance to your USE flags. As an example, if you do
+   not have X installed and you choose to include X in the USE flags,
+   Portage will compile X prior to PHP, which can take a couple of hours.
+
+   If you choose to compile PHP with MySQL, cURL and GD support, the
+   command will look something like this:
+
+   Example 3-3. Install PHP with USE flags
+   # USE="-* curl mysql gd" emerge php mod_php
+
+   As in the last example, do not forget to emerge php as well as
+   mod_php. php is responsible for the command line version of PHP as
+   mod_php is for the Apache module version of PHP.
+     _________________________________________________________________
+
+Common Problems
+
+     * If you see the PHP source instead of the result the script should
+       produce, you have probably forgot to edit /etc/conf.d/apache.
+       Apache needs to be started with the -D PHP4 flag. To see if the
+       flag is present, you should be able to see it when using ps ax |
+       grep apache while Apache is running.
+     * Due to slotting problems, you might end up with more than one
+       version of PHP installed on your system. If this is the case, you
+       need to unmerge the old versions manually by using emerge unmerge
+       mod_php-<old version>.
+     * If you cannot emerge PHP because of Java, try putting -* in front
+       of your USE flags like in the above examples.
+     * If you are having problems configuring Apache and PHP, you can
+       always search the Gentoo Forums. Try searching with the keywords
+       "Apache PHP".
+     _________________________________________________________________
+
+HP-UX specific installation notes
+
+   This section contains notes and hints specific to installing PHP on
+   HP-UX systems. (Contributed by paul_mckay at clearwater-it dot co dot
+   uk).
+
+     Note: These tips were written for PHP 4.0.4 and Apache 1.3.9.
+
+    1. You need gzip, download a binary distribution from
+       http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd
+       -10.20.depot.Z uncompress the file and install using swinstall.
+    2. You need gcc, download a binary distribution from
+       http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-
+       10.20.depot.gz. uncompress this file and install gcc using
+       swinstall.
+    3. You need the GNU binutils, you can download a binary distribution
+       from
+       http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.
+       9.1-sd-10.20.depot.gz. uncompress this file and install binutils
+       using swinstall.
+    4. You now need bison, you can download a binary distribution from
+       http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-1
+       0.20.depot.gz, install as above.
+    5. You now need flex, you need to download the source from one of the
+       http://www.gnu.org mirrors. It is in the non-gnu directory of the
+       ftp site. Download the file, gunzip, then tar -xvf it. Go into the
+       newly created flex directory and run ./configure, followed by
+       make, and then make install.
+       If you have errors here, it's probably because gcc etc. are not in
+       your PATH so add them to your PATH.
+    6. Download the PHP and apache sources.
+    7. gunzip and tar -xvf them. We need to hack a couple of files so
+       that they can compile OK.
+    8. Firstly the configure file needs to be hacked because it seems to
+       lose track of the fact that you are a hpux machine, there will be
+       a better way of doing this but a cheap and cheerful hack is to put
+       lt_target=hpux10.20 on line 47286 of the configure script.
+    9. Next, the Apache GuessOS file needs to be hacked. Under
+       apache_1.3.9/src/helpers change line 89 from echo
+       "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0 to: echo
+       "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0
+   10. You cannot install PHP as a shared object under HP-UX so you must
+       compile it as a static, just follow the instructions at the Apache
+       page.
+   11. PHP and Apache should have compiled OK, but Apache won't start.
+       you need to create a new user for Apache, e.g. www, or apache. You
+       then change lines 252 and 253 of the conf/httpd.conf in Apache so
+       that instead of
+
+User nobody
+Group nogroup
+
+       you have something like
+
+User www
+Group sys
+
+       This is because you can't run Apache as nobody under hp-ux. Apache
+       and PHP should then work.
+     _________________________________________________________________
+
+OpenBSD installation notes
+
+   This section contains notes and hints specific to installing PHP on
+   OpenBSD 3.4.
+     _________________________________________________________________
+
+Using Binary Packages
+
+   Using binary packages to install PHP on OpenBSD is the recommended and
+   simplest method. The core package has been separated from the various
+   modules, and each can be installed and removed independently from the
+   others. The files you need can be found on your OpenBSD CD or on the
+   FTP site.
+
+   The main package you need to install is php4-core-4.3.3.tgz, which
+   contains the basic engine (plus gettext and iconv). Next, take a look
+   at the module packages, such as php4-mysql-4.3.3.tgz or
+   php4-imap-4.3.3.tgz. You need to use the phpxs command to activate and
+   deactivate these modules in your php.ini.
+
+   Example 3-4. OpenBSD Package Install Example
+# pkg_add php4-core-4.3.3.tgz
+# /usr/local/sbin/phpxs -s
+# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
+  (add in mysql)
+# pkg_add php4-mysql-4.3.3.tgz
+# /usr/local/sbin/phpxs -a mysql
+  (add in imap)
+# pkg_add php4-imap-4.3.3.tgz
+# /usr/local/sbin/phpxs -a imap
+  (remove mysql as a test)
+# pkg_delete php4-mysql-4.3.3
+# /usr/local/sbin/phpxs -r mysql
+  (install the PEAR libraries)
+# pkg_add php4-pear-4.3.3.tgz
+
+   Read the packages(7) manual page for more information about binary
+   packages on OpenBSD.
+     _________________________________________________________________
+
+Using Ports
+
+   You can also compile up PHP from source using the ports tree. However,
+   this is only recommended for users familiar with OpenBSD. The PHP 4
+   port is split into two sub-directories: core and extensions. The
+   extensions directory generates sub-packages for all of the supported
+   PHP modules. If you find you do not want to create some of these
+   modules, use the no_* FLAVOR. For example, to skip building the imap
+   module, set the FLAVOR to no_imap.
+     _________________________________________________________________
+
+Common Problems
+
+     * The default install of Apache runs inside a chroot(2) jail, which
+       will restrict PHP scripts to accessing files under /var/www. You
+       will therefore need to create a /var/www/tmp directory for PHP
+       session files to be stored, or use an alternative session backend.
+       In addition, database sockets need to be placed inside the jail or
+       listen on the localhost interface. If you use network functions,
+       some files from /etc such as /etc/resolv.conf and /etc/services
+       will need to be moved into /var/www/etc. The OpenBSD PEAR package
+       automatically installs into the correct chroot directories, so no
+       special modification is needed there. More information on the
+       OpenBSD Apache is available in the OpenBSD FAQ.
+     * The OpenBSD 3.4 package for the gd extension requires XFree86 to
+       be installed. If you do not wish to use some of the font features
+       that require X11, install the php4-gd-4.3.3-no_x11.tgz package
+       instead.
+     _________________________________________________________________
+
+Older Releases
+
+   Older releases of OpenBSD used the FLAVORS system to compile up a
+   statically linked PHP. Since it is hard to generate binary packages
+   using this method, it is now deprecated. You can still use the old
+   stable ports trees if you wish, but they are unsupported by the
+   OpenBSD team. If you have any comments about this, the current
+   maintainer for the port is Anil Madhavapeddy (avsm at openbsd dot
+   org).
+     _________________________________________________________________
+
+Solaris specific installation tips
+
+   This section contains notes and hints specific to installing PHP on
+   Solaris systems.
+     _________________________________________________________________
+
+Required software
+
+   Solaris installs often lack C compilers and their related tools. Read
+   this FAQ for information on why using GNU versions for some of these
+   tools is necessary. The required software is as follows:
+
+     * gcc (recommended, other C compilers may work)
+     * make
+     * flex
+     * bison
+     * m4
+     * autoconf
+     * automake
+     * perl
+     * gzip
+     * tar
+     * GNU sed
+
+   In addition, you will need to install (and possibly compile) any
+   additional software specific to your configuration, such as Oracle or
+   MySQL.
+     _________________________________________________________________
+
+Using Packages
+
+   You can simplify the Solaris install process by using pkgadd to
+   install most of your needed components.
+     _________________________________________________________________
+
+Apache 1.3.x on Unix systems
+
+   This section contains notes and hints specific to Apache installs of
+   PHP on Unix platforms. We also have instructions and notes for Apache
+   2 on a separate page.
+
+   You can select arguments to add to the configure on line 10 below from
+   the list of core configure options and from extension specific options
+   described at the respective places in the manual. The version numbers
+   have been omitted here, to ensure the instructions are not incorrect.
+   You will need to replace the 'xxx' here with the correct values from
+   your files.
+
+   Example 3-5. Installation Instructions (Apache Shared Module Version)
+   for PHP 
+1.  gunzip apache_xxx.tar.gz
+2.  tar -xvf apache_xxx.tar
+3.  gunzip php-xxx.tar.gz
+4.  tar -xvf php-xxx.tar
+5.  cd apache_xxx
+6.  ./configure --prefix=/www --enable-module=so
+7.  make
+8.  make install
+9.  cd ../php-xxx
+
+10. Now, configure your PHP.  This is where you customize your PHP
+    with various options, like which extensions will be enabled.  Do a
+    ./configure --help for a list of available options.  In our example
+    we'll do a simple configure with Apache 1 and MySQL support.  Your
+    path to apxs may differ from our example.
+
+      ./configure --with-mysql --with-apxs=/www/bin/apxs
+
+11. make
+12. make install
+
+    If you decide to change your configure options after installation,
+    you only need to repeat the last three steps. You only need to
+    restart apache for the new module to take effect. A recompile of
+    Apache is not needed.
+
+    Note that unless told otherwise, 'make install' will also install PEAR,
+    various PHP tools such as phpize, install the PHP CLI, and more.
+
+13. Setup your php.ini file:
+
+      cp php.ini-dist /usr/local/lib/php.ini
+
+    You may edit your .ini file to set PHP options.  If you prefer your
+    php.ini in another location, use --with-config-file-path=/some/path in
+    step 10.
 
-Before going any further, please remember you are going to find more 
-up to date instructions in the online manual, located here:
+    If you instead choose php.ini-recommended, be certain to read the list
+    of changes within, as they affect how PHP behaves.
+
+14. Edit your httpd.conf to load the PHP module.  The path on the right hand
+    side of the LoadModule statement must point to the path of the PHP
+    module on your system.  The make install from above may have already
+    added this for you, but be sure to check.
 
-http://www.php.net/manual/en/install.apache.php
+    For PHP 4:
 
-For Apache 2, instructions and up-to-date information regarding its
-support status, is available here:
+      LoadModule php4_module libexec/libphp4.so
 
-http://www.php.net/manual/en/install.apache2.php
+    For PHP 5:
 
-It is strongly recommended that you read the manual page before going
-further. However, for the impatient, here is a quick set of steps that 
-will build PHP as (first) a dynamic Apache module (DSO) for Apache 1.3.x 
-with MySQL support and then a static module.  A more verbose explanation follows.  
-
-For installing PHP on other web servers, refer to one of the following
-files:
-
-    sapi/aolserver/README
-    sapi/pi3web/README
-    sapi/servlet/README
-    sapi/thttpd/README
-    README.Zeus
-
-Some notes:
-
-1: Only install either the static module or the dynamic one.  Do not
-   install both.  
-
-2:  If you are recompiling PHP to add new extensions or upgrading
-    something like GD, remove the config.cache file before you re-run 
-    configure.
-
-3:  If you are on Linux and have installed shared libraries, make
-    sure the location of these shared libraries are listed in your 
-    /etc/ld.so.conf file.  For example, if you have:
-
-       /usr/local/lib/mysql/libmysqlclient.so
-
-    Make sure /etc/ld.so.conf contains:
-
-      /usr/local/lib/mysql
-
-    Then run ldconfig.
-
-If you want both PHP 3 and 4 modules in the same Apache server, check the
-bottom of this file for instructions.
-
-INSTALLATION WITH THE ZEUS WEB SERVER:
---Please see the 'README.Zeus' file included in this distribution
-
-
-QUICK INSTALL (DSO)
-
-For this to work your Apache httpd must have mod_so enabled.
-Check using httpd -l.  You should see something like:
-
-Compiled-in modules:
-  http_core.c
-  mod_so.c
-
-Chances are you will see a lot more modules than these two. That's ok, 
-as long as mod_so.c shows up you can proceed with the following steps:
-
-$ gunzip -c php-4.x.y.tar.gz | tar xf -
-$ cd php-4.x.y
-$ ./configure --with-mysql --with-apxs
-$ make
-$ make install
-
-If you get an error telling you that the apxs script could not be found,
-look for it on your system and if you find it, provide the full path to it
-as: --with-apxs=/path/to/apxs
-
-Make sure you specify the version of apxs that is actually installed on
-your system and NOT the one that is in the apache source tarball.
-
-Next you must copy php.ini-dist to the appropriate place (normally
-/usr/local/lib/php.ini) and edit it as necessary to set PHP options.
-
-The only thing left to do is to edit your httpd.conf file and make sure the
-PHP 4 mime type is there and uncommented.  You need a line that looks like
-this:
-
-   AddType application/x-httpd-php .php
-
-Then restart your server (apachectl restart) and you should be able to
-serve up PHP files now.  Make a test file called test.php and put some 
-PHP tags in it.  Like <?phpinfo()?>, for example.
-
-
-QUICK INSTALL (Static)
-
-$ gunzip -c apache_1.3.x.tar.gz | tar xf -
-$ cd apache_1.3.x
-$ ./configure
-$ cd ..
-
-$ gunzip -c php-4.x.y.tar.gz | tar xf -
-$ cd php-4.x.y
-$ ./configure --with-mysql --with-apache=../apache_1.3.x
-$ make
-$ make install
-
-$ cd ../apache_1.3.x
-$ ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
- (The above line is correct!  Yes, we know libphp5.a does not exist at this
-  stage.  It isn't supposed to.  It will be created.)
-$ make
- (you should now have an httpd binary which you can copy to your Apache bin dir if
-  is is your first install then you need to "make install" as well)
-$ cd ../php-4.x.y
-$ cp php.ini-dist /usr/local/lib/php.ini
-You can edit /usr/local/lib/php.ini file to set PHP options.
-Edit your httpd.conf or srm.conf file and add:
-  AddType application/x-httpd-php .php
-
-
-VERBOSE INSTALL
-
-Chances are you are reading this because the quick install steps above
-did not work for you.  If this is the case, congratulations, you are
-among the elite few that actually reads documentation.  It really is
-not a difficult install and once you have done it once you will fly 
-through it.
+      LoadModule php5_module libexec/libphp5.so
 
-Installing PHP can be done in four simple steps:
+15. And in the AddModule section of httpd.conf, somewhere under the
+    ClearModuleList, add this:
 
-1. Unpack your distribution file.  
+    For PHP 4:
 
-   You will have downloaded a file named something like php-4.x.y.tar.gz.
-   Unzip this file with a command like: gunzip php-4.x.y.tar.gz
+      AddModule mod_php4.c
 
-   Next you have to untar it with: tar -xvf php-4.x.y.tar
+    For PHP 5:
 
-   This will create a php-4.x.y directory.  cd into this new directory.
+      AddModule mod_php5.c
 
-2a. Configure PHP (Dynamic Module) - Skip to 2b if you wish to build
-    a static module
+16. Tell Apache to parse certain extensions as PHP.  For example,
+    let's have Apache parse the .php extension as PHP.  You could
+    have any extension(s) parse as PHP by simply adding more, with
+    each separated by a space.  We'll add .phtml to demonstrate.
 
-   You now have to choose the options you would like.  There are quite
-   a few of them.  To see a list, type: ./configure --help
+      AddType application/x-httpd-php .php .phtml
 
-   The only options that you are likely to want to use are the ones in
-   the last section entitled, "--enable and --with options recognized:"
+    It's also common to setup the .phps extension to show highlighted PHP
+    source, this can be done with:
 
-   A popular choice is to build the Apache module version.  In order to
-   build PHP as a dynamic module for Apache-1.3.x you have to first have
-   Apache installed.  Assuming Apache is already installed, make sure
-   the shared object module is enabled.  To check this, type: httpd -l
-   You should see something like:
+      AddType application/x-httpd-php-source .phps
 
-     Compiled-in modules:
-       http_core.c
-       mod_so.c
+17. Use your normal procedure for starting the Apache server. (You must
+    stop and restart the server, not just cause the server to reload by
+    using a HUP or USR1 signal.)
 
-   You will most likely have a lot more modules than what is shown here.
-   As long as mod_so.c shows up in the list, PHP should be happy.
+   Depending on your Apache install and Unix variant, there are many
+   possible ways to stop and restart the server. Below are some typical
+   lines used in restarting the server, for different apache/unix
+   installations. You should replace /path/to/ with the path to these
+   applications on your systems.
 
-   Now, type: ./configure --with-mysql --with-apxs
+   Example 3-6. Example commands for restarting Apache
+1. Several Linux and SysV variants:
+/etc/rc.d/init.d/httpd restart
 
-   If you get an error telling you that the apxs script could not be found,
-   look for it on your system and if you find it, provide the full path to it
-   as: --with-apxs=/path/to/apxs
+2. Using apachectl scripts:
+/path/to/apachectl stop
+/path/to/apachectl start
 
-   Make sure you specify the version of apxs that is actually installed on
-   your system and NOT the one that is in the apache source tarball.
-   
-   You might also want other flags on this configure line.  --with-mysql
-   is just an example.  
+3. httpdctl and httpsdctl (Using OpenSSL), similar to apachectl:
+/path/to/httpsdctl stop
+/path/to/httpsdctl start
 
-   There are a few things that can go wrong during this configure step.
-   The most common is that you have asked for an option and that the
-   configure script can not find the files required to enable this 
-   option in PHP.  Chances are you can provide the full path to the
-   base directory under which the related files were installed.  For
-   example, if you have installed the GD library in /opt/gd which means
-   that /opt/gd/include has your GD header files and /opt/gd/lib contains
-   your GD library files, you would use --with-gd=/opt/gd
+4. Using mod_ssl, or another SSL server, you may want to manually
+stop and start:
+/path/to/apachectl stop
+/path/to/apachectl startssl
 
-   Skip to step 3 for compilation and installation instructions.
+   The locations of the apachectl and http(s)dctl binaries often vary. If
+   your system has locate or whereis or which commands, these can assist
+   you in finding your server control programs.
 
-2b. Configure PHP (Static Module) - Skip if you performed 2a
+   Different examples of compiling PHP for apache are as follows:
 
-   You now have to choose the options you would like.  There are quite
-   a few of them.  To see a list, type: ./configure --help
+   ./configure --with-apxs --with-pgsql
+
+   This will create a libphp4.so shared library that is loaded into
+   Apache using a LoadModule line in Apache's httpd.conf file. The
+   PostgreSQL support is embedded into this libphp4.so library.
+
+   ./configure --with-apxs --with-pgsql=shared
+
+   This will create a libphp4.so shared library for Apache, but it will
+   also create a pgsql.so shared library that is loaded into PHP either
+   by using the extension directive in php.ini file or by loading it
+   explicitly in a script using the dl() function.
+
+   ./configure --with-apache=/path/to/apache_source --with-pgsql
+
+   This will create a libmodphp4.a library, a mod_php4.c and some
+   accompanying files and copy this into the src/modules/php4 directory
+   in the Apache source tree. Then you compile Apache using
+   --activate-module=src/modules/php4/libphp4.a and the Apache build
+   system will create libphp4.a and link it statically into the httpd
+   binary. The PostgreSQL support is included directly into this httpd
+   binary, so the final result here is a single httpd binary that
+   includes all of Apache and all of PHP.
+
+   ./configure --with-apache=/path/to/apache_source --with-pgsql=shared
+
+   Same as before, except instead of including PostgreSQL support
+   directly into the final httpd you will get a pgsql.so shared library
+   that you can load into PHP from either the php.ini file or directly
+   using dl().
+
+   When choosing to build PHP in different ways, you should consider the
+   advantages and drawbacks of each method. Building as a shared object
+   will mean that you can compile apache separately, and don't have to
+   recompile everything as you add to, or change, PHP. Building PHP into
+   apache (static method) means that PHP will load and run faster. For
+   more information, see the Apache webpage on DSO support.
+
+     Note: Apache's default httpd.conf currently ships with a section
+     that looks like this:
 
-   The only options that you are likely to want to use are the ones in
-   the last section entitled, "--enable and --with options recognized:"
+User nobody
+Group "#-1"
 
-   A popular choice is to build the Apache module version.  You need
-   to know where the source code directory for your Apache server is
-   located.  Then use an option like: --with-apache=/usr/local/src/apache
-   if that is your Apache source code directory.  If you only specify
-   --with-apache, then it will default to look for your Apache source 
-   in /usr/local/etc/httpd.
+     Unless you change that to "Group nogroup" or something like that
+     ("Group daemon" is also very common) PHP will not be able to open
+     files.
 
-   NOTE: The directory you specify should be the top-level of the
-   unpacked Apache (or Stronghold) distribution. The configure program
-   will automatically look for httpd.h in different directories under that
-   location depending on which version of Apache, including Stronghold,
-   you are running.
+     Note: Make sure you specify the installed version of apxs when
+     using --with-apxs=/path/to/apxs. You must NOT use the apxs version
+     that is in the apache sources but the one that is actually
+     installed on your system.
+     _________________________________________________________________
 
-   For MySQL support, since newer versions of MySQL installs its various
-   components under /usr/local, this is the default.  If you have
-   changed the location you can specify it with: --with-mysql=/opt/local
-   for example.  Otherwise just use: --with-mysql
+Apache 2.0 on Unix systems
 
-   *NOTE*  If you are using Apache 1.3b6 or later, you should run the 
-   Apache Configure script at least once before compiling PHP.  It 
-   doesn't matter how you have Apache configured at this point.
+   This section contains notes and hints specific to Apache 2.0 installs
+   of PHP on Unix systems.
 
-   Skip to step 3b at this point.
+   Warning
 
-3. Compile and install the files.  Simply type: make install
+   Do not use Apache 2.0.x and PHP in a production environment neither on
+   Unix nor on Windows. For information on why, read the following FAQ
+   entry
 
-3a.   Dynamic Module Installation
+   You are highly encouraged to take a look at the Apache Documentation
+   to get a basic understanding of the Apache 2.0 Server.
 
-   Nothing else is needed here.  Proceed to step 4a.
+     PHP and Apache 2.0.x compatibility notes: The following versions of
+     PHP are known to work with the most recent version of Apache 2.0.x:
 
-3b.   Static Module Installation
+     * PHP 4.3.0 or later available at http://www.php.net/downloads.php.
+     * the latest stable development version. Get the source code
+       http://snaps.php.net/php4-latest.tar.gz or download binaries for
+       Windows http://snaps.php.net/win32/php4-win32-latest.zip.
+     * a prerelease version downloadable from http://qa.php.net/.
+     * you have always the option to obtain PHP through anonymous CVS.
 
-   For the Apache module version this will copy the appropriate files
-   to the src/modules/php5 directory in your Apache distribution if
-   you are using Apache 1.3.x.  If you are still running Apache 1.2.x
-   these files will be copied directly to the main src directory.
+     These versions of PHP are compatible to Apache 2.0.40 and later.
 
-   For Apache 1.3b6 and later, you can use the new APACI configuration
-   mechanism.  To automatically build Apache with PHP support, use:
+     Apache 2.0 SAPI-support started with PHP 4.2.0. PHP 4.2.3 works
+     with Apache 2.0.39, don't use any other version of Apache with PHP
+     4.2.3. However, the recommended setup is to use PHP 4.3.0 or later
+     with the most recent version of Apache2.
 
-       cd apache_1.3.x
-       ./configure --prefix=/<path>/apache \
-                   --activate-module=src/modules/php5/libphp5.a
-       make
-       make install
+     All mentioned versions of PHP will work still with Apache 1.3.x.
 
-   If you do not wish to use this new configuration tool, the old
-   install procedure (src/Configure) will work fine.
+   Download the most recent version of Apache 2.0 and a fitting PHP
+   version from the above mentioned places. This quick guide covers only
+   the basics to get started with Apache 2.0 and PHP. For more
+   information read the Apache Documentation. The version numbers have
+   been omitted here, to ensure the instructions are not incorrect. You
+   will need to replace the 'NN' here with the correct values from your
+   files.
 
-   If you are using the old Apache ./Configure script, you will have to 
-   edit the Apache src/Configuration file manually.  If you do not have 
-   this file, copy Configuration.tmpl to Configuration.
+   Example 3-7. Installation Instructions (Apache 2 Shared Module
+   Version) 
+1.  gzip -d httpd-2_0_NN.tar.gz
+2.  tar xvf httpd-2_0_NN.tar
+3.  gunzip php-NN.tar.gz
+4.  tar -xvf php-NN.tar
+5.  cd httpd-2_0_NN
+6.  ./configure --enable-so
+7.  make
+8.  make install
 
-   For Apache 1.3.x add:
+    Now you have Apache 2.0.NN available under /usr/local/apache2,
+    configured with loadable module support and the standard MPM prefork.
+    To test the installation use your normal procedure for starting
+    the Apache server, e.g.:
+    /usr/local/apache2/bin/apachectl start
+    and stop the server to go on with the configuration for PHP:
+    /usr/local/apache2/bin/apachectl stop.
 
-      AddModule modules/php5/libphp5.a
+9.  cd ../php-NN
 
-   For Apache 1.3.x don't do anything else.  Just add this line and then
-   run "./Configure" followed by "make".
+10. Now, configure your PHP.  This is where you customize your PHP
+    with various options, like which extensions will be enabled.  Do a
+    ./configure --help for a list of available options.  In our example
+    we'll do a simple configure with Apache 2 and MySQL support.  Your
+    path to apxs may differ, in fact, the binary may even be named apxs2 on
+    your system.
 
-   For Apache 1.2.x add:
+      ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
 
-      Module php5_module mod_php5.o
+11. make
+12. make install
 
-   For Apache 1.2.x you will also have to look in the libphp5.module file,
-   which was copied to the src directory. The EXTRA_LIBS line in the Apache
-   Configuration file needs to be set to use the same libs as specified on
-   the LIBS line in libphp5.module. You also need to make sure to add
-   "-L." to the beginning of the EXTRA_LIBS line.
+    If you decide to change your configure options after installation,
+    you only need to repeat the last three steps. You only need to
+    restart apache for the new module to take effect. A recompile of
+    Apache is not needed.
 
-   So, as an example, your EXTRA_LIBS line might look like:
+    Note that unless told otherwise, 'make install' will also install PEAR,
+    various PHP tools such as phpize, install the PHP CLI, and more.
 
-       EXTRA_LIBS=-L. -lphp5 -lgdbm -ldb -L/usr/local/mysql/lib -lmysqlclient
+13. Setup your php.ini
 
-   NOTE: You should not enclose the EXTRA_LIBS line in double-quotes, as it
-   is in the libphp5.module file.
+    cp php.ini-dist /usr/local/lib/php.ini
 
-   Also, look at the RULE_WANTHSREGEX setting in the libphp5.module file 
-   and set the WANTHSREGEX directive accordingly in your Configuration file.
-   This last step applies to versions of Apache prior to 1.3b3.
+    You may edit your .ini file to set PHP options.  If you prefer having
+    php.ini in another location, use --with-config-file-path=/some/path in
+    step 10.
 
-   This is a bit of a hassle, but should serve as incentive to move to
-   Apache 1.3.x where this step has been eliminated.
+    If you instead choose php.ini-recommended, be certain to read the list
+    of changes within, as they affect how PHP behaves.
 
-   Once you are satisfied with your Configuration settings, type: ./Configure
-   If you get errors, chances are that you forgot a library or made a typo
-   somewhere.  Re-edit Configuration and try again.  If it goes well,
-   type: make
+14. Edit your httpd.conf to load the PHP module.  The path on the right hand
+    side of the LoadModule statement must point to the path of the PHP
+    module on your system.  The make install from above may have already
+    added this for you, but be sure to check.
 
-   Assuming it compiles without errors, proceed to step 4b.
+    For PHP 4:
 
-4a. Setting up the server. (Dynamic Module)
+      LoadModule php4_module libexec/libphp4.so
 
-   The make install command in step 3 should have done most of your
-   work for you.  It actually edits your httpd.conf file and tries to
-   enable the dynamic PHP module.  To verify this, look for a line that
-   looks like this:
+    For PHP 5:
 
       LoadModule php5_module libexec/libphp5.so
 
-   The actual path before the libphp5.so part might differ slightly.  This
-   is likely fine.  If you are paranoid you can examine the output from the
-   make install step to see where the libphp5.so file was actually put and
-   place the full path to this file on this LoadModule line.
-
-   If somewhere in your httpd.conf file you have a ClearModuleList line
-   then you also need this line:
+15. Tell Apache to parse certain extensions as PHP.  For example,
+    let's have Apache parse the .php extension as PHP.  You could
+    have any extension(s) parse as PHP by simply adding more, with
+    each separated by a space.  We'll add .phtml to demonstrate.
 
-      AddModule mod_php5.c
-
-   And finally you need to tell Apache which file extension should trigger
-   PHP.  You do this by creating a special mime type and associating it
-   with an extension.  We suggest using:
-
-      AddType application/x-httpd-php .php
-  
-   You are however free to use any extension you wish, including .html.
-
-   Note!  If a line has a # at the beginning, then it is commented out
-   and you need to remove the # for that line to take effect.
-
-   Finally you need to copy php.ini-dist to the appropriate place
-   (normally /usr/local/lib/php.ini) and edit if necessary.
+      AddType application/x-httpd-php .php .phtml
 
-   Once you have made these changes you should be ready to restart your
-   server and try it out.  Type: apachectl restart
-   
-4b. Setting up the server. (Static Module)
-   
-   You should now have a new httpd binary.  Shut down your existing server,
-   if you have one, and copy this new binary overtop of it.  Perhaps make
-   a backup of your previous one first.  Then edit your conf/httpd.conf file
-   and add the line:
-
-      AddType application/x-httpd-php .php
-
-   There is also an interesting feature which can be quite instructive and
-   helpful while debugging.  That is the option of having colour syntax
-   highlighting.  To enable this, add the following line:
+    It's also common to setup the .phps extension to show highlighted PHP
+    source, this can be done with:
 
       AddType application/x-httpd-php-source .phps
 
-   Any file ending in .phps will now be displayed with full colour syntax
-   highlighting instead of being executed.
-
-   Note that on some older server setups, the AddType lines are in the
-   conf/srm.conf file instead of conf/httpd.conf.
-
-   Note!  If a line has a # at the beginning, then it is commented out
-   and you need to remove the # for that line to take effect.
-
-   When you are finished making changes to your httpd.conf file, you need
-   to copy php.ini-dist to the appropriate place (normally
-   /usr/local/lib/php.ini) and edit if necessary. You can then
-   start up your server.
-
-5. Testing it all worked
-
-   Create a test file named test.php in your web tree somewhere and
-   put some test PHP tags in it.  <?phpinfo()?> is a good first test.
-   This tag tells PHP to do a braindump and tells you all sorts of things
-   about itself.  
-
-
-WHY DISABLING -fPIC WORKS ON LINUX
-
-    From: Martin v. Loewis <martin@loewis.home.cs.tu-berlin.de>
-    To: glibc-linux@ricardo.ecn.wfu.edu
-    Subject: Re: Shared library -shared vs. -fpic
-
-    [In reply to Kaz Kylheku <kaz@ashi.footprints.net>]
-
-    > PIC stands for Position-Independent Code. 
-
-    Correct.
-
-    > Code isn't position-independent (or ``relocatable'') cannot be
-    > loaded at an arbitrary address;
-
-    Wrong.
-
-    > it requires some references to be patched at load time.
-
-    Correct.
-
-    > Shared libraries need to be relocatable because it's not known
-    > beforehand what address they will be loaded at
-
-    Correct, depending on the meaning of "relocatable". PIC code typically
-    does not contain relocations; that's why its position-independent.
-
-    > Just because you don't specify -fPIC doesn't mean that the compiler
-    > won't emit position-independent code; the option prevents it from
-    > emitting position-dependent code in situations where it otherwise
-    > would.
-
-    Correct. However, a non-trivial shared library typically won't be
-    position-independent unless explicitly compiled with
-    -fPIC. Linux/glibc indeed does not require a shared library to be
-    position-independent; instead, it will perform the relocations in the
-    binary, even if they refer to code pages. As a result, those relocated
-    pages won't be shared across processes, anymore.
-
-    Regards,
-    Martin
-
-USING PHP 3 AND PHP 4 AS CONCURRENT APACHE MODULES
-
-   With some (newer) installations of Apache, it's possible to compile both
-   PHP 3 and PHP 4, and run them concurrently. 
-
-   Note, it's only really wise to do this if you need to use the PHP 3 engine
-   to maintain backwards compatibility. 
-   
-   To enable it, configure PHP 3 and PHP 4 to use APXS (--with-apxs) and the
-   necessary link extensions (--enable-versioning). Otherwise, all standard
-   installations instructions apply. For example:
-
-               $ ./configure \
-                               --with-apxs=/apache/bin/apxs \
-                               --enable-versioning \
-                               --with-mysql \
-
-
-
-
-
+16. Use your normal procedure for starting the Apache server, e.g.:
+
+      /usr/local/apache2/bin/apachectl start
+
+   Following the steps above you will have a running Apache 2.0 with
+   support for PHP as SAPI module. Of course there are many more
+   configuration options available for both, Apache and PHP. For more
+   information use ./configure --help in the corresponding source tree.
+   In case you wish to build a multithreaded version of Apache 2.0 you
+   must overwrite the standard MPM-Module prefork either with worker or
+   perchild. To do so append to your configure line in step 6 above
+   either the option --with-mpm=worker or --with-mpm=perchild. Take care
+   about the consequences and understand what you are doing. For more
+   information read the Apache documentation about the MPM-Modules.
+
+     Note: To build a multithreaded version of Apache your system must
+     support threads. This also implies to build PHP with experimental
+     Zend Thread Safety (ZTS). Therefore not all extensions might be
+     available. The recommended setup is to build Apache with the
+     standard prefork MPM-Module.
+     _________________________________________________________________
+
+Caudium
+
+   PHP 4 can be built as a Pike module for the Caudium webserver. Note
+   that this is not supported with PHP 3. Follow the simple instructions
+   below to install PHP 4 for Caudium.
+
+   Example 3-8. Caudium Installation Instructions
+1.  Make sure you have Caudium installed prior to attempting to
+    install PHP 4. For PHP 4 to work correctly, you will need Pike
+    7.0.268 or newer. For the sake of this example we assume that
+    Caudium is installed in /opt/caudium/server/.
+2.  Change directory to php-x.y.z (where x.y.z is the version number).
+3.  ./configure --with-caudium=/opt/caudium/server
+4.  make
+5.  make install
+6.  Restart Caudium if it's currently running.
+7.  Log into the graphical configuration interface and go to the
+    virtual server where you want to add PHP 4 support.
+8.  Click Add Module and locate and then add the PHP 4 Script Support module.
+9.  If the documentation says that the 'PHP 4 interpreter isn't
+    available', make sure that you restarted the server. If you did
+    check /opt/caudium/logs/debug/default.1 for any errors related to
+    <filename>PHP4.so</filename>. Also make sure that
+    <filename>caudium/server/lib/[pike-version]/PHP4.so</filename>
+    is present.
+10. Configure the PHP Script Support module if needed.
+
+   You can of course compile your Caudium module with support for the
+   various extensions available in PHP 4. See the reference pages for
+   extension specific configure options.
+
+     Note: When compiling PHP 4 with MySQL support you must make sure
+     that the normal MySQL client code is used. Otherwise there might be
+     conflicts if your Pike already has MySQL support. You do this by
+     specifying a MySQL install directory the --with-mysql option.
+     _________________________________________________________________
+
+fhttpd related notes
+
+   To build PHP as an fhttpd module, answer "yes" to "Build as an fhttpd
+   module?" (the --with-fhttpd=DIR option to configure) and specify the
+   fhttpd source base directory. The default directory is
+   /usr/local/src/fhttpd. If you are running fhttpd, building PHP as a
+   module will give better performance, more control and remote execution
+   capability.
+
+     Note: Support for fhttpd is no longer available as of PHP 4.3.0.
+     _________________________________________________________________
+
+Sun, iPlanet and Netscape servers on Sun Solaris
+
+   This section contains notes and hints specific to Sun Java System Web
+   Server, Sun ONE Web Server, iPlanet and Netscape server installs of
+   PHP on Sun Solaris.
+
+   From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to
+   generate custom directory listings and error pages. Additional
+   functions for Apache compatibility are also available. For support in
+   current webservers read the note about subrequests.
+
+   You can find more information about setting up PHP for the Netscape
+   Enterprise Server (NES) here:
+   http://benoit.noss.free.fr/php/install-php4.html
+
+   To build PHP with Sun JSWS/Sun ONE WS/iPlanet/Netscape webservers,
+   enter the proper install directory for the --with-nsapi=[DIR] option.
+   The default directory is usually /opt/netscape/suitespot/. Please also
+   read /php-xxx-version/sapi/nsapi/nsapi-readme.txt.
+
+    1. Install the following packages from http://www.sunfreeware.com/ or
+       another download site:
+
+       autoconf-2.13
+       automake-1.4
+       bison-1_25-sol26-sparc-local
+       flex-2_5_4a-sol26-sparc-local
+       gcc-2_95_2-sol26-sparc-local
+       gzip-1.2.4-sol26-sparc-local
+       m4-1_4-sol26-sparc-local
+       make-3_76_1-sol26-sparc-local
+       mysql-3.23.24-beta (if you want mysql support)
+       perl-5_005_03-sol26-sparc-local
+       tar-1.13 (GNU tar)
+    2. Make sure your path includes the proper directories
+       PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin and make it
+       available to your system export PATH.
+    3. gunzip php-x.x.x.tar.gz (if you have a .gz dist, otherwise go to
+       4).
+    4. tar xvf php-x.x.x.tar
+    5. Change to your extracted PHP directory: cd ../php-x.x.x
+    6. For the following step, make sure /opt/netscape/suitespot/ is
+       where your netscape server is installed. Otherwise, change to the
+       correct path and run:
+
+./configure --with-mysql=/usr/local/mysql \
+--with-nsapi=/opt/netscape/suitespot/ \
+--enable-libgcc
+
+    7. Run make followed by make install.
+
+   After performing the base install and reading the appropriate readme
+   file, you may need to perform some additional configuration steps.
+
+   Configuration Instructions for Sun/iPlanet/Netscape. Firstly you may
+   need to add some paths to the LD_LIBRARY_PATH environment for the
+   server to find all the shared libs. This can best done in the start
+   script for your webserver. The start script is often located in:
+   /path/to/server/https-servername/start. You may also need to edit the
+   configuration files that are located in:
+   /path/to/server/https-servername/config/.
+
+    1. Add the following line to mime.types (you can do that by the
+       administration server):
+
+type=magnus-internal/x-httpd-php exts=php
+
+    2. Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6)
+       and add the following, shlib will vary depending on your system,
+       it will be something like /opt/netscape/suitespot/bin/libphp4.so.
+       You should place the following lines after mime types init.
+
+Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/o
+pt/netscape/suitespot/bin/libphp4.so"
+Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php
+_ini="/path/to/php.ini"]
+
+       (PHP >= 4.3.3) The php_ini parameter is optional but with it you
+       can place your php.ini in your webserver config directory.
+    3. Configure the default object in obj.conf (for virtual server
+       classes [version 6.0+] in their vserver.obj.conf):
+
+<Object name="default">
+.
+.
+.
+.#NOTE this next line should happen after all 'ObjectType' and before all 'AddL
+og' lines
+Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inik
+ey=value ...]
+.
+.
+</Object>
+
+       (PHP >= 4.3.3) As additional parameters you can add some special
+       php.ini-values, for example you can set a
+       docroot="/path/to/docroot" specific to the context php4_execute is
+       called. For boolean ini-keys please use 0/1 as value, not
+       "On","Off",... (this will not work correctly), e.g.
+       zlib.output_compression=1 instead of zlib.output_compression="On"
+    4. This is only needed if you want to configure a directory that only
+       consists of PHP scripts (same like a cgi-bin directory):
+
+<Object name="x-httpd-php">
+ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
+Service fn=php4_execute [inikey=value inikey=value ...]
+</Object>
+
+       After that you can configure a directory in the Administration
+       server and assign it the style x-httpd-php. All files in it will
+       get executed as PHP. This is nice to hide PHP usage by renaming
+       files to .html.
+    5. Setup of authentication: PHP authentication cannot be used with
+       any other authentication. ALL AUTHENTICATION IS PASSED TO YOUR PHP
+       SCRIPT. To configure PHP Authentication for the entire server, add
+       the following line to your default object:
+
+<Object name="default">
+AuthTrans fn=php4_auth_trans
+.
+.
+.
+</Object>
+
+    6. To use PHP Authentication on a single directory, add the
+       following:
+
+<Object ppath="d:\path\to\authenticated\dir\*">
+AuthTrans fn=php4_auth_trans
+</Object>
+
+     Note: The stacksize that PHP uses depends on the configuration of
+     the webserver. If you get crashes with very large PHP scripts, it
+     is recommended to raise it with the Admin Server (in the section
+     "MAGNUS EDITOR").
+     _________________________________________________________________
+
+CGI environment and recommended modifications in php.ini
+
+   Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE
+   WS/iPlanet/Netscape is a multithreaded web server. Because of that all
+   requests are running in the same process space (the space of the
+   webserver itself) and this space has only one environment. If you want
+   to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the
+   correct way to try this in the old PHP 3.x way with getenv() or a
+   similar way (register globals to environment, $_ENV). You would only
+   get the environment of the running webserver without any valid CGI
+   variables!
+
+     Note: Why are there (invalid) CGI variables in the environment?
+
+     Answer: This is because you started the webserver process from the
+     admin server which runs the startup script of the webserver, you
+     wanted to start, as a CGI script (a CGI script inside of the admin
+     server!). This is why the environment of the started webserver has
+     some CGI environment variables in it. You can test this by starting
+     the webserver not from the administration server. Use the command
+     line as root user and start it manually - you will see there are no
+     CGI-like environment variables.
+
+   Simply change your scripts to get CGI variables in the correct way for
+   PHP 4.x by using the superglobal $_SERVER. If you have older scripts
+   which use $HTTP_HOST, etc., you should turn on register_globals in
+   php.ini and change the variable order too (important: remove "E" from
+   it, because you do not need the environment here):
+variables_order = "GPCS"
+register_globals = On
+     _________________________________________________________________
+
+Special use for error pages or self-made directory listings (PHP >= 4.3.3)
+
+   You can use PHP to generate the error pages for "404 Not Found" or
+   similar. Add the following line to the object in obj.conf for every
+   error page you want to overwrite:
+Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value ini
+key=value...]
+
+   where XXX is the HTTP error code. Please delete any other Error
+   directives which could interfere with yours. If you want to place a
+   page for all errors that could exist, leave the code parameter out.
+   Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].
+
+   Another possibility is to generate self-made directory listings. Just
+   create a PHP script which displays a directory listing and replace the
+   corresponding default Service line for
+   type="magnus-internal/directory" in obj.conf with the following:
+Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/scr
+ipt.php" [inikey=value inikey=value...]
+
+   For both error and directory listing pages the original URI and
+   translated URI are in the variables $_SERVER['PATH_INFO'] and
+   $_SERVER['PATH_TRANSLATED'].
+     _________________________________________________________________
+
+Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)
+
+   The NSAPI module now supports the nsapi_virtual() function (alias:
+   virtual()) to make subrequests on the webserver and insert the result
+   in the webpage. This function uses some undocumented features from the
+   NSAPI library. On Unix the module automatically looks for the needed
+   functions and uses them if available. If not, nsapi_virtual() is
+   disabled.
+
+     Note: But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!
+     _________________________________________________________________
+
+CGI and commandline setups
+
+   The default is to build PHP as a CGI program. This creates a
+   commandline interpreter, which can be used for CGI processing, or for
+   non-web-related PHP scripting. If you are running a web server PHP has
+   module support for, you should generally go for that solution for
+   performance reasons. However, the CGI version enables users to run
+   different PHP-enabled pages under different user-ids.
+
+   Warning
+
+   By using the CGI setup, your server is open to several possible
+   attacks. Please read our CGI security section to learn how to defend
+   yourself from those attacks.
+
+   As of PHP 4.3.0, some important additions have happened to PHP. A new
+   SAPI named CLI also exists and it has the same name as the CGI binary.
+   What is installed at {PREFIX}/bin/php depends on your configure line
+   and this is described in detail in the manual section named Using PHP
+   from the command line. For further details please read that section of
+   the manual.
+     _________________________________________________________________
+
+Testing
+
+   If you have built PHP as a CGI program, you may test your build by
+   typing make test. It is always a good idea to test your build. This
+   way you may catch a problem with PHP on your platform early instead of
+   having to struggle with it later.
+     _________________________________________________________________
+
+Benchmarking
+
+   If you have built PHP 3 as a CGI program, you may benchmark your build
+   by typing make bench. Note that if safe mode is on by default, the
+   benchmark may not be able to finish if it takes longer then the 30
+   seconds allowed. This is because the set_time_limit() can not be used
+   in safe mode. Use the max_execution_time configuration setting to
+   control this time for your own scripts. make bench ignores the
+   configuration file.
+
+     Note: make bench is only available for PHP 3.
+     _________________________________________________________________
+
+Using Variables
+
+   Some server supplied environment variables are not defined in the
+   current CGI/1.1 specification. Only the following variables are
+   defined there: AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE,
+   GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING,
+   REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD,
+   SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL, and
+   SERVER_SOFTWARE. Everything else should be treated as 'vendor
+   extensions'.
+     _________________________________________________________________
+
+Chapter 4. Problems?
+
+Read the FAQ
+
+   Some problems are more common than others. The most common ones are
+   listed in the PHP FAQ, part of this manual.
+     _________________________________________________________________
+
+Other problems
+
+   If you are still stuck, someone on the PHP installation mailing list
+   may be able to help you. You should check out the archive first, in
+   case someone already answered someone else who had the same problem as
+   you. The archives are available from the support page on
+   http://www.php.net/support.php. To subscribe to the PHP installation
+   mailing list, send an empty mail to
+   php-install-subscribe@lists.php.net. The mailing list address is
+   php-install@lists.php.net.
+
+   If you want to get help on the mailing list, please try to be precise
+   and give the necessary details about your environment (which operating
+   system, what PHP version, what web server, if you are running PHP as
+   CGI or a server module, safe mode, etc...), and preferably enough code
+   to make others able to reproduce and test your problem.
+     _________________________________________________________________
+
+Bug reports
+
+   If you think you have found a bug in PHP, please report it. The PHP
+   developers probably don't know about it, and unless you report it,
+   chances are it won't be fixed. You can report bugs using the
+   bug-tracking system at http://bugs.php.net/. Please do not send bug
+   reports in mailing list or personal letters. The bug system is also
+   suitable to submit feature requests.
+
+   Read the How to report a bug document before submitting any bug
+   reports!
+     _________________________________________________________________
+
+Chapter 5. Runtime Configuration
+
+The configuration file
+
+   The configuration file (called php3.ini in PHP 3, and simply php.ini
+   as of PHP 4) is read when PHP starts up. For the server module
+   versions of PHP, this happens only once when the web server is
+   started. For the CGI and CLI version, it happens on every invocation.
+
+   The default location of php.ini is a compile time option (see the FAQ
+   entry), but can be changed for the CGI and CLI version with the -c
+   command line switch, see the chapter about using PHP from the command
+   line. You can also use the environment variable PHPRC for an
+   additional path to search for a php.ini file.
+
+   If php-SAPI.ini exists (where SAPI is used SAPI, so the filename is
+   e.g. php-cli.ini or php-apache.ini), it's used instead of php.ini.
+
+     Note: The Apache web server changes the directory to root at
+     startup causing PHP to attempt to read php.ini from the root
+     filesystem if it exists.
+
+   The php.ini directives handled by extensions are documented
+   respectively on the pages of the extensions themselfs. The list of the
+   core directives is available in the appendix. Probably not all the PHP
+   directives are documented in the manual though. For a completel list
+   of directives available in your PHP version, please read your well
+   commented php.ini file. Alternatively, you may find the the latest
+   php.ini from CVS helpful too.
+
+   Example 5-1. php.ini example
+; any text on a line after an unquoted semicolon (;) is ignored
+[php] ; section markers (text within square brackets) are also ignored
+; Boolean values can be set to either:
+;    true, on, yes
+; or false, off, no, none
+register_globals = off
+track_errors = yes
+
+; you can enclose strings in double-quotes
+include_path = ".:/usr/local/lib/php"
+
+; backslashes are treated the same as any other character
+include_path = ".;c:\php\lib"
+     _________________________________________________________________
+
+How to change configuration settings
+
+Running PHP as an Apache module
+
+   When using PHP as an Apache module, you can also change the
+   configuration settings using directives in Apache configuration files
+   (e.g. httpd.conf) and .htaccess files. You will need "AllowOverride
+   Options" or "AllowOverride All" privileges to do so.
+
+   With PHP 4 and PHP 5, there are several Apache directives that allow
+   you to change the PHP configuration from within the Apache
+   configuration files. For a listing of which directives are
+   PHP_INI_ALL, PHP_INI_PERDIR, or PHP_INI_SYSTEM, have a look at the
+   table found within the ini_set() documentation.
+
+     Note: With PHP 3, there are Apache directives that correspond to
+     each configuration setting in the php3.ini name, except the name is
+     prefixed by "php3_".
+
+   php_value name value
+          Sets the value of the specified directive. Can be used only
+          with PHP_INI_ALL and PHP_INI_PERDIR type directives. To clear a
+          previously set value use none as the value.
+
+     Note: Don't use php_value to set boolean values. php_flag (see
+     below) should be used instead.
+
+   php_flag name on|off
+          Used to set a boolean configuration directive. Can be used only
+          with PHP_INI_ALL and PHP_INI_PERDIR type directives.
+
+   php_admin_value name value
+          Sets the value of the specified directive. This can not be used
+          in .htaccess files. Any directive type set with php_admin_value
+          can not be overridden by .htaccess or virtualhost directives.
+          To clear a previously set value use none as the value.
+
+   php_admin_flag name on|off
+          Used to set a boolean configuration directive. This can not be
+          used in .htaccess files. Any directive type set with
+          php_admin_flag can not be overridden by .htaccess or
+          virtualhost directives.
+
+   Example 5-2. Apache configuration example
+<IfModule mod_php5.c>
+  php_value include_path ".:/usr/local/lib/php"
+  php_admin_flag safe_mode on
+</IfModule>
+<IfModule mod_php4.c>
+  php_value include_path ".:/usr/local/lib/php"
+  php_admin_flag safe_mode on
+</IfModule>
+<IfModule mod_php3.c>
+  php3_include_path ".:/usr/local/lib/php"
+  php3_safe_mode on
+</IfModule>
+
+   Caution
+
+   PHP constants do not exist outside of PHP. For example, in httpd.conf
+   you can not use PHP constants such as E_ALL or E_NOTICE to set the
+   error_reporting directive as they will have no meaning and will
+   evaluate to 0. Use the associated bitmask values instead. These
+   constants can be used in php.ini
+     _________________________________________________________________
+
+Changing PHP configuration via the Windows registry
+
+   When running PHP on Windows, the configuration values can be modified
+   on a per-directory basis using the Windows registry. The configuration
+   values are stored in the registry key HKLM\SOFTWARE\PHP\Per Directory
+   Values, in the sub-keys corresponding to the path names. For example,
+   configuration values for the directory c:\inetpub\wwwroot would be
+   stored in the key HKLM\SOFTWARE\PHP\Per Directory
+   Values\c\inetpub\wwwroot. The settings for the directory would be
+   active for any script running from this directory or any subdirectory
+   of it. The values under the key should have the name of the PHP
+   configuration directive and the string value. PHP constants in the
+   values are not parsed.
+     _________________________________________________________________
+
+Other interfaces to PHP
+
+   Regardless of how you run PHP, you can change certain values at
+   runtime of your scripts through ini_set(). See the documentation on
+   the ini_set() page for more information.
+
+   If you are interested in a complete list of configuration settings on
+   your system with their current values, you can execute the phpinfo()
+   function, and review the resulting page. You can also access the
+   values of individual configuration directives at runtime using
+   ini_get() or get_cfg_var().
diff --git a/NEWS b/NEWS
index 969a027b0e09b0e6fad3360e4952cc9c662e1f80..99d3e6789e83bae382b4840f4d01d4ef395ecf98 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2004, PHP 5.0.1
+- Rewritten UNIX and Windows install help files. (Documentation Team)
 - Updated several libraries bundled with the windows release which now 
   includes libxml2-2.6.11, libxslt-1.1.7 and iconv-1.9.1. (Rob, Edin)
 - Improved and moved ActiveScript SAPI to PECL.  (Wez)
index 598db86cb4c2ccb732dc3e993fb942a8aaf05d3e..152044a781c45c4798be9f568b8d878bd9b5429b 100644 (file)
-PHP/Windows Installation Notes
-==============================
-
-Installation on Windows 9x/Me/NT/2000/XP/2003 systems
-=====================================================
-
-There are two main ways to install PHP for Windows: either
-manually or by using the installer.
 
+Installing PHP
+     _________________________________________________________________
+
+   Table of Contents
+   1. General Installation Considerations
+   2. Installation on Windows systems
+
+        Windows Installer
+        Manual Installation Steps
+        ActiveScript
+        Microsoft IIS / PWS
+        Apache 1.3.x on Microsft Windows
+        Apache 2.0.x on Microsoft Windows
+        Sun, iPlanet and Netscape servers on Microsoft Windows
+        OmniHTTPd Server
+        Sambar Server on Microsoft Windows
+        Xitami on Microsoft Windows
+        Installation of extensions on Windows
+
+   3. Problems?
+
+        Read the FAQ
+        Other problems
+        Bug reports
+
+   4. Runtime Configuration
+
+        The configuration file
+        How to change configuration settings
+     _________________________________________________________________
+
+Chapter 1. General Installation Considerations
+
+   Before starting the installation, first you need to know what do you
+   want to use PHP for. There are three main fields you can use PHP, as
+   described in the What can PHP do? section:
+
+     * Server-side scripting
+     * Command line scripting
+     * Client-side GUI applications
+
+   For the first and most common form, you need three things: PHP itself,
+   a web server and a web browser. You probably already have a web
+   browser, and depending on your operating system setup, you may also
+   have a web server (e.g. Apache on Linux and MacOS X; IIS on Windows).
+   You may also rent webspace at a company. This way, you don't need to
+   set up anything on your own, only write your PHP scripts, upload it to
+   the server you rent, and see the results in your browser.
+
+   While setting up the server and PHP on your own, you have two choices
+   for the method of connecting PHP to the server. For many servers PHP
+   has a direct module interface (also called SAPI). These servers
+   include Apache, Microsoft Internet Information Server, Netscape and
+   iPlanet servers. Many other servers have support for ISAPI, the
+   Microsoft module interface (OmniHTTPd for example). If PHP has no
+   module support for your web server, you can always use it as a CGI or
+   FastCGI processor. This means you set up your server to use the CGI
+   executable of PHP to process all PHP file requests on the server.
+
+   If you are also interested to use PHP for command line scripting (e.g.
+   write scripts autogenerating some images for you offline, or
+   processing text files depending on some arguments you pass to them),
+   you always need the command line executable. For more information,
+   read the section about writing command line PHP applications. In this
+   case, you need no server and no browser.
+
+   With PHP you can also write desktop GUI applications using the PHP-GTK
+   extension. This is a completely different approach than writing web
+   pages, as you do not output any HTML, but manage windows and objects
+   within them. For more information about PHP-GTK, please visit the site
+   dedicated to this extension. PHP-GTK is not included in the official
+   PHP distribution.
+
+   From now on, this section deals with setting up PHP for web servers on
+   Unix and Windows with server module interfaces and CGI executables.
+   You will also find information on the command line executable in the
+   following sections.
+
+   PHP source code and binary distributions for Windows can be found at
+   http://www.php.net/downloads.php. We recommend you to choose a mirror
+   nearest to you for downloading the distributions.
+     _________________________________________________________________
+
+Chapter 2. Installation on Windows systems
+
+   This section applies to Windows 98/Me and Windows NT/2000/XP/2003. PHP
+   will not work on 16 bit platforms such as Windows 3.1 and sometimes we
+   refer to the supported Windows platforms as Win32. Windows 95 is no
+   longer supported as of PHP 4.3.0.
+
+   There are two main ways to install PHP for Windows: either manually or
+   by using the installer.
+
+   If you have Microsoft Visual Studio, you can also build PHP from the
+   original source code.
+
+   Once you have PHP installed on your Windows system, you may also want
+   to load various extensions for added functionality.
+
+   Warning
+
+   There are several all-in-one installers over the Internet, but none of
+   those are endorsed by PHP.net, as we believe that the manual
+   installation is the best choice to have your system secure and
+   optimised.
+     _________________________________________________________________
 
 Windows Installer
-=================
-
- The Windows PHP installer is available from the downloads page at
- www.php.net. This installs the CGI version of PHP and, for IIS, PWS,
- and Xitami, configures the web server as well.
- Note that this version does *NOT* install any extensions or server
- api versions of PHP.
-
- Install your selected HTTP server on your system and make sure
- that it works.
-
- Run the executable installer and follow the instructions provided by
- the installation wizard. Two types of installation are supported -
- standard, which provides sensible defaults for all the settings it
- can, and advanced, which asks questions as it goes along.
-
- The installation wizard gathers enough information to set up the
- php.ini file and configure the web server to use PHP.
- For IIS and also PWS on NT Workstation, a list of all the
- nodes on the server with script map settings is displayed, and you
- can choose those nodes to which you wish to add the PHP script
- mappings.
-
- Once the installation has completed the installer will inform you
- if you need to restart your system, restart the server, or just
- start using PHP.
-
-Windows Manual installation from zip binary distribution
-========================================================
-
- This install guide will help you manually install and configure
- PHP on your Windows 9x/Me/NT/2000/XP webservers. This guide was compiled by
- Bob Silva. The original version can be found at
- http://www.umesd.k12.or.us/php/win32install.html
-
- This guide provides manual installation support for:
-  Personal Web Server 3 and 4 or newer
-  Internet Information Server 3 and 4 or newer
-  Apache 1.3.x
-  Apache 2.0.x  (experimental)
-  OmniHTTPd 2.0b1 and up
-  Oreilly Website Pro
-  Xitami
-  SunONE Webserver, Netscape Enterprise Server, iPlanet
-
- PHP for Windows comes in two flavours - a CGI executable (php-cgi.exe),
- and several SAPI modules (for exapmle php5isapi.dll). The latter form
- is new to PHP, and provides significantly improved performance and
- some new functionality. However, please note that the SAPI modules
- are *NOT* yet considered to be production quality.
- In particular, with the ISAPI module, you are likely to encounter serious
- reliability problems especially on platforms older than W2K - you may
- witness a lot of server 500 errors and suffer from other server modules
- such as ASP also failing. You have been warned!
-
- The reason for this is that the PHP SAPI modules are using the
- thread-safe version of the PHP code, which is new to PHP, and has
- not yet been tested and pounded enough to be considered completely
- stable, and there are actually a few known bugs. On the other hand,
- some people have reported very good results with the SAPI modules,
- and there a few reports of problems with the Apache module version.
- In short - your mileage may vary;  If you need
- absolute stability, trade the performance of the SAPI modules
- with the stability of the CGI executable.
-
- If you choose one of the SAPI modules and use Windows 95, be sure
- to download the DCOM update from
- http://download.microsoft.com/msdownload/dcom/95/x86/en/dcom95.exe"
- For the ISAPI module, an ISAPI 4.0 compliant Web server
- is required (tested on IIS 4.0, PWS 4.0 and IIS 5.0). IIS 3.0 is
- *NOT* supported; You should download and install the Windows NT 4.0
- Option Pack with IIS 4.0 if you want native PHP support.
-
- The following steps should be performed on all installations
- before the server specific instructions.
-
-  Extract the distribution file to a directory of your choice.
-  C:\PHP\ is a good start.
-
-  You need to ensure that the dlls which php uses can be found. The precise
-  dlls involved depend on which web server you use and whether you want to
-  run php as a cgi or as a server module. php5ts.dll is always used.
-  To make sure that the dlls can be found, you can add your PHP folder
-  (ex: c:\php) to your system PATH. Alternatively you can
-  either copy them to the system directory (e.g. winnt/system32 or 
-  windows/system) or you can make sure that they live in the same directory
-  as the main php executable or dll your web server will use (e.g. php-cgi.exe,
-  php5apache.dll).
-
-  Copy the file, php.ini-dist to your %WINDOWS% directory on
-  Windows 95/98 or to your %SYSTEMROOT% directory under Windows NT,
-  Windows 2000 or Windows XP and rename it to php.ini. Your %WINDOWS% or
-  %SYSTEMROOT% directory is typically:
-   c:\windows for Windows 95/98
-   c:\winnt or c:\winnt40 for NT/2000/XP servers
-  We will refer to %SYSTEMROOT% for both %WINDOWS% or
-  %SYSTEMROOT% throughout the text.
-
-  Edit your php.ini file:
-
-   You will need to change the 'extension_dir' setting to
-   point to your php-install-dir, or where you have placed
-   your 'php_*.dll' files. ex: c:\php\ext
-
-   If you are using OmniHTTPd, do not follow the next step.
-   Set the 'doc_root' to point to your webservers
-   document_root. ex: c:\apache\htdocs or c:\webroot
-
-   Choose which extensions you would like to load when PHP
-   starts, noting that several extensions are already built
-   into the Windows release, see the section about
-   Windows extensions for details of the built-in extensions.
-   You can uncomment the: 'extension=php_*.dll' lines
-   in php.ini to load these extensions.
-
-   Note that on a new installation it is advisable to first get
-   PHP working and tested without any extensions before enabling
-   them in php.ini.
-
-   On PWS and IIS, you can set the browscap.ini
-   to point to: 'c:\windows\system\inetsrv\browscap.ini' on
-   Windows 9x/Me and 'c:\winnt\system32\inetsrv\browscap.ini'
-   on NT/2000/XP Server. 
-
-   More information on the capabilities of browscap can be found here:
-
-   http://www.php.net/manual/en/function.get-browser.php
-
-   Note that the mibs directory supplied with the Windows distribution
-   contains support files for SNMP. This directory should be moved to
-   DRIVE:\usr\mibs (DRIVE being the drive where PHP is installed.)
-
-
-Installation of Windows extensions
-==================================
-
- After installing PHP and a webserver on Windows, you will
- probably want to install some extensions for added functionality.
- The following table describes some of the extensions available. As
- described in the manual installation steps, you can choose which
- extensions you would like to load when PHP starts by uncommenting the:
- extension=php_*.dll' lines in php.ini.
-
-
- ATTENTION! ATTENTION! ATTENTION!
-   Some extra DLLs are required for some PHP extensions.
-   
-   In order for PHP to be able to find them they need to be located
-   in a directory that is included in the system PATH. The recommended
-   way to do this is to add PHP installation folder (ex: c:\php) to your
-   PATH.
-   
-   Alternatively you can copy the bundled dlls from the root directory
-   in distribution package to your windows/system (Win9.x) or 
-   winnt/system32 (WinNT, Win2000, XP) directory.
-   
-   If you already have these DLLs installed on your system,
-   overwrite them only if something is not working correctly.
-   Before overwriting them, it is a good idea to backup them or move them to
-   another folder - just in case something goes wrong.
-
-   Download the latest version of the Microsoft Data Access Components (MDAC)
-   for your platform, especially Microsoft Windows 9x/NT4 users.
-   MDAC is available at http://www.microsoft.com/data/ .
-
-   Also note that some extensions need 3rd party libraries, 
-   e.g. php_oci8.dll needs the Oracle 8 client libraries to be installed
-   on your system. These are not bundled with PHP distribution.
- ATTENTION! ATTENTION! ATTENTION!
-
-
- The DLLs for PHP extensions are prefixed with 'php_'.  This
- prevents confusion between PHP extensions and their supporting
- libraries.
-
- Note:
- Since PHP 5.0.0 bcmath, calendar, com_dotnet, ctype, dom, ftp,
- iconv, odbc, pcre, session, SimpleXML, SPL, SQLite, tokenizer,
- wddx, xml and zlib extensions are built-in. You don't need to
- load any additional extensions in order to use these functions.
-
- Examples of PHP Extensions
-
-  php_dbase.dll     dBase functions
-  php_filepro.dll   Read-only access to Filepro databases
-  php_gd2.dll       GD library functions for image manipulation
-  php_hyperwave.dll HyperWave functions
-  php_imap.dll      IMAP functions
-  php_ldap.dll      LDAP functions
-  php_mssql.dll     MSSQL client (requires MSSQL DB-Libraries)
-  php_snmp.dll      SNMP get and walk functions (NT only!)
-
- For more information see the section about Windows extensions at
- http://www.php.net/manual/en/install.windows.php#install.windows.extensions
-
-
-Web server configuration
-========================
-
- Installing PHP on Windows with Apache 1.3.x
 
- ------------------------------------------------------------
- ATTENTION: Apache 2 Users
+   The Windows PHP installer is available from the downloads page at
+   http://www.php.net/downloads.php. This installs the CGI version of PHP
+   and for IIS, PWS, and Xitami, it configures the web server as well.
+   The installer does not include any extra external PHP extensions
+   (php_*.dll) as you'll only find those in the Windows Zip Package and
+   PECL downloads.
+
+     Note: While the Windows installer is an easy way to make PHP work,
+     it is restricted in many aspects as, for example, the automatic
+     setup of extensions is not supported. Use of the installer isn't
+     the preferred method for installing PHP.
+
+   First, install your selected HTTP (web) server on your system, and
+   make sure that it works.
+
+   Run the executable installer and follow the instructions provided by
+   the installation wizard. Two types of installation are supported -
+   standard, which provides sensible defaults for all the settings it
+   can, and advanced, which asks questions as it goes along.
+
+   The installation wizard gathers enough information to set up the
+   php.ini file, and configure certain web servers to use PHP. With IIS
+   or PWS on a NT Workstation, a list of all the nodes on the server with
+   script map settings is displayed, and you can choose those nodes to
+   which you wish to add the PHP script mappings. One of the web servers
+   the PHP installer does not configure for is Apache, so you'll need to
+   configure it manually.
+
+   Once the installation has completed, the installer will inform you if
+   you need to restart your system, restart the server, or just start
+   using PHP.
+
+   Warning
+
+   Be aware, that this setup of PHP is not secure. If you would like to
+   have a secure PHP setup, you'd better go on the manual way, and set
+   every option carefully. This automatically working setup gives you an
+   instantly working PHP installation, but it is not meant to be used on
+   online servers.
+     _________________________________________________________________
+
+Manual Installation Steps
+
+   This install guide will help you manually install and configure PHP
+   with a web server on Microsoft Windows. To get started you'll need to
+   download the zip binary distribution from the downloads page at
+   http://www.php.net/downloads.php.
+
+   Although there are many all-in-one installation kits, and we also
+   distribute a PHP installer for Microsoft Windows, we recommend you
+   take the time to setup PHP yourself as this will provide you with a
+   better understanding of the system, and enables you to install PHP
+   extensions easily when needed.
+
+     Upgrading from a previous PHP version: Previous editions of the
+     manual suggest moving various ini and DLL files into your SYSTEM
+     (i.e. C:\WINDOWS) folder and while this simplifies the installation
+     procedure it makes upgrading difficult. We advise you remove all of
+     these files (like php.ini and PHP related DLLs from the Windows
+     SYSTEM folder) before moving on with a new PHP installation. Be
+     sure to backup these files as you might break the entire system.
+     The old php.ini might be useful in setting up the new PHP as well.
+     And as you'll soon learn, the preferred method for installing PHP
+     is to keep all PHP related files in one directory and have this
+     directory available to your systems PATH.
+
+     MDAC requirements: If you use Microsoft Windows 98/NT4 download the
+     latest version of the Microsoft Data Access Components (MDAC) for
+     your platform. MDAC is available at
+     http://msdn.microsoft.com/data/. This requirement exists because
+     ODBC is built into the distributed Windows binaries.
+
+   The following steps should be completed on all installations before
+   any server specific instructions are performed:
+
+   Extract the distribution file into a directory of your choice. If you
+   are installing PHP 4, extract to C:\, as the zip file expands to a
+   foldername like php-4.3.7-Win32. If you are installing PHP 5, extract
+   to C:\php as the zip file doesn't expand as in PHP 4. You may choose a
+   different location but do not have spaces in the path (like C:\Program
+   Files\PHP) as some web servers will crash if you do.
+
+   The directory structure extracted from the zip is different for PHP
+   versions 4 and 5 and look like as follows:
+
+   Example 2-1. PHP 4 package structure
+c:\php
+   |
+   +--cli
+   |  |
+   |  |-php.exe           -- CLI executable - ONLY for commandline scripting
+   |
+   +--dlls                -- support DLLs required by some extensions
+   |  |
+   |  |-expat.dll
+   |  |
+   |  |-fdftk.dll
+   |  |
+   |  |-...
+   |
+   +--extensions          -- extension DLLs for PHP
+   |  |
+   |  |-php_bz2.dll
+   |  |
+   |  |-php_cpdf.dll
+   |  |
+   |  |-..
+   |
+   +--mibs                -- support files for SNMP
+   |
+   +--openssl             -- support files for Openssl
+   |
+   +--pdf-related         -- support files for PDF
+   |
+   +--sapi                -- SAPI (server module support) DLLs
+   |  |
+   |  |-php4activescript.dll
+   |  |
+   |  |-php4apache.dll
+   |  |
+   |  |-php4apache2.dll
+   |  |
+   |  |-..
+   |
+   +--PEAR                -- initial copy of PEAR
+   |
+   |
+   |-go-pear.bat          -- PEAR setup script
+   |
+   |-..
+   |
+   |-php.exe              -- CGI executable
+   |
+   |-..
+   |
+   |-php.ini-dist         -- default php.ini settings
+   |
+   |-php.ini-recommended  -- recommended php.ini settings
+   |
+   |-php4ts.dll           -- core PHP DLL
+   |
+   |-...
+
+   Or:
+
+   Example 2-2. PHP 5 package structure
+c:\php
+   |
+   +--dev
+   |  |
+   |  |-php5ts.lib
+   |
+   +--ext                 -- extension DLLs for PHP
+   |  |
+   |  |-php_bz2.dll
+   |  |
+   |  |-php_cpdf.dll
+   |  |
+   |  |-..
+   |
+   +--extras
+   |  |
+   |  +--mibs             -- support files for SNMP
+   |  |
+   |  +--openssl          -- support files for Openssl
+   |  |
+   |  +--pdf-related      -- support files for PDF
+   |  |
+   |  |-mime.magic
+   |
+   +--pear                -- initial copy of PEAR
+   |
+   |
+   |-go-pear.bat          -- PEAR setup script
+   |
+   |-fdftk.dll
+   |
+   |-..
+   |
+   |-php-cgi.exe          -- CGI executable
+   |
+   |-php-win.exe          -- executes scripts without an opened command prompt
+   |
+   |-php.exe              -- CLI executable - ONLY for command line scripting
+   |
+   |-..
+   |
+   |-php.ini-dist         -- default php.ini settings
+   |
+   |-php.ini-recommended  -- recommended php.ini settings
+   |
+   |-php5activescript.dll
+   |
+   |-php5apache.dll
+   |
+   |-php5apache2.dll
+   |
+   |-..
+   |
+   |-php5ts.dll           -- core PHP DLL
+   |
+   |-...
+
+   Notice the differences and similarities. Both PHP 4 and PHP 5 have a
+   CGI executable, a CLI executable, and server modules, but they are
+   located in different folders and/or have different names. While PHP 4
+   packages have the server modules in the sapi folder, PHP 5
+   distributions have no such directory and instead they're in the PHP
+   folder root. The supporting DLLs for the PHP 5 extensions are also not
+   in a seperate directory.
+
+     Note: In PHP 4, you should move all files located in the dll and
+     sapi folders to the main folder (e.g. C:\php).
+
+   Here is a list of server modules shipped with PHP 4 and PHP 5:
+
+     * sapi/php4activescript.dll (php5activescript.dll) - ActiveScript
+       engine, allowing you to embed PHP in your Windows applications.
+     * sapi/php4apache.dll (php5apache.dll) - Apache 1.3.x module.
+     * sapi/php4apache2.dll (php5apache2.dll) - Apache 2.0.x module.
+     * sapi/php4isapi.dll (php5isapi.dll) - ISAPI Module for ISAPI
+       compliant web servers like IIS 4.0/PWS 4.0 or newer.
+     * sapi/php4nsapi.dll (php5nsapi.dll) - Sun/iPlanet/Netscape server
+       module.
+     * sapi/php4pi3web.dll (no equivalent in PHP 5) - Pi3Web server
+       module.
+
+   Server modules provide significantly better performance and additional
+   functionality compared to the CGI binary. The CLI version is designed
+   to let you use PHP for command line scripting. More information about
+   CLI is available in the chapter about using PHP from the command line.
+
+   Warning
+
+   The SAPI modules have been significantly improved as of the 4.1
+   release, however, in older systems you may encounter server errors or
+   other server modules failing, such as ASP.
+
+   The CGI and CLI binaries, and the web server modules all require the
+   php4ts.dll (php5ts.dll) file to be available to them. You have to make
+   sure that this file can be found by your PHP installation. The search
+   order for this DLL is as follows:
+
+     * The same directory from where php.exe is called, or in case you
+       use a SAPI module, the web server's directory (e.g. C:\Program
+       Files\Apache Group\Apache2\bin).
+     * Any directory in your Windows PATH environment variable.
+
+   To make php4ts.dll / php5ts.dll available you have three options: copy
+   the file to the Windows system directory, copy the file to the web
+   server's directory, or add your PHP directory, C:\php to the PATH. For
+   better maintenance, we advise you to follow the last option, add
+   C:\php to the PATH, because it will be simpler to upgrade PHP in the
+   future. Read more about how to add your PHP directory to PATH in the
+   corresponding FAQ entry.
+
+   The next step is to set up a valid configuration file for PHP,
+   php.ini. There are two ini files distributed in the zip file,
+   php.ini-dist and php.ini-recommended. We advise you to use
+   php.ini-recommended, because we optimized the default settings in this
+   file for performance, and security. Read this well documented file
+   carefully because it has changes from php.ini-dist that will
+   drastically affect your setup. Some examples are display_errors being
+   off and magic_quotes_gpc being off. In addition to reading these,
+   study the ini settings and set every element manually yourself. If you
+   would like to achieve the best security, then this is the way for you,
+   although PHP works fine with these default ini files. Copy your chosen
+   ini-file to a directory that PHP is able to find and rename it to
+   php.ini. PHP searches for php.ini in the following locations (in
+   order):
+
+     * PHPIniDir directive (Apache 2 module only)
+     * HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath
+     * The PHPRC environment variable
+     * Directory of PHP (for CLI), or the web server's directory (for
+       SAPI modules)
+     * Windows directory (C:\windows or C:\winnt)
+
+   If you are running Apache 2, the simpler option is to use the
+   PHPIniDir directive (read the installation on Apache 2 page),
+   otherwise your best option is to set the PHPRC environment variable.
+   This process is explained in the following FAQ entry.
+
+     Note: If you're using NTFS on Windows NT, 2000, XP or 2003, make
+     sure that the user running the web server has read permissions to
+     your php.ini (e.g. make it readable by Everyone).
+
+   The following steps are optional:
+
+     * Edit your new php.ini file. If you plan to use OmniHTTPd, do not
+       follow the next step. Set the doc_root to point to your web
+       servers document_root. For example:
+
+doc_root = c:\inetpub       // for IIS/PWS
+
+doc_root = c:\apache\htdocs // for Apache
+
+     * Choose the extensions you would like to load when PHP starts. See
+       the section about Windows extensions, about how to set up one, and
+       what is already built in. Note that on a new installation it is
+       advisable to first get PHP working and tested without any
+       extensions before enabling them in php.ini.
+     * On PWS and IIS, you can set the browscap configuration setting to
+       point to: c:\windows\system\inetsrv\browscap.ini on Windows 9x/Me,
+       c:\winnt\system32\inetsrv\browscap.ini on NT/2000, and
+       c:\windows\system32\inetsrv\browscap.ini on XP. For an up-to-date
+       browscap.ini, read the following FAQ.
+
+   PHP is now setup on your system. The next step is to choose a web
+   server, and enable it to run PHP. Choose a webserver from the table of
+   contents.
+     _________________________________________________________________
+
+ActiveScript
+
+   This section contains notes specific to the ActiveScript installation.
+
+   ActiveScript is a windows only SAPI that enables you to use PHP script
+   in any ActiveScript compliant host, like Windows Script Host,
+   ASP/ASP.NET, Windows Script Components or Microsoft Scriptlet control.
+
+   As of PHP 5.0.1, ActiveScript has been moved to the PECL repository.
+   You may download this PECL extensions DLL from the PHP Downloads page
+   or at http://snaps.php.net/.
+
+     Note: You should read the manual installation steps first!
+
+   After installing PHP, you should download the ActiveScript DLL
+   (php5activescript.dll) and place it in the main PHP folder (e.g.
+   C:\php).
+
+   After having all the files needed, you must register the DLL on your
+   system. To achieve this, open a Command Prompt window (located in the
+   Start Menu). Then go to your PHP directory by typing something like cd
+   C:\php. To register the DLL just type regsvr32 php5activescript.dll.
+
+   To test if ActiveScript is working, create a new file, named test.wsf
+   (the extension is very important) and type:
+<job id="test">
+
+ <script language="PHPScript">
+  $WScript->Echo("Hello World!");
+ </script>
+
+</job>
+
+   Save and double-click on the file. If you receive a little window
+   saying "Hello World!" you're done.
+
+     Note: ActiveScript doesn't use the default php.ini file. Instead,
+     it will look only in the same directory as the .exe that caused it
+     to load. You should create php-activescript.ini and place it in
+     that folder, if you wish to load extensions, etc.
+     _________________________________________________________________
+
+Microsoft IIS / PWS
+
+   This section contains notes and hints specific to IIS (Microsoft
+   Internet Information Server). We have included installation
+   instructions for PWS/IIS 3, PWS 4 or newer and IIS 4 or newer
+   versions.
+
+     Important for CGI users: Read the faq on cgi.force_redirect for
+     important details. This directive needs to be set to 0.
 
-   At this time, support for Apache 2 is experimental.  It's
-   highly recommended you use PHP with Apache 1.3.x and not
-   Apache 2.  Documentation for installing Apache 2 on windows 
-   can be seen here:
+   Warning
 
-      http://www.php.net/manual/en/install.apache2.php
+   By using the CGI setup, your server is open to several possible
+   attacks. Please read our CGI security section to learn how to defend
+   yourself from those attacks.
+     _________________________________________________________________
 
-   With the basic difference being that when installing as a 
-   module you'll use php5apache2.dll instead of php5apache.dll
-   Both files are included within this release.
-  ------------------------------------------------------------
+Windows and PWS/IIS 3
 
+   The recommended method for configuring these servers is to use the REG
+   file included with the distribution (pws-php4cgi.reg in the SAPI
+   folder for PHP 4, or pws-php5cgi.reg in the main folder for PHP 5).
+   You may want to edit this file and make sure the extensions and PHP
+   install directories match your configuration. Or you can follow the
+   steps below to do it manually.
+
+   Warning
+
+   These steps involve working directly with the Windows registry. One
+   error here can leave your system in an unstable state. We highly
+   recommend that you back up your registry first. The PHP Development
+   team will not be held responsible if you damage your registry.
+
+     * Run Regedit.
+     * Navigate to: HKEY_LOCAL_MACHINE /System /CurrentControlSet
+       /Services /W3Svc /Parameters /ScriptMap.
+     * On the edit menu select: New->String Value.
+     * Type in the extension you wish to use for your php scripts. For
+       example .php
+     * Double click on the new string value and enter the path to php.exe
+       in the value data field. ex: C:\php\php.exe for PHP 4, or
+       C:\php\php-cgi.exe for PHP 5.
+     * Repeat these steps for each extension you wish to associate with
+       PHP scripts.
 
-  There are two ways to set up PHP to work with Apache 1.3.x
-  on Windows. One is to use the CGI binary (php-cgi.exe),
-  the other is to use the Apache module dll. In either case
-  you need to stop the Apache server, and edit your
-  httpd.conf or srm.conf to configure Apache to work with PHP.
-  We'll refer to either of these files with httpd.conf in the
-  text.
-
-  Although there can be a few variations of configuring PHP
-  under Apache, these are simple enough to be used by the
-  newcomer. Please consult the Apache Docs for further
-  configuration directives.
+   The following steps do not affect the web server installation and only
+   apply if you want your PHP scripts to be executed when they are run
+   from the command line (ex. run C:\myscripts\test.php) or by double
+   clicking on them in a directory viewer window. You may wish to skip
+   these steps as you might prefer the PHP files to load into a text
+   editor when you double click on them.
 
+     * Navigate to: HKEY_CLASSES_ROOT
+     * On the edit menu select: New->Key.
+     * Name the key to the extension you setup in the previous section.
+       ex: .php
+     * Highlight the new key and in the right side pane, double click the
+       "default value" and enter phpfile.
+     * Repeat the last step for each extension you set up in the previous
+       section.
+     * Now create another New->Key under HKEY_CLASSES_ROOT and name it
+       phpfile.
+     * Highlight the new key phpfile and in the right side pane, double
+       click the "default value" and enter PHP Script.
+     * Right click on the phpfile key and select New->Key, name it Shell.
+     * Right click on the Shell key and select New->Key, name it open.
+     * Right click on the open key and select New->Key, name it command.
+     * Highlight the new key command and in the right side pane, double
+       click the "default value" and enter the path to php.exe. ex:
+       c:\php\php.exe -q %1. (don't forget the %1).
+     * Exit Regedit.
+     * If using PWS on Windows, reboot to reload the registry.
+
+   PWS and IIS 3 users now have a fully operational system. IIS 3 users
+   can use a nifty tool from Steven Genusa to configure their script
+   maps.
+     _________________________________________________________________
+
+Windows and PWS 4 or newer
+
+   When installing PHP on Windows with PWS 4 or newer version, you have
+   two options. One to set up the PHP CGI binary, the other is to use the
+   ISAPI module DLL.
+
+   If you choose the CGI binary, do the following:
+
+     * Edit the enclosed pws-php4cgi.reg / pws-php5cgi.reg file (look
+       into the SAPI folder for PHP 4, or in the main folder for PHP 5)
+       to reflect the location of your php.exe / php-cgi.exe. Backslashes
+       should be escaped, for example:
+       [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parame
+       ters\Script Map] ".php"="C:\\php\\php.exe" (change to
+       C:\\php\\php-cgi.exe if you are using PHP 5) Now merge this
+       registery file into your system; you may do this by
+       double-clicking it.
+     * In the PWS Manager, right click on a given directory you want to
+       add PHP support to, and select Properties. Check the 'Execute'
+       checkbox, and confirm.
+
+   If you choose the ISAPI module, do the following:
+
+     * Edit the enclosed pws-php4isapi.reg / pws-php5isapi.reg file (look
+       into the SAPI folder for PHP 4, or in the main folder for PHP 5)
+       to reflect the location of your php4isapi.dll / php5isapi.dll.
+       Backslashes should be escaped, for example:
+       [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parame
+       ters\Script Map] ".php"="C:\\php\\sapi\\php4isapi.dll" (or
+       C:\\php\\php5isapi.dll for PHP 5) Now merge this registery file
+       into your system; you may do this by double-clicking it.
+     * In the PWS Manager, right click on a given directory you want to
+       add PHP support to, and select Properties. Check the 'Execute'
+       checkbox, and confirm.
+     _________________________________________________________________
+
+Windows NT/2000/XP and IIS 4 or newer
+
+   To install PHP on an NT/2000/XP Server running IIS 4 or newer, follow
+   these instructions. You have two options to set up PHP, using the CGI
+   binary (php.exe in PHP 4, or php-cgi.exe in PHP 5) or with the ISAPI
+   module.
+
+   In either case, you need to start the Microsoft Management Console
+   (may appear as 'Internet Services Manager', either in your Windows NT
+   4.0 Option Pack branch or the Control Panel=>Administrative Tools
+   under Windows 2000/XP). Then right click on your Web server node (this
+   will most probably appear as 'Default Web Server'), and select
+   'Properties'.
 
-  Installing PHP for Apache as module
-  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   If you want to use the CGI binary, do the following:
 
-  Now that version 4.1 introduces a safer sapi module, we recommend
-  that you configure PHP as a module in Apache.
+     * Under 'Home Directory', 'Virtual Directory', or 'Directory', click
+       on the 'Configuration' button, and then enter the App Mappings
+       tab.
+     * Click Add, and in the Executable box, type: C:\php\php.exe for PHP
+       4 or C:\php\php-cgi.exe for PHP 5 (assuming that you have unziped
+       PHP in c:\php\).
+     * In the Extension box, type the file name extension you want
+       associated with PHP scripts. Leave 'Method exclusions' blank, and
+       check the 'Script engine' checkbox. You may also like to check the
+       'check that file exists' box - for a small performance penalty,
+       IIS (or PWS) will check that the script file exists and sort out
+       authentication before firing up PHP. This means that you will get
+       sensible 404 style error messages instead of CGI errors
+       complaining that PHP did not output any data.
+       You must start over from the previous step for each extension you
+       want associated with PHP scripts. .php and .phtml are common,
+       although .php3 may be required for legacy applications.
+     * Set up the appropriate security. (This is done in Internet Service
+       Manager), and if your NT Server uses NTFS file system, add execute
+       rights for I_USR_ to the directory that contains php.exe /
+       php-cgi.exe.
 
-  To accomplish this, you have to load the php5apache.dll in your
-  Apache httpd.conf.
+   To use the ISAPI module, do the following:
 
-  !! NOTE !!
-  Whereever you load php5apache.dll from, php5apache.dll also
-  needs the php5ts.dll also included in the PHP distribution.
-  php5apache.dll depends on php5ts.dll which is loaded as soon as
-  Apache loads php5apache.dll. If php5ts.dll can't be found, you
-  usually get an error like (also see the "Problems?" section at
-  the end of the file):
+     * If you don't want to perform HTTP Authentication using PHP, you
+       can (and should) skip this step. Under ISAPI Filters, add a new
+       ISAPI filter. Use PHP as the filter name, and supply a path to the
+       php4isapi.dll / php5isapi.dll.
+     * Under 'Home Directory', click on the 'Configuration' button. Add a
+       new entry to the Application Mappings. Use the path to the
+       php4isapi.dll / php5isapi.dll as the Executable, supply .php as
+       the extension, leave 'Method exclusions' blank, and check the
+       'Script engine' checkbox.
+     * Stop IIS completely (NET STOP iisadmin)
+     * Start IIS again (NET START w3svc)
+     _________________________________________________________________
+
+Apache 1.3.x on Microsft Windows
+
+   This section contains notes and hints specific to Apache 1.3.x
+   installs of PHP on Microsoft Windows systems. We also have
+   instructions and notes for Apache 2 on a separate page.
+
+     Note: You should read the manual installation steps first!
 
-    Cannot load c:/php/php5apache.dll into server
+   There are two ways to set up PHP to work with Apache 1.3.x on Windows.
+   One is to use the CGI binary (php.exe for PHP 4 and php-cgi.exe for
+   PHP 5), the other is to use the Apache module DLL. In either case you
+   need to edit your httpd.conf to configure Apache to work with PHP, and
+   then restart the server.
 
-  So where does php5ts.dll has to be to be properly loaded ?
-  php5ts.dll is searched in the following order:
+   It is worth noting here that now the SAPI module has been made more
+   stable under Windows, we recommend it's use above the CGI binary,
+   since it is more transparent and secure.
 
-  1) in the directory where apache.exe is start from
-  2) in the directory where php5apache.dll is loaded from
-  3) in your %SYSTEMROOT%\System32, %SYSTEMROOT%\system and
-     %SYSTEMROOT% directory.
-     Note: %SYSTEMROOT%\System32 only applies to Windows NT/2000/XP)
-  4) in your whole %PATH%
+   Although there can be a few variations of configuring PHP under
+   Apache, these are simple enough to be used by the newcomer. Please
+   consult the Apache Documentation for further configuration directives.
 
-  Note: What is %SYSTEMROOT% ? Depending on your Windows
-        installation this may be for example c:\winnt or C:\windows
+   After changing the configuration file, remember to restart the server,
+   for example, NET STOP APACHE followed by NET START APACHE, if you run
+   Apache as a Windows Service, or use your regular shortcuts.
 
-  Usually you would just copy it over to %SYSTEMROOT%\System32.
-  But if you want to have multiple PHP installations (for
-  whatever reason) this is a bad idea. For this circumstance the
-  safest thing is to let php5ts.dll reside in the same directory
-  where php5apache.dll is loaded from (see point 2 above).
+     Note: Remember that when adding path values in the Apache
+     configuration files on Windows, all backslashes such as
+     c:\directory\file.ext must be converted to forward slashes, as
+     c:/directory/file.ext.
+     _________________________________________________________________
 
+Installing as a CGI binary
 
-  After you've set up the file layout properly, you're ready to
-  finally configure Apache to load the PHP module. Just add the
-  following lines to your httpd.conf:
+   If you unziped the PHP package to C:\php\ as described in the Manual
+   Installation Steps section, you need to insert these lines to your
+   Apache configuration file to set up the CGI binary:
 
-   LoadModule php5_module c:/php/php5apache.dll
-   AddModule mod_php5.c
-   AddType application/x-httpd-php .php
+   Example 2-3. PHP and Apache 1.3.x as CGI
+ScriptAlias /php/ "c:/php/"
+AddType application/x-httpd-php .php
 
-  Note: Especially newer versions of Apache do not need the
-        AddModule directive anymore, your milage may vary.
+# For PHP 4
+Action application/x-httpd-php "/php/php.exe"
 
+# For PHP 5
+Action application/x-httpd-php "/php/php-cgi.exe"
 
-  Where do I have to put the php.ini ?
-   The php.ini files is only searched in two places:
-   1) in your Apache installation directory (e.g. c:\apache\apache)
-   2) in your %SYSTEMROOT% directory.
-  
+# specify the directory where php.ini is
+SetEnv PHPRC C:/php
 
-  Installing PHP for Apache as CGI binary
-  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Note that the second line in the list above can be found in the actual
+   versions of httpd.conf, but it is commented out. Remember also to
+   substitute the c:/php/ for your actual path to PHP.
 
-  If you wish to install PHP as a CGI binary, read this first:
+   Warning
 
-    http://www.cert.org/advisories/CA-1996-11.html
+   By using the CGI setup, your server is open to several possible
+   attacks. Please read our CGI security section to learn how to defend
+   yourself from those attacks.
 
-  and then if you are really sure, insert these lines to your conf file: 
+   If you would like to present PHP source files syntax highlighted,
+   there is no such convinient option as with the module version of PHP.
+   If you chose to configure Apache to use PHP as a CGI binary, you will
+   need to use the show_source() function. To do this simply create a PHP
+   script file and add this code: <?php
+   show_source("original_php_script.php"); ?>. Substitute
+   original_php_script.php with the name of the file you wish to show the
+   source of.
+     _________________________________________________________________
 
-   ScriptAlias /php/ "c:/php/"
-   AddType application/x-httpd-php .php
-   Action application/x-httpd-php "/php/php-cgi.exe"
+Installing as an Apache module
 
-  Note, we consider installing PHP like this suicidal.
+   You should add the following lines to your Apache httpd.conf file:
 
-  As a further precaution, we recommend you change the "/php/"
-  ScriptAlias to something more random, to prevent the binary being
-  called directly, which is a security risk.
+   Example 2-4. PHP as an Apache 1.3.x module
+AddType application/x-httpd-php .php
 
-  Remember when you have finished to restart the server, for example,
-   NET STOP APACHE
-  followed by
-   NET START APACHE
+# For PHP 4
+LoadModule php4_module "c:/php/sapi/php4apache.dll"
 
-  To use the source code highlighting feature, add the following
-  line to your apache httpd.conf file:
+# For PHP 5
+LoadModule php5_module "c:/php/php5apache.dll"
 
-    AddType application/x-httpd-php-source .phps
+# specify the directory where php.ini is
+SetEnv PHPRC C:/php
 
-  Note, this will only work when you install php as a sapi module.
-  If you wish to use this feature with the cgi binary, create a new
-  file, and use the show_source("path/to/original_file.php"); function.
+   You may find after using the Windows installer for Apache that you
+   need to define the AddModule directive for mod_php4.c. This is
+   especially important if the ClearModuleList directive is defined,
+   which you will find by scrolling down a few lines. You will see a list
+   of AddModule entries, add the following line at the end of the list:
+   AddModule mod_php4.c. For PHP 5, instead use AddModule mod_php5.c
 
+   If you would like to use the source code highlighting feature, you
+   need to add the following line to your httpd.conf: AddType
+   application/x-httpd-php-source .phps. This should be inserted at the
+   same place where you inserted AddType application/x-httpd-php .php
+   above). With this setup, all files served with the .phps extension
+   will be syntax highlighted for the browser.
+     _________________________________________________________________
 
-  Forward or backslash in pathnames ?
-  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  On Win-Apache, path names can contain either forward- or backslashes.
-  Example:
+Apache 2.0.x on Microsoft Windows
 
-    LoadModule php5_module C:\php\php5apache.dll
+   This section contains notes and hints specific to Apache 2.0.x
+   installs of PHP on Microsoft Windows systems. We also have
+   instructions and notes for Apache 1.3.x users on a separate page.
 
-  works as good as 
+     Note: You should read the manual installation steps first!
 
-    LoadModule php5_module C:/php/php5apache.dll
+   Warning
 
-  You even can mix the slash-style:
+   Do not use Apache 2.0.x and PHP in a production environment neither on
+   Unix nor on Windows. For information on why, read the following FAQ
+   entry
 
-    LoadModule php5_module C:\php/php5apache.dll
+   You are highly encouraged to take a look at the Apache Documentation
+   to get a basic understanding of the Apache 2.0.x Server. Also consider
+   to read the Windows specific notes for Apache 2.0.x before reading on
+   here.
 
-----------------------------------------------------------
+     PHP and Apache 2.0.x compatibility notes: The following versions of
+     PHP are known to work with the most recent version of Apache 2.0.x:
 
- Installing PHP on Windows with IIS/PWS
+     * PHP 4.3.0 or later available at http://www.php.net/downloads.php.
+     * the latest stable development version. Get the source code
+       http://snaps.php.net/php4-latest.tar.gz or download binaries for
+       Windows http://snaps.php.net/win32/php4-win32-latest.zip.
+     * a prerelease version downloadable from http://qa.php.net/.
+     * you have always the option to obtain PHP through anonymous CVS.
 
-  This section contains notes and hints specific to IIS (Microsoft
-  Internet Information Server). Installing PHP for PWS/IIS 3 and
-  PWS/IIS 4 or newer versions.
+     These versions of PHP are compatible to Apache 2.0.40 and later.
 
-  Windows and PWS/IIS 3 - including PWS on Win 9x/ME
+     Apache 2.0 SAPI-support started with PHP 4.2.0. PHP 4.2.3 works
+     with Apache 2.0.39, don't use any other version of Apache with PHP
+     4.2.3. However, the recommended setup is to use PHP 4.3.0 or later
+     with the most recent version of Apache2.
 
-   The recommended method for configuring these servers is to use
-   the REG file incuded with the distribution (pws-php5cgi.reg).
-   You may want to edit this file and make sure the extensions and PHP
-   install directories match your configuration - once you have done
-   this, just double click on the file and it will update your registry.
-   Alternatively, you can follow the steps below to do it manually.
-
-   WARNING:
-    These steps involve working directly with the Windows
-    registry. One error here can leave your system in an unstable
-    state. We highly recommend that you back up your registry
-    first. The PHP Development team will not be held responsible if
-    you damage your registry.
-
-   Run Regedit.
-   Navigate to:
-    HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/W3Svc/Parameters/ScriptMap
-   On the edit menu select: New->String Value.
-   Type in the extension you wish to use for your php scripts. ex: .php
-   Double click on the new string value and enter the path to
-   php-cgi.exe in the value data field.
-   ex: c:\php\php-cgi.exe
-   Repeat these steps for each extension you wish to associate
-   with PHP scripts.
+     All mentioned versions of PHP will work still with Apache 1.3.x.
 
-   The following steps do not affect the web server installation and only
-   apply if you want your php scripts to be executed when they are run
-   from the command line (ex. run c:\myscripts\test.php) or by double
-   clicking on them in a directory viewer window. You may wish to skip
-   this step as you might prefer the php files to load into a text
-   editor when you double click on them.
+   Warning
 
-   Now navigate to: HKEY_CLASSES_ROOT
-   On the edit menu select: New->Key
-   Name the key to the extension you setup in the previous
-   section. ex: .php
-   Highlight the new key and in the right side pane, double click
-   the "default value" and enter phpfile.
-   Repeat the last step for each extension you set up in the
-   previous section.
-   Now create another New->Key under
-   HKEY_CLASSES_ROOT and name it phpfile
-   Highlight the new key 'phpfile' and in the
-   right side pane, double click the "default value" and enter
-   PHP Script.
-   Right click on the 'phpfile' key and select
-   New->Key, name it Shell.
-   Right click on the 'Shell' key and select
-   New->Key, name it open.
-   Right click on the 'open' key and select
-   New->Key, name it command.
-   Highlight the new key 'command' and in the
-   right side pane, double click the "default value" and enter
-   the path to php-cgi.exe ex: c:\php\php-cgi.exe -q %1
-   (don't forget the '%1').
-   Exit Regedit.
-   If using PWS on Windows, reboot to reload the registry.
-   PWS and IIS 3 users now have a fully operational system. IIS 3
-   users can use a nifty tool available at
-   http://www.genusa.com/iis/iiscfg.html
-   from Steven Genusa to configure their script maps.
-
-  Windows NT/2000/XP and IIS 4 or newer and PWS 4 on NT Workstation or W2K non server editions
-
-   To install PHP on an NT/2000/XP Server running IIS 4 or newer,
-   follow these instructions. You have two options to set up
-   PHP, using the CGI binary (php-cgi.exe) or with the ISAPI module.
-
-   In either case, you need to start the Microsoft Management
-   Console (may appear as 'Internet Services Manager', either
-   in your Windows NT 4.0 Option Pack branch or the Control
-   Panel=>Administrative Tools under Windows 2000). Then
-   right click on your Web server node (this will most probably
-   appear as 'Default Web Server'), and select 'Properties'.
+   Apache 2.0.x is designed to run on Windows NT 4.0, Windows 2000 or
+   Windows XP. At this time, support for Windows 9x is incomplete. Apache
+   2.0.x is not expected to work on those platforms at this time.
 
-   If you want to use the CGI binary, do the following:
-    Under 'Home Directory', 'Virtual Directory', or
-    'Directory', click on the 'Configuration' button,
-    and then enter the App Mappings tab.
+   Download the most recent version of Apache 2.0.x and a fitting PHP
+   version. Follow the Manual Installation Steps and come back to go on
+   with the integration of PHP and Apache.
 
-    Click Add, and in the Executable box, type:
-    c:\php\php-cgi.exe (assuming that you have unzipped PHP in c:\php\).
+   There are two ways to set up PHP to work with Apache 2.0.x on Windows.
+   One is to use the CGI binary the other is to use the Apache module
+   DLL. In either case you need to edit your httpd.conf to configure
+   Apache to work with PHP and then restart the server.
 
-    In the Extension box, type the file name extension you want
-    associated with PHP scripts. Leave 'Method exclusions'
-    blank, and check the Script engine checkbox. You may also
-    like to check the 'check that file exists' box - for a small
-    performance penalty, IIS (or PWS) will check that the script
-    file exists and sort out authentication before firing up php.
-    This means that you will get sensible 404 style error messages
-    instead of cgi errors complaing that php did not output any data.
+     Note: Remember that when adding path values in the Apache
+     configuration files on Windows, all backslashes such as
+     c:\directory\file.ext must be converted to forward slashes, as
+     c:/directory/file.ext.
+     _________________________________________________________________
 
-    You must repeat from 'Click Add...' for each extension you
-    want associated with PHP scripts.
-    (.php is recommended. although .phtml and .php3 may be
-    required for legacy applications.)
+Installing as a CGI binary
 
-    Set up the appropriate security. (This is done in Internet
-    Service Manager), and if your NT Server uses NTFS file system,
-    add execute rights for I_USR_ to the directory that contains
-    php-cgi.exe
+   You need to insert these three lines to your Apache httpd.conf
+   configuration file to set up the CGI binary:
 
-    !NOTE!: Since 4.1.2, the php.ini setting cgi.force_redirect defaults to '1'
-    which effectively prevents the cgi from working within IIS. You need to set
-    up at least a minimal php.ini file with the following directive:
+   Example 2-5. PHP and Apache 2.0 as CGI
+ScriptAlias /php/ "c:/php/"
+AddType application/x-httpd-php .php
 
-      cgi.force_redirect = 0
+# For PHP 4
+Action application/x-httpd-php "/php/php.exe"
 
-    If it doesn't work immidiately, make sure you have the php.ini file in the
-    right place (%SYSTEMROOT%\php.ini).
+# For PHP 5
+Action application/x-httpd-php "/php/php-cgi.exe"
 
+   Warning
 
-   To use the ISAPI module, do the following:
+   By using the CGI setup, your server is open to several possible
+   attacks. Please read our CGI security section to learn how to defend
+   yourself from those attacks.
+     _________________________________________________________________
 
-    If you don't want to perform HTTP Authentication using PHP,
-    you can (and should) skip this step. Under ISAPI Filters,
-    add a new ISAPI filter. Use PHP as the filter name, and
-    supply a path to the php5isapi.dll.
+Installing as an Apache module
 
-    Under 'Home Directory', click on the 'Configuration' button.
-    Add a new entry to the Application Mappings. Use the path
-    to the php5isapi.dll as the Executable, supply .php as the
-    extension, leave Method exclusions blank, and check the
-    Script engine checkbox.
+   You need to insert these two lines to your Apache httpd.conf
+   configuration file to set up the PHP module for Apache 2.0:
 
-    Stop IIS completely (net stop iisadmin)
-    Start IIS again  (net start w3svc)
+   Example 2-6. PHP and Apache 2.0 as Module
+# For PHP 4 do something like this:
+LoadModule php4_module "c:/php/sapi/php4apache2.dll"
+AddType application/x-httpd-php .php
 
-----------------------------------------------------------
-
- Installing PHP on Windows with OmniHTTPd Server
-
-  This section contains notes and hints specific to
-  OmniHTTPd 2.0b1 and up for Windows
-
-  This has got to be the easiest config there is:
-
-  Step 1: Install OmniHTTPd server.
-  Step 2: Right click on the blue OmniHTTPd icon in the system
-          tray and select 'Properties'
-  Step 3: Click on 'Web Server Global Settings'
-  Step 4: On the 'External' tab, enter:
-          virtual = .php | actual = c:\path-to-php-dir\php-cgi.exe
-          and use the Add button.
-  Step 5: On the Mime tab, enter:
-          virtual = wwwserver/stdcgi | actual = .php
-          and use the Add button.
-  Step 6: Click 'OK'
-
-  Repeat steps 2 - 6 for each extension you want to associate with PHP.
-  NOTE:
-   Some OmniHTTPd packages come with built in PHP support.
-   You can choose at setup time to do a custom setup, and
-   uncheck the PHP component. We recommend you to use the latest
-   PHP binaries. Some OmniHTTPd servers come with PHP 4 beta
-   distributions, so you should choose not to set up
-   the built in support, but install your own. If the server
-   is already on your machine, use the Replace button in Step
-   4 and 5 to set the new, correct information.
-
-----------------------------------------------------------
-
- Installing PHP on Windows with Oreilly Website Pro
-
-  This section contains notes and hints specific to Oreilly
-  Website Pro 2.5 and up for Windows
-
-  This list describes how to set up the PHP CGI binary
-  or the ISAPI module to work with Oreilly Website Pro
-  on Windows.
-
-   Edit the Server Properties and select the tab "Mapping".
-
-   From the List select "Associations" and enter the desired
-   extension (".php") and the path to the CGI exe (ex. c:\php\php-cgi.exe)
-   or the ISAPI dll file (ex. c:\php\php5isapi.dll).
-
-   Select "Content Types" add the same extension ".php"
-   and enter the content type. If you choose the CGI exe
-   file, enter 'wwwserver/shellcgi', if you chose the
-   ISAPI module, enter 'wwwserver/isapi' (both without quotes).
-
-----------------------------------------------------------
-
- Installing PHP on Windows with Xitami
-
-  This section contains notes and hints specific to Xitami.
-
-  This list describes how to set up the PHP CGI binary
-  to work with Xitami on Windows.
-
-   Make sure the webserver is running, and point
-   your browser to xitamis admin console
-   (usually http://127.0.0.1/admin), and click on
-   Configuration.
-
-   Navigate to the Filters, and put the
-   extension which php should parse (i.e. .php)
-   into the field File extensions (.xxx).
-
-   In Filter command or script put the path and name
-   of your php executable i.e. c:\php\php-cgi.exe.
-
-   Press the 'Save' icon.
-
-----------------------------------------------------------
-
- Installing PHP on Windows with Netscape/iPlanet/SunONE servers.
-
-
-  These instructions are targetted at Netscape Enterprise Web Server and
-  SUN/Netscape Alliance iPlanet Web Server/SunONE Webserver.
-  On other web servers your milage may vary.
-  
-  Netscape/iPlanet/SunONE config files are located in:
-  
-      <path-to-server>\https-servername\config
-  
-  
-  Add the following line to mime.types (you can do that by the administration server):
-  
-      type=magnus-internal/x-httpd-php exts=php
-  
-  
-  Place the following two lines after mime.types init in
-  <path-to-server>\https-servername\config\obj.conf (for servers < 6) or
-  for iPlanet/SunONE Web Server 6.0 and above however at the end of the
-  <path-to-server>\https-servername\config\magnus.conf file:
-  
-      Init fn="load-modules" funcs="php5_init,php5_execute,php5_auth_trans" shlib="c:/path/to/PHP/php5nsapi.dll"
-      Init fn=php5_init errorString="Failed to initialize PHP!" [php_ini="c:/path/to/php.ini"]
-   
-  In obj.conf (for virtual server classes [SunONE 6.0+] in their vserver.obj.conf):
-  
-      <Object name="default">
-      .
-      .
-      .
-      # NOTE this next line should happen after all 'ObjectType' and before
-      # all 'AddLog' lines
-      # You can modify some entries in php.ini request specific by adding it to the Service
-      # directive, e.g. doc_root="/path"
-      # For boolean ini-keys please use 0/1 as value, NOT "On","Off",... (this will not work
-      # correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"
-  
-      Service fn="php5_execute" type="magnus-internal/x-httpd-php" [inikey=value ...]
-      .
-      .
-      .
-      </Object>
-  
-  This is only needed if you want to configure a directory that only consists of
-  PHP scripts (same like a cgi-bin directory):
-  
-      <Object name="x-httpd-php">
-      ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
-      Service fn="php5_execute" [inikey=value ...]
-      </Object>
-  
-  After that you can configure a directory in the Administration server and assign it
-  the style "x-httpd-php". All files in it will get executed as PHP. This is nice to
-  hide PHP usage by renaming files to .html
-
-----------------------------------------------------------
-
- Installing PHP on The Sambar Server
-
-  This section contains notes and hints specific to Sambar
-
-   Find the file called mappings.ini (config directory) in your Sambar
-   install directory
-
-   Open mappings.ini and add the following line under [isapi]
-
-   *.php = c:\php\php5isapi.dll
-    Note: The above assumes that PHP was installed in c:\php
-
-   Restart the server
-
-----------------------------------------------------------
-
-Problems?
-=========
-
- Read the FAQ
-
-  Some problems are more common than others.  The most common ones
-  are listed in the PHP FAQ, found at www.php.net/FAQ.php
-
- Common problems with Windows
-
-  The following problems often occur with IIS/PWS, but some points may
-  also apply to other servers.
-
-  For test purposes it is best to use just a simple test script. One
-  containing just the following line will suffice:
-  <?php phpinfo();?>
-
-  You have installed PHP, but when try to access a php script file via your
-  browser, you get a blank screen:
-
-   Do a 'view source' in the web browser and you will probably find that you
-   can see the source code of your php script. This means that the web server
-   did not send the script to php for interpretation. Something is wrong with
-   the server configuration - double check the server configuration against
-   the php installation instructions.
-
-  You have installed PHP, but when try to access a php script file via your
-  browser, you get a server 500 error:
-
-   Something went wrong when the server tried to run PHP. To get to see a
-   sensible error message, from the command line, change to the directory
-   containing php-cgi.exe and run "php-cgi.exe -i" (without quotes).
-   If php has any problems running, then a suitable error message will be displayed
-   which will give you a clue as to what needs to be done next.
-   If you get a screen full of html codes (the output of the phpinfo() function) then
-   php is working ok, and your problem may be related to your server configuration
-   which you should double check.
-
-  You have installed PHP, but when try to access a php script file via your
-  browser, you get the error:
-   cgi error:
-   The specified CGI application misbehaved by not returning a complete set of
-   HTTP headers. The headers it did return are:
-
-   This error message means that php failed to output anything at all.
-   From the command line hange to the directory containing php-cgi.exe. Run
-   php-cgi.exe -i
-   If php has any problems running, then a suitable
-   error message will be displayed which will give you a clue as to what needs to
-   be done next. If you get a screen full of html codes (the output of the
-   phpinfo() function) then php is working ok.
-
-   Once php is working at the command line, try accessing the php script via the browser again.
-   If it still fails then it could be one of the following:
-
-   file permissions on your php script, php-cgi.exe, php5ts.dll, php.ini or any php
-   extensions you are trying to load are such that the web server cannot access 
-   them. For IIS, IUSR_<machinename> needs at least read access.
-
-   The script file does not exist (or possibly isn't where you think it is
-   relative to your web root directory). Note that for IIS you can trap this error by ticking
-   the 'check file exists' box when setting up the script mappings in the Internet Services
-   Manager. If a script file does not exist then the server will return a 404 error instead.
-   There is also the additional benefit that IIS will do any authentication required for you
-   based on the NTLanMan permissions on your script file.
+# For PHP 5 do something like this:
+LoadModule php5_module "c:/php/php5apache2.dll"
+AddType application/x-httpd-php .php
 
+# configure the path to php.ini
+PHPIniDir "C:/php"
 
- You have inherent problems loading the right DLL?
-  Sometimes, loading the right DLL can be a pain on Windows.
-  Advanced Windows users may use a tool called strace (named
-  after the famous Unix application) to trace file access on the
-  system (however, it only works on NT-alike Windows, read:
-  NT/2000/XP). It can be found at
-  http://razor.bindview.com/tools/desc/strace_readme.html . Read
-  the instruction there carefully!
+     Note: Remember to substitute the c:/php/ for your actual path to
+     PHP in the above examples. Take care to use either php4apache2.dll
+     or php5apache2.dll in your LoadModule directive and not
+     php4apache.dll or php5apache.dll as the latter ones are designed to
+     run with Apache 1.3.x.
 
-  Example scenery:
+   Warning
 
-   Apache/PHP as module. Though I've properly configured
-   php5apache.dll in httpd.conf, I always get:
+   Don't mix up your installation with DLL files from different PHP
+   versions. You have the only choice to use the DLL's and extensions
+   that ship with your downloaded PHP version.
+     _________________________________________________________________
+
+Sun, iPlanet and Netscape servers on Microsoft Windows
+
+   This section contains notes and hints specific to Sun Java System Web
+   Server, Sun ONE Web Server, iPlanet and Netscape server installs of
+   PHP on Windows.
+
+   From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to
+   generate custom directory listings and error pages. Additional
+   functions for Apache compatibility are also available. For support in
+   current webservers read the note about subrequests.
+     _________________________________________________________________
+
+CGI setup on Sun, iPlanet and Netscape servers
+
+   To install PHP as a CGI handler, do the following:
+
+     * Copy php4ts.dll to your systemroot (the directory where you
+       installed Windows)
+     * Make a file association from the command line. Type the following
+       two lines:
+
+assoc .php=PHPScript
+ftype PHPScript=c:\php\php.exe %1 %*
+
+     * In the Netscape Enterprise Administration Server create a dummy
+       shellcgi directory and remove it just after (this step creates 5
+       important lines in obj.conf and allow the web server to handle
+       shellcgi scripts).
+     * In the Netscape Enterprise Administration Server create a new mime
+       type (Category: type, Content-Type: magnus-internal/shellcgi, File
+       Suffix:php).
+     * Do it for each web server instance you want PHP to run
+
+   More details about setting up PHP as a CGI executable can be found
+   here: http://benoit.noss.free.fr/php/install-php.html
+     _________________________________________________________________
+
+NSAPI setup on Sun, iPlanet and Netscape servers
+
+   To install PHP with NSAPI, do the following:
+
+     * Copy php4ts.dll to your systemroot (the directory where you
+       installed Windows)
+     * Make a file association from the command line. Type the following
+       two lines:
+
+assoc .php=PHPScript
+ftype PHPScript=c:\php\php.exe %1 %*
+
+     * In the Netscape Enterprise Administration Server create a new mime
+       type (Category: type, Content-Type: magnus-internal/x-httpd-php,
+       File Suffix: php).
+     * Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6)
+       and add the following: You should place the lines after mime types
+       init.
+
+Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:
+/php/sapi/php4nsapi.dll"
+Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php
+_ini="c:/path/to/php.ini"]
+
+       (PHP >= 4.3.3) The php_ini parameter is optional but with it you
+       can place your php.ini in your webserver config directory.
+     * Configure the default object in obj.conf (for virtual server
+       classes [Sun Web Server 6.0+] in their vserver.obj.conf): In the
+       <Object name="default"> section, place this line necessarily after
+       all 'ObjectType' and before all 'AddLog' lines:
+
+Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inik
+ey=value ...]
+
+       (PHP >= 4.3.3) As additional parameters you can add some special
+       php.ini-values, for example you can set a
+       docroot="/path/to/docroot" specific to the context php4_execute is
+       called. For boolean ini-keys please use 0/1 as value, not
+       "On","Off",... (this will not work correctly), e.g.
+       zlib.output_compression=1 instead of zlib.output_compression="On"
+     * This is only needed if you want to configure a directory that only
+       consists of PHP scripts (same like a cgi-bin directory):
+
+<Object name="x-httpd-php">
+ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
+Service fn=php4_execute [inikey=value inikey=value ...]
+</Object>
+
+       After that you can configure a directory in the Administration
+       server and assign it the style x-httpd-php. All files in it will
+       get executed as PHP. This is nice to hide PHP usage by renaming
+       files to .html.
+     * Restart your web service and apply changes
+     * Do it for each web server instance you want PHP to run
+
+     Note: More details about setting up PHP as an NSAPI filter can be
+     found here: http://benoit.noss.free.fr/php/install-php4.html
+
+     Note: The stacksize that PHP uses depends on the configuration of
+     the webserver. If you get crashes with very large PHP scripts, it
+     is recommended to raise it with the Admin Server (in the section
+     "MAGNUS EDITOR").
+     _________________________________________________________________
+
+CGI environment and recommended modifications in php.ini
+
+   Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE
+   WS/iPlanet/Netscape is a multithreaded web server. Because of that all
+   requests are running in the same process space (the space of the
+   webserver itself) and this space has only one environment. If you want
+   to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the
+   correct way to try this in the old PHP 3.x way with getenv() or a
+   similar way (register globals to environment, $_ENV). You would only
+   get the environment of the running webserver without any valid CGI
+   variables!
+
+     Note: Why are there (invalid) CGI variables in the environment?
+
+     Answer: This is because you started the webserver process from the
+     admin server which runs the startup script of the webserver, you
+     wanted to start, as a CGI script (a CGI script inside of the admin
+     server!). This is why the environment of the started webserver has
+     some CGI environment variables in it. You can test this by starting
+     the webserver not from the administration server. Use the command
+     line as root user and start it manually - you will see there are no
+     CGI-like environment variables.
+
+   Simply change your scripts to get CGI variables in the correct way for
+   PHP 4.x by using the superglobal $_SERVER. If you have older scripts
+   which use $HTTP_HOST, etc., you should turn on register_globals in
+   php.ini and change the variable order too (important: remove "E" from
+   it, because you do not need the environment here):
+variables_order = "GPCS"
+register_globals = On
+     _________________________________________________________________
+
+Special use for error pages or self-made directory listings (PHP >= 4.3.3)
+
+   You can use PHP to generate the error pages for "404 Not Found" or
+   similar. Add the following line to the object in obj.conf for every
+   error page you want to overwrite:
+Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value ini
+key=value...]
+
+   where XXX is the HTTP error code. Please delete any other Error
+   directives which could interfere with yours. If you want to place a
+   page for all errors that could exist, leave the code parameter out.
+   Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].
+
+   Another possibility is to generate self-made directory listings. Just
+   create a PHP script which displays a directory listing and replace the
+   corresponding default Service line for
+   type="magnus-internal/directory" in obj.conf with the following:
+Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/scr
+ipt.php" [inikey=value inikey=value...]
+
+   For both error and directory listing pages the original URI and
+   translated URI are in the variables $_SERVER['PATH_INFO'] and
+   $_SERVER['PATH_TRANSLATED'].
+     _________________________________________________________________
+
+Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)
+
+   The NSAPI module now supports the nsapi_virtual() function (alias:
+   virtual()) to make subrequests on the webserver and insert the result
+   in the webpage. The problem is, that this function uses some
+   undocumented features from the NSAPI library.
+
+   Under Unix this is not a problem, because the module automatically
+   looks for the needed functions and uses them if available. If not,
+   nsapi_virtual() is disabled.
+
+   Under Windows limitations in the DLL handling need the use of a
+   automatic detection of the most recent ns-httpdXX.dll file. This is
+   tested for servers till version 6.1. If a newer version of the Sun
+   server is used, the detection fails and nsapi_virtual() is disabled.
+
+   If this is the case, try the following: Add the following parameter to
+   php4_init in magnus.conf/obj.conf:
+   Init fn=php4_init ... server_lib="ns-httpdXX.dll"
+
+   where XX is the correct DLL version number. To get it, look in the
+   server-root for the correct DLL name. The DLL with the biggest
+   filesize is the right one.
+
+   You can check the status by using the phpinfo() function.
+
+     Note: But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!
+     _________________________________________________________________
+
+OmniHTTPd Server
+
+   This section contains notes and hints specific to OmniHTTPd on
+   Windows.
+
+     Note: You should read the manual installation steps first!
+
+   Warning
+
+   By using the CGI setup, your server is open to several possible
+   attacks. Please read our CGI security section to learn how to defend
+   yourself from those attacks.
+
+   You need to complete the following steps to make PHP work with
+   OmniHTTPd. This is a CGI executable setup. SAPI is supported by
+   OmniHTTPd, but some tests have shown that it is not so stable to use
+   PHP as an ISAPI module.
+
+     Important for CGI users: Read the faq on cgi.force_redirect for
+     important details. This directive needs to be set to 0.
+
+    1. Install OmniHTTPd server.
+    2. Right click on the blue OmniHTTPd icon in the system tray and
+       select Properties
+    3. Click on Web Server Global Settings
+    4. On the 'External' tab, enter: virtual = .php | actual =
+       c:\php\php.exe (use php-cgi.exe if installing PHP 5), and use the
+       Add button.
+    5. On the Mime tab, enter: virtual = wwwserver/stdcgi | actual =
+       .php, and use the Add button.
+    6. Click OK
+
+   Repeat steps 2 - 6 for each extension you want to associate with PHP.
+
+     Note: Some OmniHTTPd packages come with built in PHP support. You
+     can choose at setup time to do a custom setup, and uncheck the PHP
+     component. We recommend you to use the latest PHP binaries. Some
+     OmniHTTPd servers come with PHP 4 beta distributions, so you should
+     choose not to set up the built in support, but install your own. If
+     the server is already on your machine, use the Replace button in
+     Step 4 and 5 to set the new, correct information.
+     _________________________________________________________________
 
-   Syntax error on line 1025 of c:/apache/apache/conf/httpd.conf:
-   Cannot load c:/php/php-4.2.1-win32/php5apache.dll into server
+Sambar Server on Microsoft Windows
 
-   But c:/php/php-4.2.1-win32/php5apache.dll definitely
-   exists:
+   This section contains notes and hints specific to the Sambar Server
+   for Windows.
 
-   dir c:\php\php-4.2.1-win32\php5apache.dll
-    Directory of c:\php\php-4.2.1-win32
-    13.05.2002  00:01               24.576 php5apache.dll
+     Note: You should read the manual installation steps first!
 
-   'strace'ing the apache.exe binary revealed the following:
-   c:
-   cd \apache\apache
-   strace apache >strace.txt
+   This list describes how to set up the ISAPI module to work with the
+   Sambar server on Windows.
 
-   Then looking into strace.txt:
-   [...]
-729 3348 3248 NtOpenSection (0xe, {24, 24, 0x40, 0, 0, "php5ts.dll"}, ... ) == STATUS_OBJECT_NAME_NOT_FOUND
-731 3348 3248 NtQueryAttributesFile ({24, 0, 0x40, 0, 0, "\??\c:\php\php-4.2.1-win32\php5ts.dll"}, 1234824, ... ) == STATUS_OBJECT_NAME_NOT_FOUND
-733 3348 3248 NtQueryAttributesFile ({24, 108, 0x40, 0, 0, "php5ts.dll"}, 1234824, ... ) == STATUS_OBJECT_NAME_NOT_FOUND
-735 3348 3248 NtQueryAttributesFile ({24, 0, 0x40, 0, 0, "\??\C:\WINNT\System32\php5ts.dll"}, 1234824, ... ) == STATUS_OBJECT_NAME_NOT_FOUND
-   [...]
-
-   This went on quiet some time for all directories in the %PATH%
-   environment variable. The solution finally was to copy
-   php5ts.dll in any of the directories searched by the System (I
-   prefered to use c:\php\php-4.2.1-win32).
-
-   Note: This does not only apply to php5ts.dll but in fact to every
-         DLL which gets loaded through PHP too. So, if you've
-         problems running your PHP CLI application because it
-         can't load a certain library but you're sure it's there,
-         try this tool.
-
-
- I'm using IIS/CGI and everytime I try to access a php file I get
- "Security Alert! The PHP CGI cannot be accessed directly."
-
-  Since 4.1.2, the php.ini setting cgi.force_redirect defaults to '1' which
-  effectively prevents the cgi from working within IIS. You need to set up at
-  least a minimal php.ini file with the following directive:
-
-    cgi.force_redirect = 0
-
-  If it doesn't work immidiately, make sure you have the php.ini file in the
-  right place (%SYSTEMROOT%\php.ini).
-
-
- Other problems
-  If you are still stuck, someone on the PHP installation mailing list may be
-  able to help you. You should check out the archive first, in case
-  someone already answered someone else who had the same problem as
-  you. The archives are available from the support page on www.php.net
-  To subscribe to the PHP installation mailing list, send an empty mail to:
-
-  php-install-subscribe@lists.php.net
+     * Find the file called mappings.ini (in the config directory) in the
+       Sambar install directory.
+     * Open mappings.ini and add the following line under [ISAPI]:
 
-  The mailing list address is php-install@lists.php.net
-
-  If you want to get help on the mailing list, please try to be
-  precise and give the necessary details about your environment
-  (which operating system, what PHP version, what web server, if
-  ou are running PHP as CGI or a server module, etc.), and
-  referably enough code to make others able to reproduce and test
-  our problem.
+   Example 2-7. ISAPI configuration of Sambar
+#for PHP 4
+*.php = c:\php\php4isapi.dll
+
+#for PHP 5
+*.php = c:\php\php5isapi.dll
+
+       (This line assumes that PHP was installed in c:\php.)
+     * Now restart the Sambar server for the changes to take effect.
+     _________________________________________________________________
+
+Xitami on Microsoft Windows
+
+   This section contains notes and hints specific to Xitami on Windows.
+
+     Note: You should read the manual installation steps first!
+
+   This list describes how to set up the PHP CGI binary to work with
+   Xitami on Windows.
+
+     Important for CGI users: Read the faq on cgi.force_redirect for
+     important details. This directive needs to be set to 0. If you want
+     to use $_SERVER['PHP_SELF'] you have to enable the cgi.fix_pathinfo
+     directive.
+
+   Warning
+
+   By using the CGI setup, your server is open to several possible
+   attacks. Please read our CGI security section to learn how to defend
+   yourself from those attacks.
+
+     * Make sure the webserver is running, and point your browser to
+       xitamis admin console (usually http://127.0.0.1/admin), and click
+       on Configuration.
+     * Navigate to the Filters, and put the extension which PHP should
+       parse (i.e. .php) into the field File extensions (.xxx).
+     * In Filter command or script put the path and name of your PHP CGI
+       executable i.e. C:\php\php.exe for PHP 4, or C:\php\php-cgi.exe
+       for PHP 5.
+     * Press the 'Save' icon.
+     * Restart the server to reflect changes.
+     _________________________________________________________________
+
+Installation of extensions on Windows
+
+   After installing PHP and a webserver on Windows, you will probably
+   want to install some extensions for added functionality. You can
+   choose which extensions you would like to load when PHP starts by
+   modifying your php.ini. You can also load a module dynamically in your
+   script using dl().
+
+   The DLLs for PHP extensions are prefixed with php_.
+
+     Note: In PHP 4.3.1 BCMath, Calendar, COM, Ctype, FTP, MySQL, ODBC,
+     Overload, PCRE, Session, Tokenizer, WDDX, XML and Zlib support is
+     built in. You don't need to load any additional extensions in order
+     to use these functions. See your distributions README.txt or
+     install.txt or this table for a list of built in modules.
+
+   The default location PHP searches for extensions is c:\php4\extensions
+   in PHP 4 and c:\php5 in PHP 5. To change this setting to reflect your
+   setup of PHP edit your php.ini file:
+
+     * You will need to change the extension_dir setting to point to the
+       directory where your extensions lives, or where you have placed
+       your php_*.dll files. Please do not forget the last backslash. For
+       example:
+
+extension_dir = c:/php/extensions/
+
+     * Enable the extension(s) in php.ini you want to use by uncommenting
+       the extension=php_*.dll lines in php.ini. This is done by deleting
+       the leading ; form the extension you want to load.
+
+   Example 2-8. Enable Bzip2 extension for PHP-Windows
+// change the following line from ...
+;extension=php_bz2.dll
+
+// ... to
+extension=php_bz2.dll
+
+     * Some of the extensions need extra DLLs to work. Couple of them can
+       be found in the distribution package, in the C:\php\dlls\ folder
+       in PHP 4 or in the main folder in PHP 5, but some, for example
+       Oracle (php_oci8.dll) require DLLs which are not bundled with the
+       distribution package. If you are installing PHP 4, copy the
+       bundled DLLs from C:\php\dlls folder to the main C:\php folder.
+       Don't forget to include C:\php in the system PATH (this process is
+       explained in a separate FAQ entry).
+
+     Note: If you are running a server module version of PHP remember to
+     restart your webserver to reflect your changes to php.ini.
+
+   The following table describes some of the extensions available and
+   required additional dlls.
+
+   Table 2-1. PHP Extensions
+   Extension Description Notes
+   php_bz2.dll bzip2 compression functions None
+   php_calendar.dll Calendar conversion functions Built in since PHP
+   4.0.3
+   php_cpdf.dll ClibPDF functions None
+   php_crack.dll Crack functions None
+   php_ctype.dll ctype family functions Built in since PHP 4.3.0
+   php_curl.dll CURL, Client URL library functions Requires:
+   libeay32.dll, ssleay32.dll (bundled)
+   php_cybercash.dll Cybercash payment functions PHP <= 4.2.0
+   php_db.dll DBM functions Deprecated. Use DBA instead (php_dba.dll)
+   php_dba.dll DBA: DataBase (dbm-style) Abstraction layer functions None
+   php_dbase.dll dBase functions None
+   php_dbx.dll dbx functions
+   php_domxml.dll DOM XML functions PHP <= 4.2.0 requires: libxml2.dll
+   (bundled) PHP >= 4.3.0 requires: iconv.dll (bundled)
+   php_dotnet.dll .NET functions PHP <= 4.1.1
+   php_exif.dll Read EXIF headers from JPEG None
+   php_fbsql.dll FrontBase functions PHP <= 4.2.0
+   php_fdf.dll FDF: Forms Data Format functions. Requires: fdftk.dll
+   (bundled)
+   php_filepro.dll filePro functions Read-only access
+   php_ftp.dll FTP functions Built-in since PHP 4.0.3
+   php_gd.dll GD library image functions Removed in PHP 4.3.2. Also note
+   that truecolor functions are not available in GD1, instead, use
+   php_gd2.dll.
+   php_gd2.dll GD library image functions GD2
+   php_gettext.dll Gettext functions PHP <= 4.2.0 requires
+   gnu_gettext.dll (bundled), PHP >= 4.2.3 requires libintl-1.dll,
+   iconv.dll (bundled).
+   php_hyperwave.dll HyperWave functions None
+   php_iconv.dll ICONV characterset conversion Requires: iconv-1.3.dll
+   (bundled), PHP >=4.2.1 iconv.dll
+   php_ifx.dll Informix functions Requires: Informix libraries
+   php_iisfunc.dll IIS management functions None
+   php_imap.dll IMAP POP3 and NNTP functions None
+   php_ingres.dll Ingres II functions Requires: Ingres II libraries
+   php_interbase.dll InterBase functions Requires: gds32.dll (bundled)
+   php_java.dll Java functions PHP <= 4.0.6 requires: jvm.dll (bundled)
+   php_ldap.dll LDAP functions PHP <= 4.2.0 requires libsasl.dll
+   (bundled), PHP >= 4.3.0 requires libeay32.dll, ssleay32.dll (bundled)
+   php_mbstring.dll Multi-Byte String functions None
+   php_mcrypt.dll Mcrypt Encryption functions Requires: libmcrypt.dll
+   php_mhash.dll Mhash functions PHP >= 4.3.0 requires: libmhash.dll
+   (bundled)
+   php_mime_magic.dll Mimetype functions Requires: magic.mime (bundled)
+   php_ming.dll Ming functions for Flash None
+   php_msql.dll mSQL functions Requires: msql.dll (bundled)
+   php_mssql.dll MSSQL functions Requires: ntwdblib.dll (bundled)
+   php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll
+   (bundled)
+   php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysqli.dll
+   (bundled)
+   php_oci8.dll Oracle 8 functions Requires: Oracle 8.1+ client libraries
+   php_openssl.dll OpenSSL functions Requires: libeay32.dll (bundled)
+   php_oracle.dll Oracle functions Requires: Oracle 7 client libraries
+   php_overload.dll Object overloading functions Built in since PHP 4.3.0
+   php_pdf.dll PDF functions None
+   php_pgsql.dll PostgreSQL functions None
+   php_printer.dll Printer functions None
+   php_shmop.dll Shared Memory functions None
+   php_snmp.dll SNMP get and walk functions NT only!
+   php_soap.dll SOAP functions PHP >= 5.0.0
+   php_sockets.dll Socket functions None
+   php_sybase_ct.dll Sybase functions Requires: Sybase client libraries
+   php_tidy.dll Tidy functions PHP >= 5.0.0
+   php_tokenizer.dll Tokenizer functions Built in since PHP 4.3.0
+   php_w32api.dll W32api functions None
+   php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 requires: iconv.dll
+   (bundled)
+   php_xslt.dll XSLT functions PHP <= 4.2.0 requires sablot.dll,
+   expat.dll (bundled). PHP >= 4.2.1 requires sablot.dll, expat.dll,
+   iconv.dll (bundled).
+   php_yaz.dll YAZ functions Requires: yaz.dll (bundled)
+   php_zip.dll Zip File functions Read only access
+   php_zlib.dll ZLib compression functions Built in since PHP 4.3.0
+     _________________________________________________________________
+
+Chapter 3. Problems?
+
+Read the FAQ
+
+   Some problems are more common than others. The most common ones are
+   listed in the PHP FAQ, part of this manual.
+     _________________________________________________________________
+
+Other problems
+
+   If you are still stuck, someone on the PHP installation mailing list
+   may be able to help you. You should check out the archive first, in
+   case someone already answered someone else who had the same problem as
+   you. The archives are available from the support page on
+   http://www.php.net/support.php. To subscribe to the PHP installation
+   mailing list, send an empty mail to
+   php-install-subscribe@lists.php.net. The mailing list address is
+   php-install@lists.php.net.
+
+   If you want to get help on the mailing list, please try to be precise
+   and give the necessary details about your environment (which operating
+   system, what PHP version, what web server, if you are running PHP as
+   CGI or a server module, safe mode, etc...), and preferably enough code
+   to make others able to reproduce and test your problem.
+     _________________________________________________________________
 
 Bug reports
-===========
-
- If you think you have found a bug in PHP, please report it.  The
- PHP developers probably don't know about it, and unless you
- report it, chances are it won't be fixed.
-
- 1) Read about Bugs-Dos-And-Donts
-     http://bugs.php.net/bugs-dos-and-donts.php
-
- 2) If you think you've found a bug, read
-     http://bugs.php.net/bugs-dos-and-donts.php
 
- 3) Feel welcome to file a report at
-     http://bugs.php.net/
+   If you think you have found a bug in PHP, please report it. The PHP
+   developers probably don't know about it, and unless you report it,
+   chances are it won't be fixed. You can report bugs using the
+   bug-tracking system at http://bugs.php.net/. Please do not send bug
+   reports in mailing list or personal letters. The bug system is also
+   suitable to submit feature requests.
+
+   Read the How to report a bug document before submitting any bug
+   reports!
+     _________________________________________________________________
+
+Chapter 4. Runtime Configuration
+
+The configuration file
+
+   The configuration file (called php3.ini in PHP 3, and simply php.ini
+   as of PHP 4) is read when PHP starts up. For the server module
+   versions of PHP, this happens only once when the web server is
+   started. For the CGI and CLI version, it happens on every invocation.
+
+   The default location of php.ini is a compile time option (see the FAQ
+   entry), but can be changed for the CGI and CLI version with the -c
+   command line switch, see the chapter about using PHP from the command
+   line. You can also use the environment variable PHPRC for an
+   additional path to search for a php.ini file.
+
+   If php-SAPI.ini exists (where SAPI is used SAPI, so the filename is
+   e.g. php-cli.ini or php-apache.ini), it's used instead of php.ini.
+
+     Note: The Apache web server changes the directory to root at
+     startup causing PHP to attempt to read php.ini from the root
+     filesystem if it exists.
+
+   The php.ini directives handled by extensions are documented
+   respectively on the pages of the extensions themselfs. The list of the
+   core directives is available in the appendix. Probably not all the PHP
+   directives are documented in the manual though. For a completel list
+   of directives available in your PHP version, please read your well
+   commented php.ini file. Alternatively, you may find the the latest
+   php.ini from CVS helpful too.
+
+   Example 4-1. php.ini example
+; any text on a line after an unquoted semicolon (;) is ignored
+[php] ; section markers (text within square brackets) are also ignored
+; Boolean values can be set to either:
+;    true, on, yes
+; or false, off, no, none
+register_globals = off
+track_errors = yes
+
+; you can enclose strings in double-quotes
+include_path = ".:/usr/local/lib/php"
+
+; backslashes are treated the same as any other character
+include_path = ".;c:\php\lib"
+     _________________________________________________________________
+
+How to change configuration settings
+
+Running PHP as an Apache module
+
+   When using PHP as an Apache module, you can also change the
+   configuration settings using directives in Apache configuration files
+   (e.g. httpd.conf) and .htaccess files. You will need "AllowOverride
+   Options" or "AllowOverride All" privileges to do so.
+
+   With PHP 4 and PHP 5, there are several Apache directives that allow
+   you to change the PHP configuration from within the Apache
+   configuration files. For a listing of which directives are
+   PHP_INI_ALL, PHP_INI_PERDIR, or PHP_INI_SYSTEM, have a look at the
+   table found within the ini_set() documentation.
+
+     Note: With PHP 3, there are Apache directives that correspond to
+     each configuration setting in the php3.ini name, except the name is
+     prefixed by "php3_".
+
+   php_value name value
+          Sets the value of the specified directive. Can be used only
+          with PHP_INI_ALL and PHP_INI_PERDIR type directives. To clear a
+          previously set value use none as the value.
+
+     Note: Don't use php_value to set boolean values. php_flag (see
+     below) should be used instead.
+
+   php_flag name on|off
+          Used to set a boolean configuration directive. Can be used only
+          with PHP_INI_ALL and PHP_INI_PERDIR type directives.
+
+   php_admin_value name value
+          Sets the value of the specified directive. This can not be used
+          in .htaccess files. Any directive type set with php_admin_value
+          can not be overridden by .htaccess or virtualhost directives.
+          To clear a previously set value use none as the value.
+
+   php_admin_flag name on|off
+          Used to set a boolean configuration directive. This can not be
+          used in .htaccess files. Any directive type set with
+          php_admin_flag can not be overridden by .htaccess or
+          virtualhost directives.
+
+   Example 4-2. Apache configuration example
+<IfModule mod_php5.c>
+  php_value include_path ".:/usr/local/lib/php"
+  php_admin_flag safe_mode on
+</IfModule>
+<IfModule mod_php4.c>
+  php_value include_path ".:/usr/local/lib/php"
+  php_admin_flag safe_mode on
+</IfModule>
+<IfModule mod_php3.c>
+  php3_include_path ".:/usr/local/lib/php"
+  php3_safe_mode on
+</IfModule>
+
+   Caution
+
+   PHP constants do not exist outside of PHP. For example, in httpd.conf
+   you can not use PHP constants such as E_ALL or E_NOTICE to set the
+   error_reporting directive as they will have no meaning and will
+   evaluate to 0. Use the associated bitmask values instead. These
+   constants can be used in php.ini
+     _________________________________________________________________
+
+Changing PHP configuration via the Windows registry
+
+   When running PHP on Windows, the configuration values can be modified
+   on a per-directory basis using the Windows registry. The configuration
+   values are stored in the registry key HKLM\SOFTWARE\PHP\Per Directory
+   Values, in the sub-keys corresponding to the path names. For example,
+   configuration values for the directory c:\inetpub\wwwroot would be
+   stored in the key HKLM\SOFTWARE\PHP\Per Directory
+   Values\c\inetpub\wwwroot. The settings for the directory would be
+   active for any script running from this directory or any subdirectory
+   of it. The values under the key should have the name of the PHP
+   configuration directive and the string value. PHP constants in the
+   values are not parsed.
+     _________________________________________________________________
+
+Other interfaces to PHP
+
+   Regardless of how you run PHP, you can change certain values at
+   runtime of your scripts through ini_set(). See the documentation on
+   the ini_set() page for more information.
+
+   If you are interested in a complete list of configuration settings on
+   your system with their current values, you can execute the phpinfo()
+   function, and review the resulting page. You can also access the
+   values of individual configuration directives at runtime using
+   ini_get() or get_cfg_var().