Installing an Apache server on Windows
Introduction
This tutorial will guide you, step by step, through the installation of
Apache 2.2, along with
PHP 5 and
MySQL 5 (and phpMyAdmin), under Windows.
For this tutorial, we used apache_2.2.4-win32-x86-no_ssl.msi, php-5.2.1-Win32.zip, mysql-essential-5.0.37-win32.msi and phpMyAdmin-2.10.0.2-english.7z, on a machine running Windows XP Pro SP2.
Warning : in this tutorial, we are configuring a server that will send error and warning messages that will help you for development, but may reveal security breaches to potential hackers. So, DO NOT use this server for hosting purpose, use it only for development (unless you edit the configuration files as appropiate).
Summary
All links
- Apache HTTP Server (download page). Choose Win32 Binary (MSI Installer).
- PHP (download page). Choose the zip package in the Windows Binaries section.
- MySQL (download page). Choose the latest stable version, then choose Windows Essentials (x86).
- phpMyAdmin (download page). Choose whichever file you want (the zip may be simpler to use though).
Apache
Running the installer
On the
Server Information screen :
- in Network Domain, enter your domain name if you own one, or anything you want (it's not important but this field is mandatory). We entered patheticcockroach.com.
- in Server Name, enter your domain name with www. before. We entered www.patheticcockroach.com (not important either, but mandatory too).
- in Administrator's Email Address, enter your e-mail if you want to, or any nospam@IwontgiveMyAddress.com :). We entered our real e-mail (not important either, but mandatory too).
- check Install Apache HTTP Server 2.2 programs and shortcuts for for All Users, as a Service -- Recommended.
On the
Setup Type screen : choose
Custom.
On the
Custom Setup screen : choose what you want to install. You can leave all the default values if you want. We left the default component settings (full installation), and changed the install path to
E:\INTERNET\Apache Group\Apache2.2\.
Configuring Apache
You know have a new icon in your taskbar : the
Apache Monitor. Whith this little tool, you can with a few clicks turn on/off or restart your Apache server. If you close it, you can find it again in the
Start menu (
Programs → Apache HTTP Server 2.2.4 → Control Apache Server → Monitor Apache Servers.
Then, go to your Apache folder (for us it's
E:\INTERNET\Apache Group\Apache2.2), and open
httpd.conf (located in the
conf folder). Here are a few important parameters (there is more help about them in the
httpd.conf file itself, so we just list them) :
Result
Congrats, you're done with Apache ! Wanna see the result ? Okay, but not too long, we still have some work to do.
In your taskbar, double click on the
Apache Monitor icon. Huh ? It's rather raw, isn't it ? Don't worry, that's not your site :). Press restart : this will stop the server, and relaunch it with the modified
httpd.conf.
Put some html pages in the folder you entered in the
DocumentRoot field (see above).
Open your favorite browser (I hope it's not MSIE, btw ;)), and in the address bar, type
http://127.0.0.1:8080 (where 8080 is the port we chose a bit earlier in the tutorial). Here are your pages, and you could share it with anyone on the web, if they had your IP and if you let Apache go through your firewall.
PHP
Close Apache (not mandatory but let's act cleanly).
Unzipping the stuff
Extract your php file (for us it was
php-5.2.1-Win32.zip) in some folder. We extracted it in
E:\INTERNET\PHP.
Configuring PHP
Go to your PHP folder (for us it's
E:\INTERNET\PHP). Copy
php.ini-dist as
php.ini, and open this
php.ini.
Configuring Apache to work with PHP
Go to your Apache folder and open
httpd.conf (located in the
conf folder) :
- add
<IfModule actions_module>
Action application/x-httpd-php "E:/INTERNET/PHP/php.exe"
</IfModule>
at the beginning of the file (of course, replace the path by yours).
- add
<IfModule so_module>
LoadModule php5_module "E:/INTERNET/PHP/php5apache2_2.dll"
PHPIniDir "E:/INTERNET/PHP"
</IfModule>
at the beginning of the file (replace the path by yours).
- search for
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgzand add AddType application/x-httpd-php .php after it.
In your PHP directory (for us,
E:\INTERNET\PHP), copy the file
libmysql.dll and paste it into the
bin directory of your Apache folder (ie, for us
E:\INTERNET\Apache Group\Apache2.2\bin).
Hello World
Well, time for another break. With notepad, create a file named somename.php, containing :
<?php phpinfo(); ?>
Save it into your server directory (for us it's
C:/SERVER/HTTP). Now launch Apache (or restart it). With your browser go to
http://127.0.0.1:8080/somename.php. You should see a page listing a lot of things about your server :)
MySQL
Close Apache (not mandatory but...)
Running the installer
On the
Setup Type screen : choose
Custom.
On the
Custom Setup screen : choose what you want to install. You can leave all the default values if you want. We left the default component settings, and changed the install path to
E:\INTERNET\MySQL.
On the
MySQL.com Sign-Up screen : do whatever you want... we chose
Skip Sign-Up.
On the
Wizard Completed screen : leave the
Configure the MySQL server now checkbox ckecked. This opens the MySQL Server Instance Configuration Wizard.
Configuring MySQL
If it isn't already opened, launch the MySQL Server Instance Configuration Wizard (In the
Start menu, go to
Programs → MySQL → MySQL Server 5.0 → MySQL Server Instance Config Wizard).
On the
Please select a configuration type screen : choose
Standard Configuration.
On the
Please set the Windows options screen : let the default options (
Install As Windows Service,
Launch the MySQL Server automatically)).
On the
Please set the security options screen : just set the root password.
Creating the links to launch and close MySQL
You can use batch files to quickly launch or stop the MySQL service.
See the
tutorial about batch files if you need help.
For instance, create a file named MySQL_launch.bat with the following content :
net start MySQL
(where MySQL is the name you gave to the MySQL service during the installation process).
Create another file named MySQL_stop.bat with the following content :
net stop MySQL
Now, to launch the MySQL Server, all you have to do is run
MySQL_launch.bat. To close the MySQL Server, run
MySQL_stop.bat. You can create a link to these batch files and put these links in the start menu, but this tut isn't the place to explain this).
If you get stuck because of these files, tell us on the forum : we can send you our batch files.
A last note : you can do the same kind of batch files with the Apache2 service.
Result
Sorry, nothing new to see here. Move on to the next section, there'll be much more things to see.
phpMyAdmin
Unzipping the stuff
Extract your phpMyAdmin file (for us it was
phpMyAdmin-2.10.0.2-english.7z) in a folder
within your server's folder. We extracted it in
G:\SERVER\HTTP\Restricted\phpMyAdmin. Move all the files and folders into
G:\SERVER\HTTP\Restricted\phpMyAdmin (instead of leaving them in the original
G:\SERVER\HTTP\Restricted\phpMyAdmin\phpMyAdmin-2.10.0.2-english).
Configuring phpMyAdmin
Create a
config directory in your phpMyAdmin folder (
G:\SERVER\HTTP\Restricted\phpMyAdmin for us).
Launch Apache and MySQL (if they aren't already running), and with your browser, go to
http://127.0.0.1:8080/Restricted/phpMyAdmin/ (or to wherever you installed phpMyAdmin). You get an error message with a link to the setup script.
Go to the setup script. Find the
Servers section and click on
Add.
Enter the MySQL root password in the
Password for config auth field.
Finish adding this server (click on the green
Add button).
In the
Configuration section, click on
Save.
Copy
G:\SERVER\HTTP\Restricted\phpMyAdmin\config\config.inc.php to
G:\SERVER\HTTP\Restricted\phpMyAdmin\config.inc.php.
Go to
http://127.0.0.1:8080/Restricted/phpMyAdmin/ again.
Here you are, phpMyAdmin is configured.
Just a last security feature
You probably noticed that you don't need any password to use phpMyAdmin, which means that virtually anyone can access your database through phpMyAdmin. Let's add some protection.
To sum up : for instance, we have 3 files :
Now go back to your browser, to
http://127.0.0.1:8080/Restricted/phpMyAdmin/ : it asks for a username and a passord, for us it's
patheticcockroach and
mypassword.
Finally
Congrats, you now have a brand new Apache HTTP Server with PHP and MySQL support, running phpMyAdmin as a database administration tool.
What's more your phpMyAdmin folder (and perhaps other folders, or even your whole server) is secured by a password.
Do not forget to keep links to the Apache Monitor,
MySQL_launch.bat and
MySQL_stop.bat for easier use (but you can still use the common Windows Service management system).
I followed all your instructions for the install but I have problems at the configuring phpMyAdmin stage. When I enterthe url c:\SERVER\HTTP\Restricted\phpMyAdmin I get an error page like this:-
phpMyAdmin - Error
Cannot load mysql extension. Please check your PHP configuration. - Documentation. It has links on mysql and documentation but neither is as you have described as there is no link to a setup script. I am installing a slightly newer version phpMyAdmin-2.11.5.1-english but that was what was available.
Please can you help.
Thanks.
Mityac