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.
C:\wamp64\www\ · phpMyAdminInstall 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:
- Left-click tray icon → Apache → httpd-vhosts.conf
- Add a VirtualHost block (see below)
- Edit
C:\Windows\System32\drivers\etc\hosts— add127.0.0.1 myproject.local - 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
| WAMP | XAMPP | Laragon | |
|---|---|---|---|
| Platform | Windows only | Cross-platform | Windows only |
| PHP version switching | Built-in (tray menu) | Manual swap | Built-in (tray menu) |
| Virtual hosts | Manual config | Manual config | Automatic |
| HTTPS/SSL | Manual config | Manual config | One click |
| Portable | No (installer-based) | Yes | Yes |
| Best for | Multi-version PHP testing | Cross-platform devs | Fastest setup, Laravel |
Key File Locations
| File | Path |
|---|---|
| Web root | C:\wamp64\www\ |
| php.ini | C:\wamp64\bin\php\phpX.X\php.ini |
| Apache config | C:\wamp64\bin\apache\apache2.4.X\conf\httpd.conf |
| MySQL config | C:\wamp64\bin\mysql\mysqlX.X\my.ini |
| Apache error log | C:\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.