Skip to content

Troubleshooting

  1. Check that DevKit is running: the power rail at the top of the window should be lit. A red DNS lamp means DevKit’s DNS server couldn’t open its port; the rail says which one. Quit the program using it (sudo lsof -nP -iUDP:5354 names it), then restart DevKit.

  2. Check the name resolves to 127.0.0.1:

    Terminal window
    dscacheutil -q host -a name shop.test

    If it doesn’t, check that /etc/resolver/test exists and contains port 5354. If another tool replaced it, choose Settings › Remove › Remove system changes…, then reopen DevKit to run setup again.

  3. Check the site is listed on the Sites screen. Folder names become lowercase, and anything other than letters and digits becomes -: My App.v2 is served at my-app-v2.test.

Setup names the program holding the port. Quit that program (another local web server, a container, or another local development app), then choose Check again. DevKit never stops other programs for you.

To see it yourself:

Terminal window
sudo lsof -nP -iTCP:443 -sTCP:LISTEN

The browser says the certificate isn’t trusted

Section titled “The browser says the certificate isn’t trusted”

Open Keychain Access, find DevKit Local CA in the login keychain, and set it to Always Trust. Firefox uses the system’s trusted certificates on macOS by default; if you turned that off, import the certificate from devkit ca.

For command-line tools, see HTTPS.

Open Logs and pick the service. The usual cause is the port: if another copy of MySQL or PostgreSQL is running, quit it or give the DevKit service another port on the Services screen.

which php shows which one runs. If it isn’t in ~/Library/Application Support/DevKit/bin, another line in ~/.zshrc puts a different PHP first. See Terminal. devkit php always uses DevKit’s PHP.

PHP’s built-in cURL resolves names its own way and doesn’t see the .test resolver, so curl_init('https://api.test') fails with “Could not resolve host”. Laravel’s HTTP client (Http::get(...)) works anyway while Laravel details is on (Dumps screen): DevKit points it at 127.0.0.1 for every site. For other clients, connect to 127.0.0.1 and send the site’s name, for example with cURL’s CURLOPT_RESOLVE set to ['api.test:443:127.0.0.1'].

A shared site is blank or redirects to .test

Section titled “A shared site is blank or redirects to .test”

Your app may build absolute URLs from a configured address rather than the request. For Laravel, don’t hard-code APP_URL into asset URLs, and trust proxies (TrustProxies with at: '*'). DevKit already sends the public host and https to PHP.

See Support for what to include.