💻 🐳 🐘 🐬 🐧 🚀 使用 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.09 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.4-alpine |
1.15.4 | Alpine:3.8 |
NGINX Unit | khs1994/nginx-unit:1.3-alpine |
1.3 | Alpine:3.8 |
HTTPD | httpd:2.4.35-alpine |
2.4.35 | Alpine:3.7 |
MySQL | mysql:8.0.12 |
8.0.12 | Debian:stretch |
MariaDB | mariadb:10.3.9 |
10.3.9 | Ubuntu:bionic |
Redis | redis:5.0-rc5-alpine |
5.0-rc5 | Alpine:3.8 |
PHP-FPM | khs1994/php:7.2.10-fpm-alpine |
7.2.10 | Alpine:3.8 |
Laravel | khs1994/php:7.2.10-fpm-alpine |
5.7.x | Alpine:3.8 |
Composer | khs1994/php:7.2.10-fpm-alpine |
1.7.2 | Alpine:3.8 |
PHP-CS-Fixer | khs1994/php:7.2.10-fpm-alpine |
2.13.0 | Alpine:3.8 |
Memcached | memcached:1.5.10-alpine |
1.5.10 | Alpine:3.8 |
RabbitMQ | rabbitmq:3.7.8-management-alpine |
3.7.8 | Alpine:3.8 |
PostgreSQL | postgres:10.4-alpine |
10.4 | Alpine:3.8 |
MongoDB | mongo:4.1.2 |
4.1.2 | 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
来禁用数据收集服务。