Skip to content

Comparison

FlyEnv vs XAMPP One shared stack or one environment per project?

XAMPP is a simple, all-in-one PHP stack for general use. FlyEnv lets each local project use the runtimes, web servers, databases, and services it needs.

macOS Windows Linux Free and open source
X

XAMPP

One shared stack for all projects

ApacheApache
PHPPHP
MariaDBMariaDB

htdocs

(one web root)

/project-a

/project-b

/project-c

All projects share the same stack and configuration.

F

FlyEnv

A dedicated environment per project

Project A · Laravel

NginxNginx
PHP 8.3PHP 8.3
MySQLMySQL
RedisRedis

Project B · WordPress

ApacheApache
PHP 7.4PHP 7.4
MariaDBMariaDB
MMailpit

Project C · Node.js app

CaddyCaddy
Node.jsNode.js
PostgreSQLPostgreSQL
MinIOMinIO

Each project has its own runtimes, services, ports, and configuration.

Three practical differences

Not just a different stack, but a different way to develop.

01

Multiple runtime versions

Run different versions of PHP, Node.js, Python, and more side by side while keeping projects independent.

PHP 7.4 | PHP 8.1 | PHP 8.3
02

Build the stack each project needs

Choose Nginx, Apache, Caddy, databases, caches, mail testing, object storage, or your own project service.

Nginx + PHP + MySQL + Redis
03

Custom domains and HTTPS

Give every local site its own domain and manage local certificates, ports, rewrite rules, and logs from one place.

https://shop.test

One shared stack vs one environment per project

Same idea, very different development experience.

X

XAMPP

Shared PHP stack

ApacheApache
PHPPHP
MariaDBMariaDB
phpMyAdminphpMyAdmin
htdocs (one web root)
/project-a/project-b/project-c
  • Projects typically share the same runtime versions.
  • Different requirements need additional configuration.
  • Runtime and server configuration is generally shared.
F

FlyEnv

Project-based environments

Project A

NginxNginx

PHP 8.3PHP 8.3

MySQLMySQL

RedisRedis

Project B

ApacheApache

PHP 7.4PHP 7.4

MariaDBMariaDB

MMailpit

Project C

CaddyCaddy

Node.jsNode.js

PostgreSQLPostgreSQL

MinIOMinIO

  • Each project can match its required runtimes and services.
  • Local sites, ports, logs, and HTTPS stay together.
  • Start related services together when a project needs them.

What this looks like in daily development

See the same setup in FlyEnv's runtime, Host, and service workflows.

FlyEnv runtime version installation interface

Multiple runtime versions

Install and run multiple PHP versions, plus other runtimes, without conflicts.

Explore PHP in FlyEnv →
FlyEnv local site HTTPS configuration interface

Local domains and HTTPS

Create local sites with custom domains and manage local certificates without editing htdocs conventions.

Explore local sites →

Feature comparison

A practical comparison of commonly used local-development capabilities.

CapabilityXAMPPFlyEnv
ApacheAvailableBuilt-inAvailableBuilt-in option
PHPAvailableBundled versionAvailableMultiple managed versions
MariaDB / MySQLAvailableMariaDB includedAvailableMultiple database modules
phpMyAdminAvailableBundledAvailableAvailable through local tools
NginxNot includedNot includedAvailableBuilt-in option
CaddyNot includedNot includedAvailableBuilt-in option
PostgreSQLNot includedNot includedAvailableBuilt-in module
RedisManualAdditional installAvailableBuilt-in module
Node.js / Python / GoNot includedNot includedAvailableBuilt-in runtime modules
Local custom domainsManualManual configurationAvailableBuilt-in Host workflow
Local HTTPSManualManual or additional setupAvailableManaged local-site workflow
Startup groupsManualNot availableAvailableBuilt-in project services
Mail testingManualAdditional installAvailableMailpit module
Database GUI toolsAvailablephpMyAdminAvailablephpMyAdmin, pgAdmin, DbGate, Redis Commander
AI / MCP integrationNot includedNot includedAvailableFlyEnv MCP Server and AI CLI modules

A typical Laravel workflow

One common way these environments differ in practice.

With XAMPP

1

Start Apache and MariaDB.

With FlyEnv

1

Create or import a local site.

With XAMPP

2

Place or link the project into the local web root.

With FlyEnv

2

Select the PHP version and choose Apache, Nginx, or Caddy.

With XAMPP

3

Use the bundled PHP version and configure the application.

With FlyEnv

3

Add a custom domain and enable local HTTPS when needed.

With XAMPP

4

Configure a virtual host if a custom domain is needed.

With FlyEnv

4

Start Redis, Mailpit, or other project services.

With XAMPP

5

Configure HTTPS, Redis, or mail testing separately when required.

With FlyEnv

5

Save related services as a startup group if desired.

Which one should you choose?

Both tools can be useful; the right choice depends on how your projects are organised.

Choose XAMPP if

  • You want a familiar Apache + PHP + MariaDB bundle.
  • Your projects can use roughly the same PHP environment.
  • You mainly work with traditional PHP applications.
  • You prefer a simple, established local stack.

Choose FlyEnv if

  • Your projects need different PHP, Node.js, or other runtime versions.
  • You use Nginx, Caddy, PostgreSQL, Redis, or other local services.
  • You want custom domains and HTTPS managed from one place.
  • You use AI coding clients or local AI services such as Ollama and want them managed alongside your project stack.

Both are valid choices—the better fit depends on whether you need a simple shared PHP stack or project-specific environments.

Moving from XAMPP to FlyEnv

It is easy to move your existing projects. No application rewrite is required in most cases.

1

Move your project

Move or keep your project anywhere you prefer. Your project no longer needs to live inside `htdocs`.

2

Create a local site

Import or create a site in FlyEnv and select the required runtime and service settings.

3

Import your database

Import a dump with the documented credentials, then run your application tests and adjust extensions or environment variables.

Need more context? Read the broader FlyEnv vs Docker & XAMPP guide.

Frequently asked questions

Do I need to change my project code?

Usually no. Recreate the local runtime, site, database, and environment variables, then run the application tests before switching daily work.

Do I have to move my projects out of htdocs?

No. FlyEnv can use an existing project directory; it does not require the project to live inside the XAMPP web root.

Can I still use Apache with FlyEnv?

Yes. Apache is available alongside Nginx and Caddy for local sites and project services.

Does FlyEnv replace XAMPP completely?

It can replace the local workflow for many projects, but container-based production parity or a team standard may still call for another tool.

Can I run different PHP versions for different projects?

Yes. FlyEnv can manage multiple PHP versions and bind a project or local site to the version it needs.

Is XAMPP suitable for team usage?

It can be a practical shared baseline for traditional PHP applications when everyone follows the same bundle and web-root conventions.

Is FlyEnv free for local development?

FlyEnv is free and open source; see the licensing guide for the current details.

Is XAMPP’s database MySQL or MariaDB?

Current Apache Friends documentation identifies MariaDB in current XAMPP generations and notes compatibility with common MySQL workflows.

Try your next project in FlyEnv

Create a local site, select the runtimes and services it needs, and start working.