Help
Something not working right? You're not the first to hit it, most Laradock setups run into the same handful of snags: a blank Laravel page, a port already taken, MySQL refusing to connect. Below are the common problems and their fixes, organized by symptom and OS. Find the one that matches what you're seeing and work through it step by step.

Get Help
Can't find your issue below? Reach out:
- Need something directly? [email protected]
- Security vulnerabilities: follow the Security Policy.
Upgrading
I pulled the latest and see a huge diff or git conflicts
Nothing is broken. Laradock's files were reorganized, the one big docker-compose.yml and .env.example became small per-service files, but everything you run is unchanged and your .env is left untouched. The Upgrade Guide explains the change, resolves any conflict in one step, and includes a copy-paste prompt that lets an AI agent migrate your setup for you.
Pages & display
I see a blank (white) page instead of the Laravel welcome page
Fix the storage permissions. Run this from your Laravel project root:
sudo chmod -R 777 storage bootstrap/cache
I see "Welcome to nginx" instead of my Laravel app
Use http://127.0.0.1 instead of http://localhost in your browser.
Ports & networking
I get "address already in use" or "port is already allocated"
Another program on your host is already using one of the ports Laradock needs (22, 80, 443, 3306, etc.). Stop that program, or change the port in your .env (for example NGINX_HOST_HTTP_PORT).
I get an NGINX 404 Not Found on Windows
Docker can't see your project files because the drive is not shared:
- WSL 2 backend (default): keep your project inside your WSL 2 distro's filesystem, or enable the distro under Docker Desktop → Settings → Resources → WSL Integration.
- Hyper-V backend: enable your project's drive under Docker Desktop → Settings → Resources → File Sharing.
Then restart Docker Desktop.
Databases
I get MySQL connection refused
This usually means your app is not connecting to the MySQL container. Set DB_HOST in your Laravel .env to the MySQL container name:
DB_HOST=mysql
I changed the database name, user, or password but nothing happens
MySQL/PostgreSQL only read those values the first time the data volume is created. After that the data persists in DATA_PATH_HOST (default ~/.laradock/data), so later .env changes are ignored.
To start fresh, stop the containers and delete that database's data folder, then bring it back up:
- Laradock CLI
- Docker Compose
./laradock remove
docker compose down
rm -rf ~/.laradock/data/mysql # or /postgres, /mariadb, etc.
- Laradock CLI
- Docker Compose
./laradock start mysql
docker compose up -d mysql
This deletes the database's local data. Back it up first if you need it.
The server requested authentication method unknown to the client
MySQL 8 uses caching_sha2_password by default, which some older clients and drivers don't support. Connect through the workspace and switch the user to the legacy method:
ALTER USER 'default'@'%' IDENTIFIED WITH mysql_native_password BY 'secret';
FLUSH PRIVILEGES;
I can't connect to or log in to phpMyAdmin / pgAdmin
Use the container name as the server/host, not localhost:
- phpMyAdmin → server
mysql(ormariadb), with theMYSQL_USER/MYSQL_PASSWORDfrom your.env. - pgAdmin → host
postgres, with yourPOSTGRES_USER/POSTGRES_PASSWORD.
Build, mirrors & timing
Package mirrors are slow or the build hangs fetching sources
Common when your network is far from the default mirrors (for example in China):
- If an image build hangs while fetching Alpine/Debian package indexes, set
CHANGE_SOURCE=falsein your.envand rebuild. - To use faster Composer and NPM mirrors, add these to your
.env:
WORKSPACE_NPM_REGISTRY=https://registry.npmmirror.com
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
The time in my services does not match the current time
- Make sure you have changed the timezone.
- Rebuild and restart the containers:
./laradock rebuild <services>then./laradock restart <services>(ordocker compose up -d --build <services>).
macOS & Apple Silicon
The apache2 container won't start on Apple Silicon (M1/M2)
- Set
APACHE_FOR_MAC_M1=truein your.env. - Rebuild the image:
./laradock rebuild apache2(ordocker compose build apache2).
Everything is slow on macOS
File-system sync between the host and containers is the usual cause. Enable VirtioFS in Docker Desktop → Settings → General → Choose file sharing implementation, and give Docker Desktop enough CPU/RAM under Settings → Resources.