Nginx MySQL & phpmyadmin PHP54 56 72 74 ELK Mongodb & Mongo-express Redis & php-redis-admin rabbitmq & rabbitmq-management springboot nodejs golang
Mac
brew install docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
Ubuntu
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ apt-cache policy docker-ce
$ sudo apt-get install -y docker-ce git
$ sudo systemctl status docker
$ sudo usermod -aG docker ${USER}
$ docker
$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
- Clone project:
$ git clone https://github.com/babyandy0111/dev-dnmp.git
- Start docker containers:
$ cd dev-dnmp $ docker-compose up -d php nginx ...
- 打開 https://localhost 你會看到 site1 預設畫面
Default, we start LATEST PHP version by using:
$ docker-compose up
we can also start PHP5.4 or PHP5.6 by using:
$ docker-compose -f docker-compose54.yml up
$ docker-compose -f docker-compose56.yml up
We need not change any other files, such as nginx config file or php.ini, everything will work fine in current environment (except code compatibility error).
Notice: We can only start one php version, for they using same port. We must STOP the running project then START the other one.
Default demo include 2 sites:
To preview them, add 2 lines to your hosts file (at /etc/hosts
on Linux and C:\Windows\System32\drivers\etc\hosts
on Windows):
127.0.0.1 www.site1.com
127.0.0.1 www.site2.com
Then you can visit from browser.
We can identify log directory in nginx / php / php-fpm / mysql config file.
To display the log file in host, we should config them to /var/log/dnmp
.
But, there are some differences:
Nginx will auto generate all log files.
To use php-fpm
log, you must create log file manually(in host):
$ touch log/php.fpm.error.log
$ chmod a+w log/php.fpm.error.log
Same as php-fpm
, log file must be created manually(in host):
$ touch log/mysql.slow.log
$ chmod a+w log/mysql.slow.log
Xdebug
https://medium.com/@dadakao/%E4%BD%BF%E7%94%A8phpstorm-debugger%E9%99%A4%E9%8C%AFdocker-container%E5%85%A7%E7%9A%84php%E7%A8%8B%E5%BC%8F-1ebd16017464
laravel ide helper
$ composer require "doctrine/dbal: ~2.3"
$ php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
MIT