Apache and services
The Apache panel is the server itself: whether it is running, and the modules your sites need. The Services panel is everything else Homebrew keeps running in the background.
Status
The sidebar carries an Apache indicator at all times and re-checks every fifteen seconds, so you can see the server is up from any screen.
The panel itself shows the same state with a Restart button next to it. That runs:
sudo apachectl restart
which works without a password because of the sudoers rule granted during installation.
Note that it is a restart, not a graceful reload — in-flight requests are dropped. On a
development machine that is unnoticeable, and it is the reliable choice when a module or a
Listen directive has changed.
You rarely need the button. Adding, editing, deleting, toggling, repairing a site and enabling HTTPS all restart Apache for you.
When it will not start
Apache refuses to start when its configuration does not parse. Before any restart it
triggers itself, Vhostly runs apachectl -t and stops if that fails — showing you the
error, which names the file and the line, and leaving the running server alone.
If Apache is already down, the Health panel runs the same test and reports it as Apache config: Invalid with the first lines of the error.
Proxy modules
Proxy sites need four modules loaded:
| Module | Does |
|---|---|
mod_proxy | The proxy engine |
mod_proxy_http | Forwarding HTTP |
mod_proxy_wstunnel | Forwarding WebSocket upgrades |
mod_rewrite | The rules that route those upgrades |
The panel shows which are on and toggles each one, which comments or uncomments its
LoadModule line in httpd.conf. Enable missing modules turns on all four at once.
mod_ssl and mod_socache_shmcb are handled from the SSL panel instead,
since they are enabled as part of turning on HTTPS.
Health
Environment → Health runs every check the first-run wizard did, at any time: Homebrew,
PHP, Apache, whether it is running, whether its config parses, whether /etc/hosts and the
vhosts file are still writable, whether the sudoers rule survived — plus the optional
OpenSSL, mkcert, Composer and Node.
Anything failing shows what it means and the exact command that fixes it. Nothing runs until you press the button.
This is the first place to look after a macOS update or a Homebrew upgrade, both of which can quietly undo file ownership.
Services
Environment → Services wraps brew services, grouped so the important things are not
buried:
- Web stack —
httpd,php,dnsmasq: what actually serves your sites. - Databases — MySQL, MariaDB, PostgreSQL, Redis, MongoDB, Memcached, Elasticsearch, Meilisearch, Valkey.
- Other local services — everything else Homebrew is running.
Each row starts, stops and restarts. Vhostly does not configure these services, create
databases or manage their data; it starts and stops them so you do not need a second window
for brew services list.