Libxa Desktop
Your whole PHP stack in one window.
- Version
- 0.4.0
- Category
- Developer tools
- Requires
- Windows 10 or newer
A local development environment for Laravel, LibxaFrame and plain PHP. It
installs and supervises PHP, Node, nginx, MariaDB and phpMyAdmin, and serves
every project on a .test domain.
Windows, with detection of package-manager installs on macOS and Linux.
What it does
- Installs what you are missing. nginx, MariaDB, PHP and Node download from each publisher's own host and are verified against a SHA-256 before anything is extracted. Nothing touches system directories or your PATH.
- Every PHP version side by side. 8.0 through 8.5, with each site routed to
its own version by a
php-cgiper version. - Supervises the stack, with combined logs and a stop that does not orphan workers.
- Serves your projects on
.test. Park a directory and every project inside it gets a local domain and a generated server block. - HTTPS on those domains, signed by a certificate authority on your machine.
- phpMyAdmin, configured against the managed database and bound to localhost, because it administers the database as root.
- A preview and a terminal, beside each site's settings.
Why a local certificate authority
.test is reserved by RFC 6761, which means no public certificate authority
can ever issue for it. Not "does not currently": cannot. Every ACME challenge
works by proving control of a domain, and nobody controls .test.
So the app creates a root on your machine and puts it in the per-user trust
store, which needs no elevation. Certificates cover the domain, its wildcard,
localhost and 127.0.0.1, last 396 days (under the 398 Chrome will accept)
and renew a month early.
The root stays on your machine, and one button removes it again.
Installing
Download the installer from the releases page.
It is not code-signed, so SmartScreen warns on first run: choose More info, then Run anyway.
Existing installations update themselves. The download is verified against the
SHA-512 in latest.yml and installed when you ask, not behind your back.