使用DNMP快速搭建LNMP环境

前言

LNMP 环境配置整体来说比较麻烦,很多要求不高的场合可能会直接使用类似于宝塔 /LNMP/Oneinstack 的一键安装包甚至是宝塔。然而近日爆发的信任危机使得一键安装包不再值得被信任,故找到了 DNMP 项目。

DNMP可以简单的理解为LNMP/OneStack的Docker版本,其本质上是一个docker-compose文件外加预先搭建的文件结构,所采用的镜像均来源于dockerhub上的半官方/官方性质镜像(如:nginx等),相比一键安装脚本更为安全可靠。

因为Docker-compose基本上为开箱即用,故部署难度/速度均远胜于LNMP等传统通过编译实现的LNMP环境。

快速开始

首先,安装 docker 和 docker-compose。可以采用系统自带的包管理快捷安装,或者使用 docker 官方提供的安装脚本。

随后,创建好用于安放 dnmp 环境的目录,并进入该目录。

使用 git clone https://github.com/yeszao/dnmp.git 指令拉取项目文件。如果服务器位于境内,则将 https://github.com 修改为 https://ghproxy.com/https://github.com 以使用加速服务。

完成拉取后,根据原文指引输入如下指令:

$ cd dnmp                                           # 进入项目目录
$ cp env.sample .env                                # 复制环境变量文件
$ cp docker-compose.sample.yml docker-compose.yml   # 复制 docker-compose 配置文件。默认启动3个服务:Nginx、PHP7和MySQL8。要开启更多其他服务,需要删除除服务块前的注释

根据需要,对 docker-compose.yml 进行编辑,可以根据需要,禁用 / 启用各个服务组件。

DNMP 数据库的默认密码是 123456,使用默认密码存在安全隐患,因此需要修改默认密码。编辑.env 环境变量文件,搜索 “MYSQL_ROOT_PASSWORD”/“MYSQL5_ROOT_PASSWORD”/“MONGODB_INITDB_ROOT_PASSWORD”,根据需要,对相应数据库的默认密码进行修改。

如果需要修改 php/mysql 的小版本,也可以在.env 文件中进行修改,请注意此处这个版本号只是 dockerhub 上对应的标签,如:可以将 “MYSQL_VERSION” 修改为 “8.1”。

配置编辑完成后,输入 docker-compose up ,并慢慢等待拉取镜像。提示完成的时候便可以尝试访问服务器。

后续,可以使用 docker-compose up -d 启动,这样在启动完成后便会将程序放到后台运行。

上线网站

配置文件:./services/ 底下做修改,比如 nginx 的配置就在 nginx 文件夹下。

nginx 文件夹下有一个叫做 conf.d 文件夹,内部内置了默认的站点文件 (localhost)。证书则放在 ssl 文件夹下。

站点文件:./www/[域名]/ 建议是放在这里,比较方便好用。