Install Web Server in Windows XP with Apache2, PHP5 and MySQL4 – Part 3

Home»Cloud & Internet»Web Servers»Install Web Server in Windows XP with Apache2, PHP5 and MySQL4 – Part 3
Part 3 – Install PHP 5

Articles in the Series
Part 1 – Download Apache, PHP and MySQL
Part 2 – Install Apache HTTP web server
Part 3 – Install PHP (this article)
Part 4 – Install MySQL

Unzip the PHP zip package that downloaded in Part 1 to C:\PHP (Create a new folder named PHP at C:\ root level). Then shut down Apache server.

Open the Apache httpd.conf with a text editor and add two lines of code:

LoadModule php5_module C:/php/php5apache2.dll
AddType application/x-httpd-php .php

Added .php extension to show how to parse .php files

Tip
Note that use of forward slashes instead of backslashes in the configuration file.

Note also the directory in load module points to where we installed PHP. So if you install PHP at other location, change it accordingly. The directory style should be / too instead of common DOS syntax.

These two lines can be added to the bottom of the httpd.conf file. However, note that modules in the load list are in reverse-priority order; those that come later can override or pre-empt those listed earlier. Therefore, adding php_mod at the end of the list can have unexpected results, such as disabling mod_rewrite (and other modules) for any php files that exist (mod_rewrite will run fine if the file doesn’t exist). The same error can disable mod_auth and other important modules. In summary, php_mod should be loaded before any modules you wish to run before your php code is executed. See the note in the Apache AddModule documentation for how to find the recommended ordering.

Next, copy/paste “php.ini-recommended” to C:\Program Files\Apache Group\Apache2 (or your Apache installation path), and rename it to php.ini. Restart the Apache server.

Testing php5 Installation

Create a file with the following contents and save it to the root web folder (C:\Server\htdocs or default C:\Program Files\Apache Group\Apache2\htdocs\) as “php5info.php”.

<?php
phpinfo();
?>

Access the following url http://localhost/php5_info.php. The complete PHP setting should be displayed on the browser. If there is an error or nothing been shown, there is problem with installation. Try the installation procedures again.

Enable MySQL extension

The php.ini that copied from php.ini-recommended already being set to optimum setting, so there is no special need to edit it. However, it still need to edit to enable mysql extension.

Open php.ini in the Apache2 directory with text editor.

Search for the line of extension_dir = “./”. Change it to extension_dir = “C:/php5ext”. Also, uncomment the line of extension=php_mysql.dll.

Save the php.ini. Restart the Apache server. Re-try to access http://localhost/php5_info.php. It should working fine. If not try to check what’s the cause of errors, which most likely due to wrong extension_dir or missing extension. Or you may try to copy all the needed extentions (with .dll extenstion) to Apache2 directory.

About the Author:

