Troubleshooting
A .test address doesn’t load
Section titled “A .test address doesn’t load”-
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:5354names it), then restart DevKit. -
Check the name resolves to
127.0.0.1:Terminal window dscacheutil -q host -a name shop.testIf it doesn’t, check that
/etc/resolver/testexists and containsport 5354. If another tool replaced it, choose Settings › Remove › Remove system changes…, then reopen DevKit to run setup again. -
Check the site is listed on the Sites screen. Folder names become lowercase, and anything other than letters and digits becomes
-:My App.v2is served atmy-app-v2.test.
Port 80 or 443 is taken
Section titled “Port 80 or 443 is taken”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:
sudo lsof -nP -iTCP:443 -sTCP:LISTENThe 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.
A service won’t start
Section titled “A service won’t start”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.
The wrong php runs in my terminal
Section titled “The wrong php runs in my terminal”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 can’t reach another .test site
Section titled “PHP can’t reach another .test site”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.
Report a problem
Section titled “Report a problem”See Support for what to include.