A XAMPP alternative for Linux: WordPress, PHP and MariaDB in one folder

Nextweb runs WordPress, PHP and MariaDB from one folder on Linux x64, with no sudo. What a XAMPP user gets instead, and what is not there.

· Updated · about 6 minutes to read

Nextweb is one program that runs from a folder on Linux x64. It installs PHP, MariaDB and WordPress by name, runs each site on its own port behind a web server of its own, and leaves the machine alone: no sudo, no packages from the system's package manager, no service to register. If what you want from XAMPP is a local WordPress to build a theme or a plugin against, this page shows what you get instead and what you give up. If what you want is to run a PHP project of your own, read What you give up first: Nextweb cannot deploy one as a site yet.

What XAMPP is, and what this is

XAMPP's site calls it "a completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl", with downloads for Windows and Linux at 8.2.12 and for OS X at 8.2.4 (apachefriends.org, read 17 October 2026). You install it, start its control script, and point Apache at your code.

Nextweb is a single binary. It brings a web server, installs PHP and MariaDB into its folder when something needs them, and deploys a site with four commands. A site is WordPress or a Node.js application of your own; the roadmap lists what else is not here yet.

Put it in a folder

In your terminal
mkdir nextweb-tour
cd nextweb-tour
curl -fsSL https://get.nextwebjs.com | bash
You should see
==> Nextweb installer
    Platform: x86_64
...
==> Download complete
...
Nextweb is installed.

Start Nextweb:

    ./nextweb

The installer prints the size and SHA-256 it expects from the published manifest and keeps the file only when both match. To read the script before it runs, leave off | bash and curl prints it. It does not use sudo. The download is about 120 MB, and the one file it leaves, nextweb, is the whole program.

In your terminal
./nextweb

The first start asks for an email address, fetches a free license, downloads the kernel and opens Nextweb's shell:

You should see
...
[NW] Email address required for license. Enter your email:
...
[NW] Kernel loaded successfully: NextWeb Kernel v1.0.0-rc3
...
Connected to NextWeb (/home/you/nextweb-tour/nextweb_server)
Type "help" for available commands, use <TAB> and ? for completion, "exit" or "quit" to exit.

nextweb:/>

A nextweb_server folder appears next to the program. Everything Nextweb installs goes in there.

Install PHP and MariaDB by asking for WordPress

At the nextweb prompt
pkg install wordpress
You should see
Resolving dependencies...
   Architecture: x64 (auto-detected)
Installation order: php8.3.9-linux-x64 → mariadb-11.4.5-linux-x64 → wordpress

Installing 3 package(s)...

