SLOPP

Apache, PHP and MariaDB, run from one panel.

SLOPP is an XAMPP-style control panel, rewritten in Rust with a native GPUI interface, for Linux, macOS and Windows. It runs the stock servers your system already has, keeps the whole stack in one folder, and shows what's listening on which port.

Apache and MySQL are stopped

Click a unit to start or stop it, as in the tray icon.

The SLOPP window in its dark appearance: Apache running on ports 8080 and 8443 with PHP 8.4 through PHP-FPM, MySQL running MariaDB on port 3306, the stack folder, and a log of the start. The SLOPP window in its light appearance: Apache running on ports 8080 and 8443 with PHP 8.4 through PHP-FPM, MySQL running MariaDB on port 3306, the stack folder, and a log of the start.

Two modules, like XAMPP

Apache and MySQL, the same pair XAMPP ships, without Tomcat, FTP or mail. SLOPP doesn't bundle the servers: it finds the ones you installed, on PATH and in the usual places, and Settings takes explicit paths. Ports default to XAMPP's 80, 443 and 3306, or 8080 and 8443 where your user can't use low ports.

Apache

Apache httpd, with PHP through PHP-FPM, or mod_php where PHP has an Apache module

HTTP
80
HTTPS
443

MySQL

MariaDB with a database created on its first start

MySQL
3306

Admin

phpMyAdmin or Adminer downloaded when you ask for it, served by Apache

Path
/phpmyadmin/

What the panel does

Starts and stops each server
One button per module, with its ports, PIDs and a log of what happened. Config errors show up with line numbers before Apache starts.
Leaves your config alone
Config files are written once and never overwritten. Ports and paths go on the command line at start, so changing a port doesn't touch your edits.
Finds port conflicts
The Ports page shows which program holds 80, 443 and 3306, so you know why a server won't start before you go looking.
Lives in the tray
The icon's lamps show what's running: the top one is Apache, the middle one MySQL. Its menu starts and stops modules and opens the site.
Keeps servers running
Close the panel and your site stays up, as with XAMPP. Settings can stop everything on quit instead.
Written in Rust
One native program, drawn on the GPU by GPUI, the UI framework behind the Zed editor. No Electron and no web view.

Install

Install the servers first, then SLOPP. The builds aren't signed, so your system may warn the first time you open one.

Linux

x86_64, glibc 2.39 or newer

  1. Install Apache, PHP-FPM and MariaDB with your package manager. On Debian and Ubuntu:
    sudo apt install apache2 php-fpm \
      php-mysql mariadb-server
  2. Make the AppImage executable and run it. It adds itself to your applications.

On NixOS, the flake brings the servers too:

nix run github:gabors0/slopp

AppImage Tarball

macOS

Apple silicon

  1. Install PHP and MariaDB with Homebrew. Apache comes with macOS; Homebrew's httpd gets a newer one that runs PHP as mod_php.
    brew install php mariadb
  2. Open the disk image and drag SLOPP to Applications.
  3. The app isn't notarized: allow it in System Settings, Privacy & Security, or run
    xattr -dr com.apple.quarantine \
      /Applications/SLOPP.app

Disk image

Windows

x86_64, Windows 10 or newer. New, so expect rough edges.

  1. Run the setup. It installs for your user, without admin rights.
  2. Click Install on a module whose servers are missing. SLOPP gets them with winget: Apache Lounge's Apache, PHP's Thread Safe build and MariaDB.
  3. If SmartScreen warns, choose More info, then Run anyway.

An existing XAMPP's Apache, PHP and MariaDB work too.

Setup Portable zip

Everything in one folder

Laid out like XAMPP's, in ~/.local/share/slopp (%LOCALAPPDATA%\slopp on Windows). Put your sites in htdocs.

htdocs/           your sites
apache/conf/      httpd.conf and extras
apache/logs/      error.log, access.log
php/php.ini
mysql/my.cnf
mysql/data/       the databases
phpMyAdmin/       once you get it
adminer/          once you get it

Or from a terminal

sloppctl is the counterpart of XAMPP's lampp script, and works on the same stack as the panel.

sloppctl start [apache|mysql]
sloppctl stop [apache|mysql]
sloppctl restart [apache|mysql]
sloppctl status
sloppctl ports      who listens where
sloppctl paths      the stack and programs
sloppctl install-phpmyadmin
sloppctl install-adminer