Skip to content

Latest commit

 

History

History
311 lines (189 loc) · 11.1 KB

README.cn.md

File metadata and controls

311 lines (189 loc) · 11.1 KB

LNMP Docker

GitHub stars PHP from Packagist Build Status GitHub release GitHub (pre-)release license Build Status

star

💻 🐳 🐘 🐬 🐧 🚀 使用 Docker Compose 快速搭建 LNMP 环境。

本项目支持 x86_64 架构的 Linux,macOS,Windows 10 并且支持 arm 架构的 Debian(树莓派)。

⚠️ 除了 .env 文件,本项目中的任何文件严禁二次修改。为什么?

⚠️ Windows Docker 非常不稳定,且运行 Laravel 相应较慢。建议使用 WSL

准备

本项目需要以下软件:

1️⃣ Docker CE 18.06 Stable +

2️⃣ Docker Compose 1.22.0+

3️⃣ WSL (Windows Only)

快速上手

简单而言,搞明白了项目路径,NGINX 配置就行了,遇到任何问题请提出 issue。

Windows 10

如果你使用的是 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

启动 LNMP Demo

$ 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

PHP 项目开发

./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');

进阶

需要 PHP 7.1 以下版本 ?

请查看 https://github.com/khs1994-docker/lnmp/issues/354

使用 MySQL 8.0 遇到问题 ?

请查看 #450

PHPer 常用命令

  • lnmp-php

  • lnmp-composer

  • lnmp-phpunit

  • lnmp-laravel

  • ...

更多信息请请查看 支持文档

一键申请 SSL 证书

acme.sh 提供支持

$ ./lnmp-docker ssl khs1994.com -d *.khs1994.com

使用前请提前在 .env 文件或系统环境变量中设置 DNS 服务商的相关密钥。也支持一键生成自签名 SSL 证书,更多信息请查看 支持文档

查看详情

$ docker container ls -a -f label=com.khs1994.lnmp

自行构建 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 ) 之旅!更多信息请查看 支持文档

LinuxKit (实验性玩法)

# OS: macOS

$ cd toolkit/linuxkit

$ linuxkit build lnmp.yml

$ linuxkit run -publish 8080:80/tcp lnmp

浏览器打开 127.0.0.1:8080,即可看到网页

生产环境用户

项目国内镜像

TLS1.3

请查看 #137

CI/CD

请使用 khs1994-docker/ci

支持文档

https://doc.lnmp.khs1994.com

贡献项目

请查看:如何贡献

感谢

更多资料

赞助项目

请访问 https://zan.khs1994.com

数据收集

本项目每日默认会将用户的系统和 IP 信息发送到数据收集服务器。建议用户保持开启状态来帮助提升本项目。

你可以通过在 .env 文件中设置 DATA_COLLECTION=false 来禁用数据收集服务。

云容器服务推广 🐳