Free

Free coded apps to suit all. No sign up, no email, usable offline, updates when I can, feedback welcome. Send feedback

Getting started

A free local web server for Windows

Server by Zaweba is a free local web server for Windows with Apache, MariaDB, four PHP versions, Adminer and a mail catcher behind one clear control panel.

A free local web server for Windows

Server by Zaweba is a free local web server for Windows. It bundles Apache 2.4, MariaDB 11.8, PHP 5.6, 7.4, 8.2 and 8.3, the Adminer database manager and the Mailpit mail catcher, and puts them all behind one control panel. It's free software under the EULA, runs offline and asks for no account.

A local web server lets you build and test websites on your own computer before they go anywhere public. You change a file, refresh the browser and see the result straight away, without uploading anything. For PHP sites that also means a database and somewhere for test emails to go, which is exactly what this bundle covers.

What comes in the box

Apache serves the pages. It runs as an ordinary console program with a generated configuration, and every change is checked with a configuration test before it's used, so a bad setting can't knock over the server that's already running. It also never touches the Windows service called Apache2.4, so it won't disturb another install such as XAMPP.

PHP comes in four versions, each with its own php.ini and its own pool of workers. Every site picks its version from a list, and switching it is live: Apache restarts gracefully and the site is on the new version. That's handy for checking whether an older project survives a move to PHP 8.

MariaDB holds the databases. The Databases page lists them with their tables and size, makes a new database and user in one click, and imports or exports .sql files. Adminer opens already logged in. Mailpit catches every message PHP's mail() sends, so contact forms and password resets can be tested without reaching a real inbox.

The control panel

Each service has a card with a status light, its ports, its process id, Start, Stop and Restart buttons, a link to its page and the last lines of its log. Lights in the side bar and a status bar listing every port mean you can see the state of everything at a glance.

If a port Server wants is already in use, it tells you which program has it, with its name, process id and path, and offers a free one such as 8080 or 3307. The other program is never stopped or changed. A dashboard web page on your own PC lists your sites with their addresses and PHP versions and shows the MariaDB connection details.

Sites in a few steps

The new-site wizard asks for a name, a folder, a PHP version and, if you want them, HTTPS, a starter page and a database. The site then answers on name.test and on name.localhost. The .localhost address needs no administrator rights at all; name.test needs one hosts file entry, which Server writes after explaining why.

HTTPS uses Server's own local certificate authority, which makes a certificate for each site. Trust the authority once and https works in Edge and Chrome without warnings. Firefox keeps its own list, so it needs the authority imported there by hand.

Why it suits a Windows PC

The whole thing runs from one folder of about 557 MB, with the components, a data folder and a www folder side by side. Paths in the configuration files are set again on every start, so you can move the folder. Apart from what you agree to (hosts lines, starting with Windows and trusting the certificate authority), nothing is installed in Windows.

It's also private by design. Apache, MariaDB, Mailpit and the dashboard listen on 127.0.0.1 only, so your work can't be reached from the network. There are no accounts, no cloud and no telemetry.

The services are not Windows services. They run while the app is open, or while it sits in the notification area, and each runs in its own Windows job so nothing is left behind if the app closes. Help, then Components and licences, lists every bundled part with its version and licence if you like to know exactly what you're running.

For PHP developers, students learning databases, or anyone keeping an old site alive for testing, that's a complete local stack with very little to set up.