WampServer — Windows PHP Development

WampServer gives you Apache, MySQL (or MariaDB), and PHP on Windows in a single installer. It's similar to XAMPP, but designed exclusively for Windows and has one killer feature XAMPP doesn't: you can switch between multiple PHP versions, Apache versions, and MySQL versions with two clicks from the system tray icon. If you maintain projects that require different PHP versions (PHP 7.4 for a legacy app, PHP 8.3 for a new one), WAMP makes this painless.

After installation, drop your PHP files into C:\wamp64\www\ and access them at localhost.

WAMP Localhost: http://localhost

Install WampServer

Download WampServer from wampserver.com. It requires 64-bit Windows and Visual C++ Redistributables (the installer checks for these and tells you which ones are missing). If the installer fails, it's almost always because a VC++ redistributable isn't installed — download them from Microsoft's website.

After installation, WampServer lives in your system tray (bottom-right corner of the taskbar). The tray icon is your control center — left-click it for quick access to settings, right-click for tools and options.

The Tray Icon Colors

WampServer communicates its status through the tray icon color. This is the first thing to check when something isn't working:

🟢 Green — All services (Apache + MySQL) are running. Everything is working. localhost should load.

🟠 Orange — Some services are running but not all. Usually MySQL started but Apache didn't (or vice versa). Left-click the tray icon to see which service is stopped, then start it manually.

🔴 Red — All services are stopped. Either WampServer just started and services haven't initialized yet (wait 10 seconds), or something is preventing them from starting.

Why Apache Won't Start (The Most Common Problem)

If the icon stays orange or red and Apache refuses to start, something else is using port 80. The usual suspects on Windows:

  • Skype — used to grab port 80 by default. Go to Skype Settings → Advanced → uncheck "Use port 80 and 443"
  • IIS (Internet Information Services) — Windows' built-in web server. Open Services (services.msc), find "World Wide Web Publishing Service," and stop it
  • Another WAMP/XAMPP instance — only one can run at a time

Quick way to find what's blocking port 80:

netstat -ano | findstr ":80"
:: Look at the PID column, then:
tasklist | findstr "PID_NUMBER"

Switching PHP Versions

This is WAMP's standout feature. Left-click the tray icon → PHP → Version → select the version you want. Apache restarts automatically with the new PHP version. No config editing, no reinstalling.

You can install additional PHP versions from the WampServer addons page. This lets you test your code against PHP 7.4, 8.0, 8.1, 8.2, and 8.3 by switching between them in seconds. Try doing that with XAMPP — you'd need to reinstall or manually swap binaries.

Setting Up Virtual Hosts

Instead of accessing projects at localhost/project-name, you can set up virtual hosts to use custom domains like myproject.local:

  1. Left-click tray icon → Apache → httpd-vhosts.conf
  2. Add a VirtualHost block (see below)
  3. Edit C:\Windows\System32\drivers\etc\hosts — add 127.0.0.1 myproject.local
  4. Restart Apache from the tray icon
<VirtualHost *:80>
    ServerName myproject.local
    DocumentRoot "C:/wamp64/www/myproject"
    <Directory "C:/wamp64/www/myproject">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

WAMP vs XAMPP vs Laragon

WAMPXAMPPLaragon
PlatformWindows onlyCross-platformWindows only
PHP version switchingBuilt-in (tray menu)Manual swapBuilt-in (tray menu)
Virtual hostsManual configManual configAutomatic
HTTPS/SSLManual configManual configOne click
PortableNo (installer-based)YesYes
Best forMulti-version PHP testingCross-platform devsFastest setup, Laravel

Key File Locations

FilePath
Web rootC:\wamp64\www\
php.iniC:\wamp64\bin\php\phpX.X\php.ini
Apache configC:\wamp64\bin\apache\apache2.4.X\conf\httpd.conf
MySQL configC:\wamp64\bin\mysql\mysqlX.X\my.ini
Apache error logC:\wamp64\logs\apache_error.log

Common Fixes

phpMyAdmin shows "Access denied": Default MySQL credentials for WAMP are username root with no password (leave it blank). If that doesn't work, someone changed the root password. Reset it via the MySQL console.

"localhost" shows a Windows IIS page: IIS is running and intercepting port 80 before WAMP can. Stop the "World Wide Web Publishing Service" in Windows Services and restart WAMP.

Missing VC++ Redistributable errors: WAMP requires specific Visual C++ Redistributable packages. Download the "Visual C++ Redistributable" bundle from Microsoft that includes 2015-2022 versions. Install both x86 and x64 versions.