LK is a technology writer for Tech Journey with background of system and network administrator. He has be documenting his experiences in digital and technology world for over 15 years.Connect with LK through Tech Journey on Facebook, Twitter or Google+.
  • Todd

    well, I have followed your directions and everyone else's before this, but no luck. After adding the module declaration in the httpd.conf file, when I restart apache i get – syntax error: cannot load specific module. all of my paths are correct what is the problem?

  • Administrator

    Hi Todd, the issue might be related to mod_perl (if you're using it as ActivePerl). If you install Apache/2.2, please use mod_perl that is compiled with Apache 2.2 and not Apache 2.0 for compatibility issue.

  • greg

    I have the server set up and i can read a php file if i start it withhtml tags but it doesnt read the php script i put in. if i dont use the html tags i get a download box when i click on the link to test the php?? can u help me!!

  • Administrator

    Looks like your web server doesn't parse PHP file and treat it as text file, follow the steps carefully.

  • greg

    ok i reset it and now the server cannot find php5apache2.dll? It is in the php folder. I am using php5.1.4 and apache2.2.2!

  • greg

    I got it to work i uninstalled apache 2.2 and installed 2.0 and followed your steps again and now it is all working:)

    Thank you for the help!

  • Tom

    There seems to be a problem with Apache 2.2 and the PHP dll modules (on Windows obviously, don't know if there are any problems on unix). I fixed it by going to http://www.apachelounge.com/download/ and downloading their version of the php4apache2.dll file. This also comes with another file which you have to put in your Apache/bin directory, and you will also need to download a MS Visual C++ Package if you don't have the .NET framework installed. This is all explained in the readme file that comes with the DLL.

  • cary

    With Apache 2.2, you will need PHP 5.2.x. It has the php5apache2_2.dll that is compiled for the new version. You can download a stable build at http://snaps.php.net/

  • JaD

    You said…

    Search for the line of extension_dir = “./”. Change it to extension_dir = “C:php5ext”. Also, uncomment the line of extension=php_mysql.dll.

    Save the php.ini. Restart the Apache server. Re-try to access http://localhost/php5_info.php. It should working fine. If not try to
    …..
    …..
    “C:php5ext”. ?????? — the correct line is
    “C:phpext”.

  • JaD

    u forgot a thing, for the apache..
    modify DirectoryIndex and put index.php
    in rest is a good tutorial 😛

  • I am trying to connect mysql5 from apache2 but
    browser showing an error
    "
    Warning: require(/config/db_config.php) [function.require]: failed to open stream: No such file or directory in C:webrootdbconnect.php on line 2

    Fatal error: require() [function.require]: Failed opening required '/config/db_config.php' (include_path='.;C:php5pear') in C:webrootdbconnect.php on line 2

    I am using,MySQL5, PHP5 and Apache2.2 running windows xp
    Request your help
    Thanking you
    ******

  • I am trying to connect mysql5 from apache2 but
    browser showing an error
    "
    Warning: require(/config/db_config.php) [function.require]: failed to open stream: No such file or directory in C:webrootdbconnect.php on line 2

    Fatal error: require() [function.require]: Failed opening required '/config/db_config.php' (include_path='.;C:php5pear') in C:webrootdbconnect.php on line 2

    I am using,MySQL5, PHP5 and Apache2.2 running windows xp
    Request your help
    Thanking you
    Asokan

  • I have succes install apache 2, php5 and MySQL 5. I can display php info. But, why php script that I make can not run in the IE browser. this simple script like this:

    I use Windows XP.

    Thank you for your attention.

  • Amit

    I install apache2.2.9, php5 and Mysql5 on windows XP, ican see php info page and php scripts from my machine, But when i try from any other machine on network it gives me error page can not be shown. can you help me in accessing page from other machine on network.

    Thanks.

  • Hey for the once that apache returns error saying it cannot load the php module, the reason behind this is apache doesnt support php5.1, they say they will only support 5.2 but luckily theres a fix,

    in httpd.conf include php5apache2_2.dll instead of php5apache2.dll.

    the "_2" special module version works just fine.

  • Amit,

    try putting in the ip address of the host computer instead of localhost.

  • There is an error in the copy/paste code written for Apache2.2.11 with php5

    Here is the proper LoadModule method:


    # php
    LoadModule php5_module "C:/php/php5apache2_2.dll"
    <IfModule php5_module>
    AddType application/x-httpd-php .php
    </IfModule>

    My Configuration:

    1: Windows XP Professional SP3
    2: Apache 2.2.11
    3: PHP 5.2.6

    Also, it is fine to uncomment all the extensions in the php.ini.

    I migrated from an IIS 6.1 installation to an Apache installation to test J2EE on Apache2, using MySQL, postgreSQL, MSSQL

  • anonymous

    Very good article. I am able to run php with my sql on my apache http server in less than an hour. Thanks for the article!!

  • poo

    thanks

Pin It on Pinterest

Share This

Share This

Share this post with your friends!