Docker deploying Nginx MySQL PHP7 in one key, support full feature functions.
- Completely open source.
- Support Multiple PHP version(PHP5.4, PHP5.6, PHP7.2) switch.
- Support Multiple domains.
- Support HTTPS and HTTP/2.
- PHP source located in host.
- MySQL data directory in host.
- All conf files located in host.
- All log files located in host.
- Built-in PHP extensions install commands.
- Promise 100% available.
- Supported any OS with docker.
- Install
git
,docker
anddocker-compose
; - Clone project:
$ git clone https://github.com/yeszao/dnmp.git
- Start docker containers:
You may need use
$ cd dnmp $ docker-compose up
sudo
before this command in Linux. - Go to your browser and type
localhost
, you will see:
The index file is located in ./www/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
MIT