Docs
Getting started
Requirements, trusting Benbow's local certificate, adding your first site and opening it over HTTPS.
On this page
Benbow runs PHP and WordPress sites on your Mac, each with its own PHP version, served over HTTPS at addresses like https://shop.localhost:8443. Everything it installs lives in ~/Library/Application Support/benbow/. It does not use Homebrew, installs nothing system-wide, and runs next to MAMP, Valet, Herd or anything else you already have.
Benbow is not released yet. See Download for its status.
Requirements
| Component | Needs |
|---|---|
| Benbow app and CLI | macOS 14 Sonoma or later |
| MySQL | Apple Silicon |
| PHP 5.6 to 7.4 | Apple Silicon and macOS 15 or later |
| PHP 8.0 to 8.5 | No extra requirement |
First launch
Once you’ve installed Benbow, open the app. It starts Benbow’s background service and shows one window: your sites on the left, the selected site on the right. Closing the window keeps Benbow running in the menu bar.
The app carries the benbow command-line tool. Every action in the app is also a CLI command, and every command accepts --json for scripts.
Trust the local certificate
Benbow serves every site over HTTPS with certificates from its own local certificate authority (CA). Your browser accepts them once you trust that CA. The app shows a banner offering to do it when needed, and the same option is in Settings → General. From the terminal:
benbow trust
macOS shows one dialog asking for your password or Touch ID. The CA is added to your login keychain, for your user only. There is no sudo and nothing system-wide. Benbow’s CA can only vouch for local names (.localhost, .test and .local), so it cannot be used against real websites. HTTPS and domains explains how.
To remove it later:
benbow untrust
Add your first site
In the app, drag a project folder into the site list, or click + and choose New Site. Pick a PHP version and confirm. Benbow generates the local domain from the site name, for example shop.localhost.
From the terminal:
benbow site add shop --php 8.4 --path ~/Sites/shop
benbow start
The folder needs an index.php or index.html. If it has neither, the app asks before adding it (the CLI needs --force). Benbow recognises WordPress and Laravel projects on its own: for Laravel it serves the public/ folder.
Benbow downloads the PHP version the site needs the first time, verifies its checksum and starts it. Then open:
https://shop.localhost:8443
No hosts file or DNS setup is needed: macOS resolves every *.localhost name to your own Mac. Sites covers the other ways to create a site, including new WordPress and Laravel projects.
Start and stop
The toolbar has one Start/Stop control for all sites. Start runs the web server (Caddy) and only the PHP versions your sites use. Stop turns off every Benbow service. Benbow never stops or changes services it did not start.
benbow start
benbow stop
benbow status # services, sites and their URLs
Each site also has its own switch in the list, to stop serving it without removing it.
In Settings → General you can choose to open Benbow at login and to start your sites when the app launches. Both are off until you turn them on.
The menu bar
Benbow’s icon in the menu bar lists your sites for quick opening, and offers Start/Stop, Adminer, the mail inbox and Quit. The icon is dimmed while Benbow is stopped. When component updates are available, the toolbar shows a small “Updates” button and the menu bar offers to install them. Nothing is installed without a click.
Ports
If port 8443 is taken, benbow start picks the first free port after it. You can also serve sites on the standard port 443, so addresses have no port at all. See HTTPS and domains.