💻 🐳 🐘 🐬 🐧 🚀 使用 Docker Compose 快速搭建 LNMP 环境。
本项目支持 x86_64 架构的 Linux,macOS,Windows 10 并且支持 arm 架构的 Debian(树莓派)。
.env 文件,本项目中的任何文件严禁二次修改。为什么?
🎁 为了本项目的持续发展,你可以使用 推广产品 或直接 打赏 赞助本项目。
关注项目作者微信订阅号,接收项目最新动态
本项目需要以下软件:
1️⃣ Docker CE 18.06 Stable +
2️⃣ Docker Compose 1.22.0+
3️⃣ WSL (Windows Only)
简单而言,搞明白了项目路径,NGINX 配置就行了,遇到任何问题请提出 issue。
如果你使用的是 Windows 10 请查看 支持文档。
鉴于国内 clone GitHub 项目较慢,本项目在 gitee.com 进行开发,每日集成到 GitHub,建议国内用户使用中国镜像
$ git clone --depth=1 https://github.com/khs1994-docker/lnmp.git
# $ git clone --depth=1 git@github.com:khs1994-docker/lnmp.git
# 从 GitHub 克隆太慢?请使用中国镜像
$ git clone --depth=1 https://gitee.com/khs1994-docker/lnmp.git
# $ git clone --depth=1 git@gitee.com:khs1994-docker/lnmp.git$ cd lnmp
$ ./lnmp-docker up
$ curl 127.0.0.1
Welcome use khs1994-docker/lnmp v18.06.06 x86_64 With Pull Docker Image
development
💡 MySQL 默认 ROOT 密码为 mytest
在 ./app/ 下新建一个文件夹作为 PHP 项目开发目录,并在 ./config/nginx/ 新建一个 nginx 配置文件。
你也可以使用以下命令快速的新建一个 PHP 项目,并完成后续一系列配置(生成 nginx 配置、申请 SSL 证书)。
# $ ./lnmp-docker new
$ ./lnmp-docker restart nginx你可以通过设置
APP_ROOT来改变 PHP 项目文件夹所在位置。
更多信息请查看 LNMP 容器化最佳实践 https://github.com/khs1994-docker/php-demo
⛔ $redis->connect('127.0.0.1',6379);
⛔ $pdo = new \PDO('mysql:host=127.0.0.1;dbname=test;port=3306','root','mytest');
$redis = new \Redis();
$redis->connect('redis', 6379);
$pdo = new \PDO('mysql:host=mysql,dbname=test,port=3306', 'root', 'mytest');请查看 https://github.com/khs1994-docker/lnmp/issues/354
请查看 #450
-
lnmp-php -
lnmp-composer -
lnmp-phpunit -
lnmp-laravel -
...
更多信息请请查看 支持文档
由
acme.sh提供支持
$ ./lnmp-docker ssl khs1994.com -d *.khs1994.com使用前请提前在
.env文件或系统环境变量中设置 DNS 服务商的相关密钥。也支持一键生成自签名 SSL 证书,更多信息请查看 支持文档。
$ docker container ls -a -f label=com.khs1994.lnmp如果要使用自行构建的镜像请查看 支持文档
# 全部重启
$ ./lnmp-docker restart
# 重启指定软件
$ ./lnmp-docker restart nginx php7$ ./lnmp-docker stop$ ./lnmp-docker down请查看 支持文档
| Name | Docker Image | Version | Based |
|---|---|---|---|
| ACME.sh | khs1994/acme:2.7.9 |
2.7.9 | Alpine:3.8 |
| NGINX | khs1994/nginx:1.15.6-alpine |
1.15.6 | Alpine:3.8 |
| NGINX Unit | khs1994/nginx-unit:1.4-alpine |
1.4 | Alpine:3.8 |
| HTTPD | httpd:2.4.37-alpine |
2.4.37 | Alpine:3.8 |
| MySQL | mysql:8.0.13 |
8.0.13 | Debian:stretch |
| MariaDB | mariadb:10.3.10 |
10.3.10 | Ubuntu:bionic |
| Redis | redis:5.0.0-alpine |
5.0.0 | Alpine:3.8 |
| PHP-FPM | khs1994/php:7.2.11-fpm-alpine |
7.2.11 | Alpine:3.8 |
| Laravel | khs1994/php:7.2.11-fpm-alpine |
5.7.x | Alpine:3.8 |
| Composer | khs1994/php:7.2.11-fpm-alpine |
1.7.3 | Alpine:3.8 |
| PHP-CS-Fixer | khs1994/php:7.2.11-fpm-alpine |
2.13.1 | Alpine:3.8 |
| Memcached | memcached:1.5.11-alpine |
1.5.11 | Alpine:3.8 |
| RabbitMQ | rabbitmq:3.7.8-management-alpine |
3.7.8 | Alpine:3.8 |
| PostgreSQL | postgres:11.0-alpine |
11.0 | Alpine:3.8 |
| MongoDB | mongo:4.1.4 |
4.1.4 | Ubuntu:xenial |
| PHPMyAdmin | phpmyadmin/phpmyadmin:latest |
latest | Alpine:3.8 |
| Registry | registry:latest |
latest | Alpine:3.4 |
| 文件夹 | 说明 |
|---|---|
app |
项目文件(HTML, PHP, etc) |
backup |
备份文件 |
bin |
PHPer 常用命令 |
config |
配置文件 |
dockerfile |
自定义 Dockerfile |
log |
日志文件 |
scripts |
用户自定义脚本文件 |
- 80
- 443
- 8080
PHPMyAdmin(仅开发环境)
为简化操作方式,本项目提供了 交互式 的命令行工具 ./lnmp-docker
马上开启 容器即服务( CaaS ) 之旅!更多信息请查看 支持文档
# OS: macOS
$ cd toolkit/linuxkit
$ linuxkit build lnmp.yml
$ linuxkit run -publish 8080:80/tcp lnmp浏览器打开 127.0.0.1:8080,即可看到网页
- TGit:https://git.qcloud.com/khs1994-docker/lnmp.git
- 阿里云 CODE:https://code.aliyun.com/khs1994-docker/lnmp.git
- 码云:https://gitee.com/khs1994/lnmp.git
- Coding:https://git.coding.net/khs1994/lnmp.git
请查看 #137
请查看:如何贡献
- Docker Compose 中国镜像
- Docker 从入门到实践
- Compose file version 3 reference
- Share Compose configurations between files and projects
- kasperisager/php-dockerized
- zhaojunlike/docker-lnmp-redis
- micooz/docker-lnmp
- twang2218/docker-lnmp
- bravist/lnmp-docker
- yeszao/dnmp
- laradock/laradock
本项目每日默认会将用户的系统和 IP 信息发送到数据收集服务器。建议用户保持开启状态来帮助提升本项目。
你可以通过在 .env 文件中设置 DATA_COLLECTION=false 来禁用数据收集服务。

