Skip to content
Helm logo Helm Download

XAMPP alternatives for Windows:
an honest comparison

Updated

Disclosure

We make Helm, which is one of the six options below. We have tried to write the comparison we wish had existed when we were looking, which means saying plainly where the other options are better and where you should not switch at all. If you find something here that is wrong or out of date, open an issue and we will correct it.

The short version

  • Happy with XAMPP? Stay. Switching costs an afternoon and gains you nothing you are missing.
  • Want the best all-round Windows environment? Laragon. Portable, fast, a local domain per project with no config editing.
  • Need to match a production server? Docker with WSL2. Nothing else is as accurate.
  • Keep losing MySQL to corruption on shutdown? Helm. That specific problem is the reason it exists.
  • Building WordPress sites? Local or DevKinsta will save you setup time neither of the general tools will.

Side by side

Tool Platform Process model Per-project domains Cost
XAMPP Win / mac / Linux Child processes, stopped by kill Manual vhost editing Free, Apache 2.0
Laragon Windows Managed by Laragon itself Automatic .test Free to use, licence removes reminders
WampServer Windows Windows services Built-in vhost tool Free, GPL
MAMP macOS / Windows Managed by MAMP Pro version only Free tier, MAMP Pro paid
Docker + WSL2 Windows Linux containers Yours to configure Free for small business
Helm Windows Native Windows services Automatic .local Free, MIT

“Process model” is the column that matters more than it looks. It decides what happens to your databases when Windows restarts for an update at 2am.

Laragon

Laragon is the alternative most people should look at first, and we would rather say that than pretend otherwise. It is portable, so the whole environment lives in one folder you can copy to another machine or back up wholesale. It creates a working .test domain for every project folder you drop in, with no vhost file to edit and no hosts file to touch. Switching PHP versions is a menu selection, and it rewrites php.ini and your PATH to match.

It does not use Windows' Service Control Manager; it starts and stops the bundled Apache, Nginx and MySQL itself. That is worth knowing, but in practice Laragon users report it handling Windows restarts and sleep without the database damage XAMPP is known for — so this is a design difference, not a defect.

The thing to know before you commit: Laragon's features are all free to use, but unlicensed installs show periodic reminders asking you to buy a licence. The maintainer has been open about why. Whether that bothers you is a matter of taste, not a technical limitation.

Pick Laragon if: you want the most capable Windows environment with the least configuration, and you are comfortable with a nag screen or buying a licence.

WampServer

WampServer has been around longer than most of this list and has settled into being dependable rather than exciting. It is Windows-only, lives in the system tray, and installs Apache, MySQL and PHP with a vhost management screen built in. It registers its components as Windows services, which puts it on the right side of the shutdown question.

Its weaknesses are age-related: the interface is dated, adding PHP versions means downloading add-on packages and dropping them into the right folder, and the documentation assumes you already know what you are doing.

Pick WampServer if: you want something long-established and Windows-native, and you do not mind a dated interface.

MAMP

MAMP is a macOS product with a Windows build, and it shows — the Windows version tends to lag. The free tier covers a single Apache and MySQL setup. Per-project hosts, Nginx, and multiple PHP versions are MAMP Pro features, which is a paid upgrade.

Pick MAMP if: you already use it on a Mac and want the same interface on a Windows machine. Otherwise there is little reason to choose it over Laragon on Windows.

Docker with WSL2

This is the only option on the list that solves a problem none of the others do: making your local environment genuinely the same as your server. You run the same PHP image, the same MySQL version, the same extensions. “It works locally” stops being a sentence that means nothing.

The costs are real. There is a learning curve that has nothing to do with PHP — Dockerfiles, compose files, volumes, networking. It uses considerably more memory than a native stack. And filesystem performance is poor if your project files sit on the Windows side of the boundary rather than inside the WSL2 filesystem, which is a mistake nearly everyone makes once.

Pick Docker if: you deploy to Linux servers and the gap between local and production is costing you real time. Skip it if you are still learning PHP.

Helm

Helm exists because of one specific failure, so it is worth being narrow about when it is the right answer. XAMPP's control panel starts mysqld.exe as a child process and stops it with a hard kill, which is exactly what corrupts InnoDB's data files mid-write. That produces the “MySQL shutdown unexpectedly” loop, and the usual advice is to rename your data folder and rebuild from a backup, which repairs the damage without touching the cause.

Helm registers Apache and MySQL as native Windows services. Windows then stops them with a SERVICE_CONTROL_STOP control code, which MySQL handles as a graceful shutdown — and sends it automatically on log-off, restart, and update reboots, so the failure path closes even when you are not the one shutting anything down. Everything else about Helm follows from wanting XAMPP's simplicity without that: one installer with Apache, PHP, MariaDB, phpMyAdmin and the VC++ runtime inside it, installed to C:\Helm, automatic .local domains per project, one-click database backup, and phpMyAdmin without a login round-trip.

Where it is behind: it is younger than everything else here, it is Windows-only, it does not do PHP version switching yet, and it is not portable the way Laragon is. If you are choosing on breadth of features, Laragon wins. If you have lost a database to this bug and want it to stop, that is the case Helm was built for.

Try it

One installer, free, MIT licensed, Windows 10 and 11. It does not require removing XAMPP first — but if you keep both, run only one at a time, since they will compete for ports 80 and 3306.

Moving without losing anything

Whichever you pick, migrate through exports, not by copying folders. The single most common way people lose data in a switch is copying a raw MySQL data directory into a different MySQL or MariaDB version, which can leave tables that exist but will not open.

  1. With XAMPP still running, open phpMyAdmin and export each database using the Export tab, Quick / SQL. Or run mysqldump -u root --all-databases > backup.sql from xampp\mysql\bin.
  2. Copy your project folders out of htdocs somewhere safe.
  3. Stop XAMPP entirely before starting the new environment, so nothing fights over ports 80 and 3306.
  4. Install the new one, import the .sql files, and copy your projects into its web root.
  5. Leave XAMPP installed but stopped for a week. It costs nothing and saves you if you missed a database.

If XAMPP will not start at all right now, you cannot export anything until you get it running again — recover it first, then migrate.

Common questions

Can I have two of these installed at once?

Installed, yes. Running, no — not without changing ports. Both Apache instances want port 80 and both MySQL instances want 3306, and the second one to start will simply fail. Keeping the old one installed but stopped during a migration is sensible; running both is not.

Is XAMPP actually bad?

No. It has introduced more people to PHP than anything else and it still works. The criticism here is narrow and specific: how its control panel stops MySQL. Everything else about XAMPP is fine.

Which is fastest?

On Windows, the native stacks (XAMPP, Laragon, WampServer, Helm) are close enough that the difference is mostly noise, and dominated by your own code and disk. Docker is the outlier, and it is slower — sometimes dramatically — when project files live on the Windows filesystem rather than inside WSL2.

Do any of these work offline?

All of the native ones do, completely, once installed. Docker needs network access to pull images the first time.