lnmp

Start Docker LNMP(LEMP) In less than 2 minutes Powered by Docker Compose. 让 PHP 开发者快速(一键)搭建基于容器技术(Docker、Kubernetes)的开发、测试、生产(CI/CD by Drone)环境.

APACHE-2.0 License

Stars
641
Committers
7

LNMP Docker

💻 🐳 🐘 🐬 🐧 🚀 使用 Docker Compose 快速搭建 LNMP 环境,仅需 一条命令 $ ./lnmp-docker up

企业版 个性化定制请访问 lnmp-ee

Platform Status
Windows Build status
Linux Build Status
macOS CI
Linux arm64v8 -

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

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

⚠️ Windows Docker 非常不稳定,且运行 Laravel 响应较慢。解决办法

🎁 为了本项目的持续发展,你可以使用 推广产品 或直接 打赏 赞助本项目。

微信订阅号

准备

本项目需要以下软件:

1️⃣ Git

2️⃣ Docker 23.11 Stable +

3️⃣ Docker Compose v2.17.0+

4️⃣ WSL (Windows Only)

快速上手

Windows 10

如果你使用的是 Windows 10 请查看 支持文档

安装

鉴于国内 clone GitHub 项目较慢,本项目在 gitee.com 托管,每日集成到 GitHub,建议国内用户使用中国镜像,技术交流请到本项目 GitHub,避免在 gitee.com 提 issue 或 PR。

$ git clone --depth=1 https://github.com/khs1994-docker/lnmp.git

# $ git clone --depth=1 [email protected]:khs1994-docker/lnmp.git

# 从 GitHub 克隆太慢?请使用中国镜像

$ git clone --depth=1 https://gitee.com/khs1994-docker/lnmp.git

# $ git clone --depth=1 [email protected]:khs1994-docker/lnmp.git

启动 LNMP Demo

$ cd lnmp

$ ./lnmp-docker up

$ curl 127.0.0.1

Welcome use khs1994-docker/lnmp v23.11 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 = new \Redis();

- $redis->connect('127.0.0.1',6379);
+ $redis->connect('redis', 6379);

- $pdo = new \PDO('mysql:host=127.0.0.1;dbname=test;port=3306','root','mytest');
+ $pdo = new \PDO('mysql:host=mysql,dbname=test,port=3306', 'root', 'mytest');

进阶

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 php8

停止

$ ./lnmp-docker stop

销毁

$ ./lnmp-docker down

项目说明

支持特性

请查看 支持文档

包含软件

Name Docker Image Version Based
ACME.sh khs1994/acme:3.0.0 3.0.0 alpine:3.16
NGINX nginx:1.25.3-alpine 1.25.3 alpine:3.13
NGINX Unit khs1994/php:8.3.0-unit-alpine 1.30.0 alpine:3.16
HTTPD httpd:2.4.53-alpine 2.4.53 alpine:3.16
MySQL mysql:8.0.33 8.0.33 oraclelinux:8-slim
MariaDB mariadb:10.11.5 10.11.5 ubuntu:jammy
Redis redis:7.0.0-alpine 7.0.0 alpine:3.16
PHP-FPM khs1994/php:8.3.0-fpm-alpine 8.3.0 alpine:3.19
Composer khs1994/php:8.3.0-composer-alpine 2.5.8 alpine:3.19
Memcached memcached:1.6.15-alpine 1.6.15 alpine:3.16
RabbitMQ rabbitmq:3.9.0-management-alpine 3.9.0 alpine:3.13
PostgreSQL postgres:14.0-alpine 14.0 alpine:3.14
MongoDB mongo:5.0.3 5.0.3 ubuntu:bionic
PHPMyAdmin phpmyadmin:5.2.0 5.2.0 alpine:3.16
Registry registry:latest latest alpine:3.11

文件夹结构

文件夹 说明
app 项目文件(HTML, PHP, etc)
scripts/backup 备份文件
bin PHPer 常用命令
config 配置文件
dockerfile 自定义 Dockerfile
log 日志文件
scripts 用户自定义脚本文件

端口暴露

  • 80
  • 443

命令行工具

为简化操作方式,本项目提供了 交互式 的命令行工具 ./lnmp-docker

生产环境用户

khs1994.com

PCIT -- PHP CI TOOLKIT

项目国内镜像

HTTP3/QUIC

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

CI/CD

请使用 khs1994-docker/ci

支持文档

https://docs.lnmp.khs1994.com

贡献项目

请查看:如何贡献

感谢

更多资料

赞助项目

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

Package Rankings
Top 6.61% on Proxy.golang.org
Badges
Extracted from project README
GitHub stars GitHub release GitHub (pre-)release license Build Status star Build status Build Status
Related Projects