This thread provides an easy to understand step-by-step guide to configure WAMP: Windows, Apache, MySQL, PHP stack that can used as such or as a platform for other components such as MediaWiki, a popular Open Source Wiki engine. The presented configuration provides a fully functional WAMP stack and MediaWiki as an example application on top of it. Advanced performance configurations or security considerations are not discussed in this document.
Windows Configuration
For Microsoft Windows no changes to default configuration are needed. Naturally it is always recommended to apply available security updates but for WAMP to operate they are not required.
It is worth noticing that if Internet Information Services (IIS) has been enabled it must be disabled before proceeding in order to allow Apache to run on the default HTTP port. If you do not know what IIS is or you have not enabled it you can ignore this notice. Configuring both IIS and Apache to run on the same host is outside of scope of this document.
These instructions have been tested with Windows 2000, Windows XP, and Windows 2003 Server. Other Windows versions can also be used.
MySQL Configuration
To begin MySQL installation, first download latest version of MySQL 5.0 Windows Essentials as an MSI package.
During MySQL installation, select Typical installation and use default configuration values except for Sign-Up where you probably want to select Skip Sign-Up. When Setup Wizard is completed, make sure the option Configure the MySQL Server now is set.
For MySQL Server Instance Configuration, select Standard Configuration. Next, you must set option Include Bin Directory in Windows PATH. This setting is crucial, otherwise a required library, libMySQL.dll, will not be found later during Apache startup. Finally, enter a proper root password. There is no need to neither enable remote root access or create an Anonymous Account.
Please inspect messages during MySQL startup and verify that MySQL has been started successfully. Then, you must reboot the system. Otherwise, the required library libMySQL.dll will not be found during Apache startup when Apache is trying to load Apache's PHP module and Apache will, perhaps a bit confusingly, complain that it is unable to load the PHP's MySQL library, php_mysql.dll. Therefore, it is necessary to reboot the system at this stage and then continue to PHP configuration.
PHP Configuration
PHP for Windows must be installed from the zip package, not using the installer because the installer does not work correctly when setting up the configuration files. Download the latest Windows binary version from the 5.x release series.
Create folder C:\Program Files\PHP5 and unzip the downloaded package there. Then, in folder C:\Program Files\PHP5 you need to copy the file php.ini-recommended as php.ini and make two changes into the php.ini file. Change extension_dir to:
extension_dir = "C:/Program Files/PHP5/ext/"
and also uncomment the following line:
extension=php_mysql.dll
That is all what is needed for PHP configuration. Additionally, however, if you wish to run PHP from the command line it would be useful to add its installation directory to Windows PATH but for WAMP to operate it is not required. After Apache is installed and configured, also PHP configuration can be tested.
Apache Configuration
Official Apache web site provides also binaries for Windows. Download the latest available MSI package from the 2.2.x release series.
During Apache installation, use default values for all configuration queries. Make sure, though, that you fill in a valid e-mail address to Administrator's Email Address field, otherwise Apache will fail to start due to a configuration error. After the installation has finished a tray icon should appear to indicate that Apache server is up and running.
To configure Apache server edit configuration via a Start Menu item or open the file C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf in a text editor and change the following line:
DirectoryIndex index.html
to include index.php so that the result will look like:
DirectoryIndex index.php index.html
This will cause Apache to serve page index.php by default, if present. Then, add into the same file after all the LoadModule directives the following lines:
# Enable PHP5
LoadModule php5_module "C:/Program Files/PHP5/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/Program Files/PHP5"
These lines cause Apache to load and use PHP module and its configuration. The last directive, PHPIniDir, is crucial, without it Apache will fail to read the PHP configuration file.
Apache is now configured. For changes to take effect, Apache must be restarted either from Start Menu or using the Apache Monitor that can be started from the tray icon. No error messages will appear if configuration has been done as instructed.
Before finally proceeding to MediaWiki configuration it is a good idea to check at this stage that WAMP really is working properly. This can be done simply by creating file C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test.php that contains only the following line:
<?php phpinfo(); ?>
The result can then be seen by opening the page
http://localhost/test.php in a browser. Make sure that PHP Loaded Configuration File is C:\Program Files\PHP5\php.ini and that MySQL has its own section in the configuration details noting that MySQL support is enabled. As could be noticed, the default content location, DocumentRoot, for Apache to serve content is C:\Program Files\Apache Software Foundation\Apache2.2\htdocs.
At this this stage the WAMP stack is up and running, congratulations!
MediaWiki Configuration
Now that WAMP is up and running, MediaWiki can be installed. Download latest stable release and extract the downloaded package to C:\Program Files\Apache Software Foundation\Apache2.2\htdocs. Rename the extracted folder, e.g., mediawiki-1.13.3 as wiki.
MediaWiki configuration is then done simply by surfing to
http://localhost/wiki/ and answering to configuration queries. Sufficient help for most queries is available at the configuration page so most of the items are not covered here.
Shared memory caching would provide performance speedup but in this basic configuration, no caching is available. For all e-mail related queries select disabled as needed configuration of other components for e-mail support is outside of scope of this document. Finally, in the Database config section the provided default values are suitable. For the field DB password use a proper password that is different from the MySQL root password that was set during MySQL installation. The previously set MySQL root password must then be entered into the field Superuser password. Note that you must also set the option Use superuser account. For Database charset it is recommended to select Backward-compatible UTF-8.
After hitting the Install! wait a minute until the next page is loaded. Check that it says Installation successful! and to finish the configuration move the file wiki\config\LocalSettings.php into the parent folder wiki as instructed by the installer. To improve security, the folder C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\wiki\config should be removed after a successful installation.
Congratulations, all is now done and your Wiki is ready for use at
http://localhost/wiki/.