DNMP(Docker + Nginx + MySQL + PHP + Redis)是一款优雅的**LNMP一键安装程序,支持Arm CPU**。
> 使用前最好提前阅读一遍[目录](#目录),以便快速上手,遇到问题也能及时排除。
[**[GitHub地址]**](https://github.com/imeepo/dnmp) -
[**[Gitee地址]**](https://gitee.com/imeepo/dnmp)
DNMP项目特点:
1. `100%`开源
2. `100%`遵循Docker标准
3. 支持**多版本PHP**共存,可任意切换(PHP5.6、PHP7.1、PHP7.2、PHP7.3、PHP7.4、PHP8.0、PHP8.1)
4. 支持**多版本MySQL**共存,(MySQL5.7、MySQL8.0)
5. 支持绑定**任意多个域名**
6. 支持**HTTPS和HTTP/2**
7. **PHP源代码、MySQL数据、配置文件、日志文件**都可在Host中直接修改查看
8. 内置**完整PHP扩展安装**命令,支持常用热门扩展,可根据环境灵活配置
9. 可一键选配常用服务:
- 多PHP版本:PHP5.6、PHP7.0-7.4、PHP8.0-8.1
- Web服务:Nginx
- 数据库:MySQL5.7、MySQL8.0、Redis
10. 实际项目中应用,确保`100%`可用
11. 所有镜像源于[Docker官方仓库](https://hub.docker.com),安全可靠
12. 一次配置,**Windows、Linux、MacOs**皆可用
13. 支持快速安装扩展命令 `install-php-extensions apcu`
# 目录
- [目录](#目录)
- [1.目录结构](#1目录结构)
- [2.快速使用](#2快速使用)
- [3.PHP和扩展](#3php和扩展)
- [3.1 切换Nginx使用的PHP版本](#31-切换nginx使用的php版本)
- [3.2 安装PHP扩展](#32-安装php扩展)
- [3.3 快速安装php扩展](#33-快速安装php扩展)
- [3.4 使用composer](#34-使用composer)
- [4.管理命令](#4管理命令)
- [4.1 服务器启动和构建命令](#41-服务器启动和构建命令)
- [4.2 添加快捷命令](#42-添加快捷命令)
- [4.3 查看docker网络](#43-查看docker网络)
- [4.4 查看docker容器ip](#44-查看docker容器ip)
- [5.使用Log](#5使用log)
- [5.1 Nginx日志](#51-nginx日志)
- [5.2 PHP-FPM日志](#52-php-fpm日志)
- [5.3 MySQL日志](#53-mysql日志)
- [6.在正式环境中安全使用](#6在正式环境中安全使用)
- [7 常见问题](#7-常见问题)
- [7.1 Docker容器时间](#71-docker容器时间)
- [7.2 如何连接MySQL和Redis服务器](#72-如何连接mysql和redis服务器)
- [7.3 容器内的php如何连接宿主机MySQL](#73-容器内的php如何连接宿主机mysql)
- [7.4 SQLSTATE[HY000] [1130] Host '172.19.0.2' is not allowed to connect to this MySQL server](#74-sqlstatehy000-1130-host-1721902-is-not-allowed-to-connect-to-this-mysql-server)
## 1.目录结构
```text
├── data 数据库数据目录
│ └── mysql57 MySQL5.7 数据目录
│ ├── mysql80 MySQL8.0 数据目录
│ ├── redis Redis 数据目录
├── logs 日志目录
├── services 服务构建文件和配置文件目录
│ ├── mysql80 MySQL8.0 配置文件目录
│ ├── mysql57 MySQL5.7 配置文件目录
│ ├── nginx Nginx 配置文件目录
│ ├── php PHP5.6 - PHP8.1 配置目录
│ └── redis Redis 配置目录
└── www 项目目录
│ └── default Nginx 默认目录
├── .env.smaple 环境配置示例文件
├── .gitignore Git忽略文件列表
├── docker-compose.sample.yml Docker 服务配置示例文件
├── imeepo-delete.sh 脚本:一键删除所有容器&镜像
├── imeepo-init.sh 脚本:首次运行(配置文件初始化)
├── imeepo-start.sh 脚本:一键构建/启动
└── README.md 自述文件
```
## 2.快速使用
1. 本地安装
- `git`
- `Docker`(系统需为Linux,Windows 10 Build 15063+,或MacOS 10.12+,且必须要`64`位)
- `docker-compose 1.7.0+`
> [安装Docker及docker-compose教程](https://www.imeepo.com/?p=10)
2. `clone`项目:
```bash
# Gitee(推荐)
git clone https://gitee.com/imeepo/dnmp.git
# Github
git clone https://github.com/imeepo/dnmp.git
# 米波Gitea
git clone https://git.imeepo.com/docker/dnmp.git
```
3. 如果主机是 Linux系统,且当前用户不是`root`用户,还需将当前用户加入`docker`用户组:
```bash
sudo gpasswd -a ${USER} docker
```
4. > 脚本一键安装(推荐)
运行初始化脚本后,运行一键启动脚本,即可自动构建
```bash
# 进入项目目录
cd dnmp
# 赋予初始化脚本执行权限
chmod +x imeepo-init.sh
# 初始化配置文件
./imeepo-init.sh
# 默认启动4个服务:Nginx、MySQL5.7、PHP7.0、Redis,要开启更多其他服务请删除服务块前的#注释
# 一键安装
./imeepo-start.sh
# 删除全部容器和镜像 (如不需要可删除此脚本!!!)
./imeepo-delete.sh
```
> 手动安装
拷贝并命名配置文件(Windows系统请用`copy`命令),启动:
```bash
# 进入项目目录
cd dnmp
# 复制环境变量文件
cp .env.example .env
# 复制 docker-compose 配置文件
cp docker-compose.sample.yml docker-compose.yml
# 默认启动4个服务:Nginx、MySQL5.7、PHP7.0、Redis,要开启更多其他服务请删除服务块前的#注释
# 赋予Mysql日志权限
chmod -R 777 ./logs/mysql57
chmod -R 777 ./logs/mysql80
# 复制redis配置文件
cp ./services/redis/redis.conf.example ./services/redis/redis.conf
# 启动
docker-compose up -d
```
赋予MySQL日志目录777权限的讲解请看[5.3 MySQL日志](#53-mysql日志)
5. > 本地搭建:在浏览器中访问:`http://localhost`
> 服务器搭建:在浏览器中访问:`http://你的ip地址`
即可看到nginx默认404页面
## 3.PHP和扩展
### 3.1 切换Nginx使用的PHP版本
首先,需要启动对应版本的PHP,比如PHP8.0,那就先在`./services/nginx/conf.d/`目录下,你网站的配置文件中,删除PHP版本选择下一句代码前面的注释,把`php70`改为你的版本,如`php80`,然后重启nginx
其中 `php70` 和 `php80` 是`docker-compose.yml`文件中容器的名称。
最后,**重启 Nginx** 生效(以下方法二选一即可)。
```bash
# 直接重启nginx容器
docker restart nginx
# 或者单独重载nginx容器内nginx服务
# 这里两个`nginx`,第一个是容器名,第二个是容器中的`nginx`程序。
docker exec -it nginx nginx -s reload
```
### 3.2 安装PHP扩展
PHP的很多功能都是通过扩展实现,而安装扩展是一个略费时间的过程,
所以,除PHP内置扩展外,在`.env.example`文件中我们仅默认安装少量扩展,
如果要安装更多扩展,请打开你的`.env`文件修改如下的PHP配置,
增加需要的PHP扩展:
```bash
# PHP7.0 要安装的扩展列表,英文逗号隔开
PHP_70_EXTENSIONS=pdo_mysql,opcache,redis
# PHP8.0 要安装的扩展列表,英文逗号隔开
PHP_80_EXTENSIONS=opcache,redis
```
然后重新构建 PHP7.0镜像。
```bash
docker-compose build php70
```
不同版本可用的扩展请查看`.env.example`不同PHP版本扩展上方注释块说明。
### 3.3 快速安装php扩展
1.进入容器:
```sh
docker exec -it php /bin/sh
# 安装apcu扩展
install-php-extensions apcu
```
2.支持快速安装扩展列表
<!-- START OF EXTENSIONS TABLE -->
<!-- ########################################################### -->
<!-- # # -->
<!-- # DO NOT EDIT THIS TABLE: IT IS GENERATED AUTOMATICALLY # -->
<!-- #
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
DNMP(Docker+Nginx+MySQL+PHP+Redis)是一个优雅的一键式LNMP安装程序,支持Arm CPUs_DNMP.zip (68个子文件)
dnmp-master
imeepo-delete.sh 356B
.env.example 6KB
data
mysql57
.gitignore 13B
mysql80
.gitignore 13B
redis
.gitignore 13B
services
nginx
mime.types 5KB
cert
.gitignore 14B
uwsgi_params 664B
Dockerfile 66B
fastcgi_params 1007B
php
php74.conf 188B
php71.conf 188B
php80.conf 188B
php81.conf 188B
php72.conf 188B
php56.conf 188B
php70.conf 188B
php73.conf 188B
scgi_params 636B
conf.d
0.default.conf 2KB
nginx.conf 681B
mysql57
mysql.cnf 784B
mysql80
mysql.cnf 752B
redis
redis.conf.example 81KB
Dockerfile 53B
.gitignore 46B
php
8.0
php.ini 71KB
php-fpm.conf 20KB
8.1
php.ini 71KB
php-fpm.conf 20KB
7.1
php.ini 70KB
php-fpm.conf 18KB
7.4
php.ini 71KB
php-fpm.conf 19KB
Dockerfile 2KB
extensions
event-3.0.5.tgz 194KB
install-php-extensions 143KB
install.sh 19KB
7.3
php.ini 70KB
php-fpm.conf 19KB
5.6
php.ini 72KB
php-fpm.conf 22KB
7.2
php.ini 70KB
php-fpm.conf 18KB
7.0
php.ini 69KB
php-fpm.conf 18KB
imeepo-start.sh 698B
imeepo-init.sh 1003B
logs
nginx
.gitignore 14B
mysql57
.gitignore 14B
mysql80
.gitignore 14B
php
8.0
.gitignore 14B
8.1
.gitignore 14B
7.1
.gitignore 14B
7.4
.gitignore 14B
7.3
.gitignore 14B
5.6
.gitignore 14B
7.2
.gitignore 14B
7.0
.gitignore 14B
.gitignore 120B
www
default
css
404.css 13KB
index.html 1KB
images
error-pin.png 2KB
nav.png 111B
error-hanger.png 60KB
README.md 28KB
docker-compose-example.yml 8KB
DNMP(Docker + Nginx + MySQL + PHP + Redis)是一款优雅的LNMP一键安装程序,支持Arm CPU。_dnmp
项目内附说明
如果解压失败请用ara软件解压.txt 42B
共 68 条
- 1
资源评论
普通网友
- 粉丝: 1127
- 资源: 5293
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功