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.
    
    
    Note: 
     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.
     
    
    
    Note: 
     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 #1 PHP 4 package structure
     
c:\php
   |
   +--cli
   |  |
   |  |-php.exe           -- CLI executable - ONLY for command line 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
   |  |
   |  |-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 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/php5apache2_2.dll - Apache 2.2.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 (and
      then don't forget to restart the computer - logoff isn't enough).
    
    
     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 locations
     described in Runtime Configuration section.
    
    
     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:
     
     
    
     PHP is now setup on your system.  The next step is to choose a web
     server, and enable it to run PHP.  Choose a web server from the table of 
     contents.