基于linux命令行常规搭建php+nginx+mysql站点,一个个搭建太慢了,而且配置也是个麻烦事,博主自从了解DNMP集成安装,就喜欢上这种方式了。
DNMP的流程就是安装docker-》安装docker-compose-》安装git-》拉取dnmp代码-》复制环境变量和docker-compose.yml配置文件-》执行docker-compose up构建-》站点搭建完成
所以针对这个流程,写个脚本。限于apt镜像,docker镜像拉取受限。所以执行脚本后,也得一个个排坑,保不齐哪个流程就中断了。但是对于国外的vps,不出意外的话应该还是挺好使的。简称一步到位!
Ubuntu 服务器
脚本博主也放了一份在服务器上,可以远程拉取!不保证失效!
dnmp.sh 脚本代码:
#!/bin/bash #wget https://test.liuqingwushui.top/dnmp.sh && bash dnmp.sh # 定义颜色代码 RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # 无颜色 # 第一步:安装 Docker、Docker Compose 和 Git function install_tools() { echo "开始安装 Docker、Docker Compose 和 Git..." # 更新软件包列表 sudo apt update # 安装 Docker if ! sudo apt install -y docker.io; then echo -e "${RED}Docker 安装失败,请检查错误并重试。${NC}" exit 1 fi # 安装 Docker Compose if ! curl -L "https://github.com/docker/compose/releases/download/1.29.2/ docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose; then echo -e "${RED}Docker Compose 下载失败,请检查错误并重试。${NC}" exit 1 fi if ! sudo chmod +x /usr/local/bin/docker-compose; then echo -e "${RED}Docker Compose 权限修改失败,请检查错误并重试。${NC}" exit 1 fi # 安装 Git if ! sudo apt install -y git; then echo -e "${RED}Git 安装失败,请检查错误并重试。${NC}" exit 1 fi echo -e "${GREEN}Docker、Docker Compose 和 Git 安装完成。${NC}" } # 第二步:通过 Git 克隆 DNMP 项目 function clone_dnmp() { echo "开始克隆 DNMP 项目..." if ! git clone https://gitee.com/yeszao/dnmp.git; then echo -e "${RED}Git 克隆失败,请检查错误并重试。${NC}" exit 1 fi echo -e "${GREEN}DNMP 项目克隆成功。${NC}" } # 第三步:复制配置文件并进入项目目录 function setup_dnmp() { echo "开始设置 DNMP 项目..." dnmp_dir="dnmp" # 假设 dnmp 目录相对于当前脚本的路径 # 确保 dnmp 目录存在 if [ ! -d "$dnmp_dir" ]; then echo "dnmp 目录不存在: $dnmp_dir" exit 1 fi # 进入 dnmp 目录并执行命令 (cd "$dnmp_dir" && { # 复制环境变量文件 if ! cp env.sample .env; then echo -e "${RED}复制 env.sample 失败,请检查错误并重试。${NC}" exit 1 fi # 复制 docker-compose 配置文件 if ! cp docker-compose.sample.yml docker-compose.yml; then echo -e "${RED}复制 docker-compose.sample.yml 失败,请检查错误并重试。${NC}" exit 1 fi # 启动 docker-compose if ! docker-compose up -d; then echo -e "${RED}docker-compose up 失败,请检查错误并重试。${NC}" exit 1 fi echo -e "${GREEN}DNMP 项目设置完成,docker-compose 启动成功。${NC}" }) || { echo "在 dnmp 目录中执行命令失败" exit 1 } } # 主函数,按顺序执行上述步骤 function main() { install_tools clone_dnmp setup_dnmp echo "所有操作已完成,DNMP集成环境搭建并启动成功!" } # 执行主函数 main
Centos服务器
dnmp-centos.sh 脚本代码:
#!/bin/bash # 定义颜色代码 RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # 无颜色 # 第一步:安装 Docker、Docker Compose 和 Git function install_tools() { echo "开始安装 Docker、Docker Compose 和 Git..." # 更新软件包列表 sudo yum update -y # 安装 Docker if ! sudo yum install -y docker; then echo -e "${RED}Docker 安装失败,请检查错误并重试。${NC}" exit 1 fi # 启动 Docker 服务 sudo systemctl start docker # 使 Docker 服务开机自启 sudo systemctl enable docker # 安装 Docker Compose if ! curl -K -L "https://github.com/docker/compose/releases /download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose; then echo -e "${RED}Docker Compose 下载失败,请检查错误并重试。${NC}" exit 1 fi if ! sudo chmod +x /usr/local/bin/docker-compose; then echo -e "${RED}Docker Compose 权限修改失败,请检查错误并重试。${NC}" exit 1 fi # 安装 Git if ! sudo yum install -y git; then echo -e "${RED}Git 安装失败,请检查错误并重试。${NC}" exit 1 fi echo -e "${GREEN}Docker、Docker Compose 和 Git 安装完成。${NC}" } # 第二步:通过 Git 克隆 DNMP 项目 function clone_dnmp() { echo "开始克隆 DNMP 项目..." if ! git clone https://gitee.com/yeszao/dnmp.git; then echo -e "${RED}Git 克隆失败,请检查错误并重试。${NC}" exit 1 fi echo -e "${GREEN}DNMP 项目克隆成功。${NC}" } # 第三步:复制配置文件并进入项目目录 function setup_dnmp() { echo "开始设置 DNMP 项目..." dnmp_dir="dnmp" # 假设 dnmp 目录相对于当前脚本的路径 # 确保 dnmp 目录存在 if [ ! -d "$dnmp_dir" ]; then echo "dnmp 目录不存在: $dnmp_dir" exit 1 fi # 进入 dnmp 目录并执行命令 (cd "$dnmp_dir" && { # 复制环境变量文件 if ! cp env.sample .env; then echo -e "${RED}复制 env.sample 失败,请检查错误并重试。${NC}" exit 1 fi # 复制 docker-compose 配置文件 if ! cp docker-compose.sample.yml docker-compose.yml; then echo -e "${RED}复制 docker-compose.sample.yml 失败,请检查错误并重试。${NC}" exit 1 fi # 启动 docker-compose if ! docker-compose up -d; then echo -e "${RED}docker-compose up 失败,请检查错误并重试。${NC}" exit 1 fi echo -e "${GREEN}DNMP 项目设置完成,docker-compose 启动成功。${NC}" }) || { echo "在 dnmp 目录中执行命令失败" exit 1 } } # 主函数,按顺序执行上述步骤 function main() { install_tools clone_dnmp setup_dnmp echo "所有操作已完成,DNMP集成环境搭建并启动成功!" } # 执行主函数 main
经过多个测试服务器发现还是Ubuntu系统比较好用,如果docker-compose一直安装失败,那么就手动安装下。