Everything XenoHost does
XenoHost runs Apache, PHP and MySQL on your Mac the way production does. The app and the xenohost command line share one engine, and every change goes through the same safe Save.
A real hostname for every site
Add a site folder and XenoHost writes its Apache virtual host, a /etc/hosts entry and a TLS certificate. A small helper that you approve once edits only XenoHost’s own marked block in /etc/hosts.
- Extra hostnames, subdomains and aliases per site
- Groups, search and filters in the sidebar
- New Site, edits and Remove all go through Save
- Site settings live in XenoHost, never in your project folder
The exact PHP version, per site
Run several PHP 8.x patch versions side by side, such as 8.5.7 and 8.5.10, each with its own PHP-FPM. Every site pins one, and switching a site’s version is a transaction like any other change.
- Install and remove versions in Settings › PHP; a version in use can’t be removed
- Bundled extensions, plus signed add-ons such as Xdebug
- php.ini values per version and per site
xenohost execruns commands with the site’s PHP
$ xenohost php mysite 8.5.10
$ xenohost exec mysite -- composer install
$ xenohost exec mysite -- php artisan migrate
HTTPS from your own local CA
Site certificates are issued from the mkcert certificate authority you already have, using the Apache engine’s OpenSSL. XenoHost never creates a CA or changes what your Mac trusts, and it tells you what to run if mkcert isn’t set up.
- Certificates reissue automatically within 30 days of expiry
- An optional redirect from HTTP to HTTPS
- Your CA key is used where it is, never copied
Every site on your iPhone, by name
While XenoHost runs, it announces every enabled hostname on your local network, subdomains included. Safari on an iPhone on the same Wi-Fi opens blog.mysite.local with no DNS setup. Send to iPhone AirDrops a profile with only your CA’s public certificate and shows the trust steps.
- Settings › Phone shows each name’s status
- Names follow your Mac when its network address changes
- Needs a network that allows Bonjour; some guest and office Wi-Fi blocks it
MySQL matched to production
XenoHost installs Oracle’s official MySQL Community Server 8.0.45, checks its checksum and signatures, and binds it to 127.0.0.1 only. The Databases tab links databases to sites, and can create, export and import them.
- Copy a site’s database settings for its .env
- Common settings have their own controls, plus an advanced my.cnf template
- Your data and backups are always kept unless you explicitly delete them
Logs that tell you what went wrong
The Logs window recognises Apache, PHP-FPM, MySQL and Laravel entries and shows them by site. Stack traces stay together, repeats are grouped, and common errors get a plain-language explanation. The raw logs are always one click away, with live Follow.
- Each site has its own Apache and PHP logs
- Logs rotate at a size you choose
xenohost logs --site … --jsonreads the same logs for scripts and agents
Coming from MAMP PRO?
XenoHost reads MAMP PRO’s sites and brings each one across with its exact PHP version, or the nearest newer one XenoHost has. The whole MySQL server comes over as an APFS clone, so MAMP’s own data stays untouched. Port presets let you run standard ports, or 8080, 8443 and 3307 alongside MAMP.
Import never changes MAMP PRO’s files or data.
- Import. Choose the MAMP PRO sites to bring over.
- Compare. Run alongside MAMP on alternate ports.
- Switch ports. Move to 80, 443 and 3306 in one Save.
MAMP PRO is a trademark of its respective owner. XenoHost is independent and is not affiliated with or endorsed by its owner.
The small things that add up
-
Server Status
Each service’s state, version, ports, process and logs, with Start, Stop and Restart.
-
A native menu bar menu
Stack state, each server, your sites with their actions, and logs, one click from the menu bar.
-
Apache overrides without hand-editing
Global, reusable and per-site override layers. The screen shows which layer each value comes from.
-
Doctor
Checks engines, signatures, config drift, ports and your CA, and says what to do about anything wrong.
-
A scriptable CLI
Every command takes
--jsonand--dry-run, with documented exit codes, for scripts, CI and AI agents. -
Near-zero idle energy
Event-driven, with no polling: 0.005% CPU over an idle hour with its windows closed.
-
Its own signed engines
Apache and PHP are built, signed and notarized by us; MySQL is Oracle’s official build. No Homebrew, at build time or run time.
-
Starts when you want
Start at login, start servers when the app opens and stop them when it quits, and show stack status on the Dock icon.
-
No account, no telemetry
Your sites, settings, databases and logs stay on your Mac.
Planned Mail catching with MailpitMySQL 8.4 as an alternativeInstalling PHP versions from a signed online catalogKeeping iPhone names reachable after the app quits
Try XenoHost in the beta
Leave your email and we’ll send you a download link as soon as there’s a beta build for you to try.