daxter1987 / laravel-env
Environment for laravel applications with mysql
Installs: 14 763
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
README
By installing this composer package into your laravel application, this enables the php artisan dax:install
command, which creates a docker-compose.yml and a daxenv.sh file into your laravel root directory. Then you can run docker compose up -d
and you have a laravel environment with a database.
Requirements
- Must have docker installed
- Must have docker-compose installed
Installation
1. Install using composer by running:
composer require daxter1987/laravel-env
2. Once installed run the command
php artisan dax:install
This creates 2 files:
- docker-compose.yml: compose file with 2 containers
- Ubuntu image with nginx and Php 7.3
- Database image
- daxenv.sh: file with useful shortcuts to run your environment
This also checks the .gitignore in your laravel project and adds the line /db
if it doesn't exist. This is the folder where docker will store your local database container volume.
3. [Optional but recommended] Give the daxenv.sh execute permissions
If you want to use the shortcuts give the daxenv.sh file executing permissions by running the command:
sudo chmod 777 daxenv.sh
4. Configure database
The database connection credentials can be found in your newly created docker-compose.yml
file. Make sure the database connection is properly configured either in your .env
file or your config/database.php
file.
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: db
MYSQL_USER: root
MYSQL_PASSWORD: root
Usage
With shortcuts
To start the environment run
./daxenv.sh up
To stop the environment
./daxenv.sh down
To ssh into the laravel container
./daxenv.sh ssh
Without shortcuts
To start the environment run
docker-compose up -d
To stop the environment
docker-compose down
To ssh into the laravel container run docker container ls
to get the name of the container, then replace the container name for CONTAINER_NAME in the command below
docker exec -it CONTAINER_NAME ssh
xdebug and PHPStorm
Setup
The container comes with xdebug installed (if you run phpinfo() you would see the configuration). To use it, set up PHPStorm:
-
Go to Languages and Frameworks > PHP > Servers and set
- Name: Name of project
- Host: localhost
- Port: 8080
- Debugger Xdebug
- Use path mappings = true
- Set Absolute path on server /var/www/html
-
Go to "Add Configurations"
- Click +
- Select PHP remote Debug template
- Name: Name of project
- Server: previously created server
- IDE key: PHPSTORM
- Click Apply
Run
- Click on the Bug Icon
- Send a GET request with
?XDEBUG_SESSION_START=PHPSTORM
- Send a post request with XDEBUG_SESSION_START=PHPSTORM as a param