[TOC]
### 1. 环境要求
- `git`
- `docker`
- `docker-compose`
### 2. 包含的镜像
- nginx-1.16.0
- php7.3.10(包含composer,包含扩展 amqp、bcmath、Core、ctype、curl、date、dom、fileinfo、filter、ftp、gd、hash、iconv、imap、json、libxml、mbstring、memcached、mongodb、mysqlnd、openssl、pcre、PDO、pdo_mysql、pdo_sqlite、Phar、posix、readline、redis、Reflection、session、SimpleXML、SPL、sqlite3、standard、tokenizer、xml、xmlreader、xmlwriter、zip、zlib)
- php7.1.7
- php5.6.31
- redis
- mysql
### 3. 操作步骤
- 克隆项目
> git clone https://github.com/ballooninmyhand/dnmp.git
- 进入目录
> cd dnmp
- 复制并修改配置文件,设置端口号和工作目录
> cp env.example .env
- 复制 docker-compose-example.yml 文件
> cp docker-compose-example.yml docker-compose.yml
- 使用 `docker-compose` 创建容器,首次运行请加上 --build 参数
> docker-compose up -d [--build]
- 打开浏览器,访问 `localhost`
- 停止并销毁容器
> docker-compose down
- 重启某个容器
> docker-compose restart 容器1 容器2
### 4. 安装PHP扩展
- 如需安装其他 `PHP` 扩展,请自行修改 Dockerfile 文件
### 5. 如何设置 cron 定时任务
- 推荐使用主机的 cron 实现定时任务
- 每分钟执行 `test.php` 脚本,`dnmp_php` 是容器名称,`test.php` 在工作目录 `/var/www/html` 下
```shell
*/1 * * * * /usr/bin/docker exec dnmp_php php /var/www/html/test.php
```
### 6. 如何在 php 代码中使用 curl
- 问题:本地开发两个项目 A 和 B,A 需要用到 yar 扩展调用 B 中的一个 rpc 方法,但是发现报错 `curl exec failed 'Couldn't connect to server'`
- 原因:项目A中不能解析设置的域名
- 解决方案:在 `docker-compose.yml` 中配置静态ip,并在 php 中设置 `extra_hosts`
- 配置虚拟网卡driver和subnet:
```yaml
networks:
default:
driver: bridge
ipam:
config:
- subnet: 10.0.0.0/24
```
- 设置nginx的静态ip
```yaml
nginx:
#其他配置...
networks:
default:
ipv4_address: 10.0.0.10
```
- 再在php中设置extra_hosts
```yaml
php56:
#其他配置...
extra_hosts:
- "project.com:10.0.0.10"
networks:
- default
```
- 重启服务
### 7. 为什么 mac 上请求一个接口响应需要很久
- 问题:在 mac 上开发时,请求一个接口需要1800ms,而在linux上只需要300ms
- 原因:[osxfs](https://docs.docker.com/docker-for-mac/osxfs/) 文件系统效率太低,mac 和 container 的文件系统不一样,同步时需要做大量的格式转换。
- 解决方案:安装 bg-sync,基本原理就是使用 daemon 方式建立一个同步磁盘,然后在 docker 启动容器时挂载这个同步磁盘。具体实现方式可以参考文件 `docker-compose-mac.yml`。
### 8. 参考链接
- [https://github.com/yeszao/dnmp](https://github.com/yeszao/dnmp)
- [docker 中使用 cron 定时任务](https://www.awaimai.com/2615.html)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Nginx的Docker安装+PHP7.3+PHP7.1+PHP5.6 + MySQL + redis_dnmp.zip (26个子文件)
dnmp-master
php73
Dockerfile 53B
conf
opcache.ini 1KB
php.ini 37KB
php-fpm.d
www.conf 18KB
_config.yml 26B
php71
Dockerfile 121B
conf
php.ini 37KB
php-fpm.d
www.conf 18KB
Dockerfile-image 1KB
nginx
conf
conf.d
default.conf 2KB
nginx.conf 648B
composer.json 326B
mysql
conf
mysql.cnf 712B
php56
Dockerfile 121B
conf
php.ini 37KB
php-fpm.d
www.conf 18KB
Dockerfile-image 2KB
env.example 516B
redis
conf
redis.conf 60KB
.gitignore 219B
www
index.php 21B
index.html 140B
README.md 3KB
docker-compose-mac.yml 1KB
docker-compose-example.yml 3KB
Docker 安装 Nginx + PHP7.3 + PHP7.1 + PHP5.6 + MySQL + redis_dnmp
项目内附说明
如果解压失败请用ara软件解压.txt 42B
共 26 条
- 1
资源评论
2401_87496566
- 粉丝: 947
- 资源: 5016
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功