You are on page 1of 5

Installing Oracle, PHP, and Apache on

Windows 2000/XP
By Robert Clevenger
Updated by Christopher Jones, May 2006

Are you ready to start using PHP to talk to an Oracle Database? Let's walk through the
steps required to install the Oracle Database, Apache HTTP Server, and PHP as an
Apache module on Windows. We will be using Windows XP Professional for this
example.

Software Requirements:

Software Version URL


Oracle Database 10g
10.2 http://www.oracle.com/technology/products/database/xe/
Express Edition
Apache HTTP Server 2.0.58 http://httpd.apache.org/download.cgi
PHP Hypertext
5.1.3 http://www.php.net/downloads.php
Processor

Installing Oracle

You have a choice here. You may either install the database locally on this Windows
machine, or you may decide to use an Oracle server located on another machine on your
network. If your database is remote, jump to the article on Installing PHP and the Oracle
10g Instant Client for Linux and Windows.

Otherwise, if this is your first time with Oracle, installing the Oracle Database 10g
Express Edition only takes a few minutes. Download the Express Edition (commonly
known as "XE") self-extracting executable OracleXE.exe and simply double-click this
file to run the installation wizard.

Starting and Stopping Oracle

Oracle XE will be running after installation. You can test it by opening your browser to
the Database home page http://localhost:8080/apex/. Use the username "SYSTEM" and
the password you chose during installation.

Note: You may need to replace "localhost" with the IP address 127.0.0.1 or your
machine's DNS name if you are behind a firewall or if localhost does not resolve for
some other reason.
If you need to restart the database at any time use the Start Database and Stop Database
items on the Windows Start menu.

Don't forget to register for the free Oracle XE forum by following the "Forum
Registration" link on the Database home page.

Installing Apache HTTP Server

The easiest way to install Apache on Windows is to download the Microsoft Windows
Installer apache_2.0.58-win32-x86-no_ssl.msi package from Apache Windows Binaries.
To install on this machine, double-click the file and follow the wizards. I chose to install
"for All Users, on Port 80" because the "only for the Current User" alternative would
clash with Oracle XE's default port 8080. I installed Apache under C:\Program
Files\Apache Group, however any other directory will also work.

Starting and Stopping Apache

As part of installation, the server will be started. You should now test on your machine by
opening your web browser to http://localhost/

Your system tray has an Apache Monitor control that makes it easy to stop and re-start
the HTTP Server when needed. Alternatively use the Apache options added to your
Windows Start menu.

Installing PHP

Download the PHP 5.1.3 Zip package (not the "installer" package, which does not contain
necessary extensions). You will notice that the installation instructions here are very
similar to those found in the install.txt file contained within the PHP archive that you
downloaded. Feel free to use that as a guide; the instructions here are just a subset of the
information it contains.

Installation Steps

1. Uncompress the PHP package to a directory called "C:\php-5.1.3-Win32".


2. Copy php.ini-recommended to C:\Program Files\Apache
Group\Apache2\conf\php.ini
3. Edit php.ini and perform the following:
o Change extension_dir to "C:\php-5.1.3-Win32\ext", which is the
directory containing php_oci8.dll and the other PHP extensions.
o Uncomment (remove the semicolon from the beginning of the line) the
line extension=php_oci8.dll
o For testing it is helpful to set display_errors to On so you see any
problems in your code.
4. Edit the file httpd.conf and add the following lines. Make sure to use forward
slashes '/' instead of back slashes '\':

#
# This will load the PHP module into Apache
#
LoadModule php5_module c:/php-5.1.3-Win32/php5apache2.dll

#
# This next section will call PHP for .php, .phtml, and .phps
files
#
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php-source .phps

#
# This is the directory containing php.ini
#
PHPIniDir "C:/Program Files/Apache Group/Apache2/conf"

Restart the Apache HTTP Server

You must now restart the Apache Server so that you can test your PHP installation. Use
the Start menu option to start Apache. This opens a console window showing any error
messages. They may also be recorded in C:\Program Files\Apache
Group\Apache2\logs\error.log

If you have errors, double check your httpd.conf and php.ini and correct any
problems.

Testing Apache and PHP with Oracle

Testing PHP with Oracle is easy. You simply need to place a PHP file into your htdocs
directory; normally C:\Program Files\Apache Group\Apache2\htdocs.

Here are two files, the first is used to test basic PHP installation. Open it in a browser
with http://localhost/phpinfo.php. If PHP is installed you should see a large page full of
PHP configuration information.

phpinfo.php
<?php
phpinfo();
?>

Check there is a section titled "oci8".

oci8test.php
The second file will display name and salary columns from the EMPLOYEES table
owned by the HR user. This requires the HR schema be installed, otherwise you will need
to modify the script. The HR schema comes with Oracle Database XE. You can unlock
access and set a password using the Adminstration section of the Database home page.

This file uses PHP4-style function names such as "ocilogon". In PHP5 names were
standardized like "oci_connect" but the old names are still available.

For Oracle Database XE the database connection string is simply "//127.0.0.1/XE". If


you are not using XE then change the connection string (third parameter) to the Oracle
Net entry for your database.

<?php

$db_conn = ocilogon("hr", "your_hr_password", "//127.0.0.1/XE");

$cmdstr = "select last_name, salary from employees";

$parsed = ociparse($db_conn, $cmdstr);


ociexecute($parsed);

$nrows = ocifetchstatement($parsed, $results);

echo "<html><head><title>Oracle PHP Test</title></head><body>";


echo "<center><h2>Oracle PHP Test</h2><br>";
echo "<table border=1 cellspacing='0' width='50%'>\n<tr>\n";
echo "<td><b>Name</b></td>\n<td><b>Salary</b></td>\n</tr>\n";

for ($i = 0; $i < $nrows; $i++ )


{
echo "<tr>\n";
echo "<td>" . $results["LAST_NAME"][$i] . "</td>";
echo "<td>$ " . number_format($results["SALARY"][$i], 2).
"</td>";
echo "</tr>\n";
}

echo "<tr><td colspan='2'> Number of Rows:


$nrows</td></tr></table>";
echo "<br><em>If you see data, then it
works!</em><br></center></body></html>\n";

?>
Conclusion

You should now have the Oracle Database, Apache HTTP Server, and PHP installed and
configured. At this point you are ready to start writing PHP applications on the Oracle
platform.

For more information about PHP and Oracle, visit the OTN PHP Developer Center.
Robert Clevenger joined Oracle in 1997 and is an architect for Oracle Fusion
middleware.
Christopher Jones joined Oracle in 1990 and is an open source evangelist.

You might also like