Docker nginx php mysql
Docker nginx php mysql
Server
Port
Name
Description
Last updated
Last updated
sudo usermod -aG docker your-user
which docker-composewhich makesudo apt install build-essentialgit clone https://github.com/nanoninja/docker-nginx-php-mysql.gitcd docker-nginx-php-mysql.
├── Makefile
├── README.md
├── data
│ └── db
│ ├── dumps
│ └── mysql
├── doc
├── docker-compose.yml
├── etc
│ ├── nginx
│ │ ├── default.conf
│ │ └── default.template.conf
│ ├── php
│ │ └── php.ini
│ └── ssl
└── web
├── app
│ ├── composer.json.dist
│ ├── phpunit.xml.dist
│ ├── src
│ │ └── Foo.php
│ └── test
│ ├── FooTest.php
│ └── bootstrap.php
└── public
└── index.phpGenerate SSL certificates```
source .env && docker run --rm -v $(pwd)/etc/ssl:/certificates -e "SERVER=$NGINX_HOST" jacoelho/generate-certificate
```Do not modify the `etc/nginx/default.conf` file, it is overwritten by `etc/nginx/default.template.conf`
Edit nginx file `etc/nginx/default.template.conf` and uncomment the SSL server section :
```
# server {
# server_name ${NGINX_HOST};
#
# listen 443 ssl;
# fastcgi_param HTTPS on;
# ...
# }
```Get your own local IP address :```
sudo ifconfig
```Set the `remote_host` parameter with your IP :
```
xdebug.remote_host=192.168.0.1 # your IP
```Copying the composer configuration file :```
cp web/app/composer.json.dist web/app/composer.json
``````
docker-compose up -d
```
**Please wait this might take a several minutes...**
```
docker-compose logs -f # Follow log output
```Open your favorite browser :
- [http://localhost:8000](http://localhost:8000/)
- [https://localhost:3000](https://localhost:3000/) ([HTTPS](https://github.com/nanoninja/docker-nginx-php-mysql#configure-nginx-with-ssl-certificates) not configured by default)
- [http://localhost:8080](http://localhost:8080/) PHPMyAdmin (username: dev, password: dev)Stop and clear services
```
docker-compose down -v
```make docker-startmake helpdocker run --rm -v $(pwd)/web/app:/app composer require symfony/yamldocker run --rm -v $(pwd)/web/app:/app composer updatedocker run --rm -v $(pwd):/data phpdoc/phpdoc -i=vendor/ -d /data/web/app/src -t /data/web/app/docdocker-compose exec -T php ./app/vendor/bin/phpunit --colors=always --configuration ./appdocker-compose exec -T php ./app/vendor/bin/phpcbf -v --standard=PSR2 ./app/srcdocker-compose exec -T php ./app/vendor/bin/phpcs -v --standard=PSR2 ./app/srcdocker-compose exec -T php ./app/vendor/bin/phpmd ./app/src text cleancode,codesize,controversial,design,naming,unusedcodedocker-compose exec php php -mdocker exec -it mysql bashmysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD"mkdir -p data/db/dumpssource .env && docker exec $(docker-compose ps -q mysqldb) mysqldump --all-databases -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" > "data/db/dumps/db.sql"source .env && docker exec -i $(docker-compose ps -q mysqldb) mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" < "data/db/dumps/db.sql"source .env && docker exec $(docker-compose ps -q mysqldb) mysqldump -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" --databases YOUR_DB_NAME > "data/db/dumps/YOUR_DB_NAME_dump.sql"source .env && docker exec -i $(docker-compose ps -q mysqldb) mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" < "data/db/dumps/YOUR_DB_NAME_dump.sql"<?php
try {
$dsn = 'mysql:host=mysql;dbname=test;charset=utf8;port=3306';
$pdo = new PDO($dsn, 'dev', 'dev');
} catch (PDOException $e) {
echo $e->getMessage();
}
?>