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.
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.
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.
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.
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.
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.
If you unzipped 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:
Example 6-3. PHP and Apache 1.3.x as CGI ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
# For PHP 4
Action application/x-httpd-php "/php/php.exe"
# For PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"
# specify the directory where php.ini is
SetEnv PHPRC C:/php |
|
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.
| 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. |
If you would like to present PHP source files syntax highlighted, there
is no such convenient 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.
You should add the following lines to your Apache httpd.conf file:
Example 6-4. PHP as an Apache 1.3.x module AddType application/x-httpd-php .php
# For PHP 4
LoadModule php4_module "c:/php/sapi/php4apache.dll"
# For PHP 5
LoadModule php5_module "c:/php/php5apache.dll"
# specify the directory where php.ini is
SetEnv PHPRC C:/php |
|
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.