Supporting | Features | License | Installing | Getting started | Credits
GitHub | Patreon | PayPal | Amazon
- Apache with vhosts and SSL (http://localhost & https://localhost)
- PHP [Currently Supported Versions] (8.1.x, 8.2.x, 8.3.x)
- PHP [End of life / not recommended] (5.4.x, 5.6.x, 7.0.x, 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x)
- MySQL (5.7, 8.x)
- MariaDB (lts, latest, 10.x, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 10.10, 10.11, 11.x, 11.0, 11.1, 11.2, 11.3-rc)
- phpMyAdmin
- XDebug
- Imagick
- Redis
This software is distributed under the MIT license. Please read LICENSE for information.
blog.robertsaupe.de/docker-compose
- Debian/Ubuntu
sudo apt install docker
sudo apt install docker-compose- Arch/Manjaro
sudo pacman -S docker
sudo pacman -S docker-compose- Fedora
sudo dnf install docker
sudo dnf install docker-compose-
macOS
- Install Docker Desktop according to these instructions.
-
Windows
- Install Docker Desktop according to these instructions.
sudo systemctl start docker.service
sudo systemctl enable docker.servicesudo usermod -aG docker $USER
sudo rebootgit clone https://github.com/robertsaupe/docker-compose-lamp.git
cd docker-compose-lamp/
cp sample.env .env
### modify .env as needed
### builds and starts the environment:
./build.sh
### starts the environment:
./start.sh
### stops the environment:
./stop.sh### builds and starts the environment:
build.cmd
### starts the environment:
start.cmd
### stops the environment:
stop.cmd-
Dashboard
-
phpMyAdmin
-
virtual domains
-
Dashboard
-
phpMyAdmin
-
virtual domains
In order to use the above URL, you still need to change the hosts file.
Support for https domains is built-in and enabled by default.
sudo nano /etc/hostsYou can just use Notepad for this. To do this, right-click on "Run as administrator" in the start menu. Then go to Open, show all files and navigate to the folder C:\Windows\System32\drivers\etc. Now you can open and edit the hosts file.
...
127.0.0.1 dash.localhost
127.0.0.1 projects.localhost
127.0.0.1 app.localhost
...
<?php
//some before
$db_hostname="database";
//some after
?>When a container is started for the first time files in this directory with the extensions:
.sh, .sql, .sql.gz and .sql.xz
will be executed in alphabetical order.
default location is ./config/initdb
Xdebug comes installed by default and it's version depends on the PHP version chosen in the ".env" file.
Xdebug versions:
PHP <= 7.3: Xdebug 2.X.X
PHP >= 7.4: Xdebug 3.X.X
To use Xdebug you need to enable the settings in the ./config/php/php.ini file according to the chosen version PHP.
Example:
# Xdebug 2
#xdebug.remote_enable=1
#xdebug.remote_autostart=1
#xdebug.remote_connect_back=1
#xdebug.remote_host = host.docker.internal
#xdebug.remote_port=9000
# Xdebug 3
#xdebug.mode=debug
#xdebug.start_with_request=yes
#xdebug.client_host=host.docker.internal
#xdebug.client_port=9003
#xdebug.idekey=VSCODE
Xdebug VS Code: you have to install the Xdebug extension "PHP Debug". After installed, go to Debug and create the launch file so that your IDE can listen and work properly.
Example:
VERY IMPORTANT: the pathMappings depends on how you have opened the folder in VS Code. Each folder has your own configurations launch, that you can view in .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
// "port": 9000, // Xdebug 2
"port": 9003, // Xdebug 3
"pathMappings": {
// "/var/www/html": "${workspaceFolder}/www" // if you have opened VSCODE in root folder
"/var/www/html": "${workspaceFolder}" // if you have opened VSCODE in ./www folder
}
}
]
}Now, make a breakpoint and run debug.
Tip! After theses configurations, you may need to restart container.
It comes with Redis. It runs on default port 6379.
We want to empower developers to quickly create creative Applications. Therefore we are providing an easy to set up a local development environment for several different Frameworks and PHP Versions. In Production you should modify at a minimum the following subjects:
- php handler: mod_php=> php-fpm
- secure mysql users with proper source IP limitations