Installing php8.3.9-linux-x64...
  downloading
  verifying cache  [##########]  100%  45.8/45.8 MB
  extracting  149.5 MB, 461 files
  postinstall
...
php8.3.9-linux-x64 8.3.9 installed successfully

Installing mariadb-11.4.5-linux-x64...
  downloading
  verifying cache  [##########]  100%  118.7/118.7 MB
  extracting  435.2 MB, 1044 files  (1s)
  postinstall
...
mariadb-11.4.5-linux-x64 11.4.5 installed successfully

Installing wordpress...
  downloading
  verifying cache  [##########]  100%  36.0/36.0 MB
  extracting  105.8 MB, 3801 files  (1s)
  postinstall
...
wordpress 7.1.3 installed successfully

One name brought three packages. PHP and MariaDB went into nextweb_server/runtime, where every site in this folder shares them, and WordPress into nextweb_server/pkg, where each site takes a copy. On the run this page quotes, all three arrived in under twenty seconds.

At the nextweb prompt
pkg list
You should see
Installed Packages:
══════════════════════

Applications:
  wordpress-7.1.3

Services:
  mariadb-11.4.5-linux-x64-11.4.5

Runtimes:
  php8.3.9-linux-x64-8.3.9

Total: 3 package(s) installed

Deploy a site and open it

At the nextweb prompt
deploy company-site to www.example.com using wordpress
commit "Deploy company website"
apply -y
You should see
Applying configuration...

Applying site configuration...
Service mariadb: running (manage with "service mariadb status" / "service mariadb restart")

Site: company-site (www.example.com)
  Allocated site listen port 4001 for company-site
  Provisioning database for site company-site...
...
  Database wp_company_site and user wp_companysite ready
  Starting PHP runtime for site...
  php-cgi listening on 19100 (2 processes, opcache off)
...
Visit: http://127.0.1.10:4001/
...
Site apply complete.

Open the Visit address and WordPress's own setup runs. The address is on your machine: each Nextweb folder gets one of its own, the first 127.0.1.10, the next 127.0.2.10, and so on, and each site in a folder gets its own port. A second site gets its own copy of WordPress, its own database and user, and its own two PHP processes; MariaDB is the one thing sites in a folder share. verify company-site asks the site for a page and reports what it found, and the first lesson shows every step with its output.

Stop it

In your terminal
./nextweb stop
You should see
NextWeb stopped.

No process of that instance keeps running; the lesson's dry run checks this after every run. To remove Nextweb, delete the folder. Two small files stay behind in ~/.nextweb under your home directory: a copy of the license, and a note of the newest kernel revision this machine has run, so that an older kernel cannot be served to it later.

What you give up

  • A PHP project of your own as a site. deploy knows two kinds of site today, WordPress and a Node.js application of your own; a package that is neither is on the roadmap under Not yet. For a PHP application that is not WordPress, XAMPP still does what Nextweb does not.
  • phpMyAdmin. There is no database window. A site's database name, user and socket are in nextweb_server/sites/<site>/.nextweb/state.json.
  • Apache's configuration. The web server is Nextweb's own, set up by deploy and set, not by a file you edit.
  • Perl.
  • Working offline. Nextweb checks its license each time it starts and does not start without an internet connection.
  • Windows and macOS. The program runs on Windows x64 and FreeBSD x64, but PHP, MariaDB and the lessons are Linux x64 only, and there is no macOS build.
  • A control panel window. The shell is the control panel; ui open opens Nextweb's welcome page in the browser.

What you get instead

  • Nothing to install on the machine. One folder and one binary, with no sudo; a second folder is a second Nextweb with an address of its own.
  • Sites that do not share. Each site has its own copy of WordPress, its own database and user, its own PHP processes and its own port.
  • Checks you can run. verify asks the site for a page and says what came back; pkg list and service list say what is installed and what is running.
  • The same program on a server. A folder on a laptop and a folder on a server are the same shape, and the same four commands deploy there. To take a site public you put nginx in front of it; automatic HTTPS is on the roadmap under Not yet.
  • Commercial use on every tier. The free license covers one machine and three sites for 30 days and is renewed by email; a Developer license covers five machines and ten sites. Pricing has the terms. A license is bound to one machine, so this is not a stack to carry between machines on a USB stick.

Next step

Download Nextweb and follow the first lesson: about fifteen minutes from the download to a WordPress site in your browser.

Questions

Can I run my own PHP project on it?

Not yet. deploy knows two kinds of site today: WordPress and a Node.js application of your own. Deploying a package that is neither is on the roadmap under Not yet.

Does it need root or sudo?

No. The installer and the program write to the folder you run them in and to a small .nextweb folder in your home directory, which holds a copy of the license and a note of the newest kernel revision the machine has run.

Can I carry the folder between machines?

A license is bound to one machine and the free license covers one, so a copy of the folder on another machine needs a license of its own. Nextweb also checks its license each time it starts, which needs an internet connection.

Which versions does it install?

On the run this page quotes, pkg install wordpress brought PHP 8.3.9, MariaDB 11.4.5 and WordPress 7.1.3. The packages page lists each name and the version it installs today.

Related: Install software, Packages, Questions people ask before they install.