docker的php教程https,基于docker, 快速搭建Nginx+Php+https本地开发环境, 免于手动安装PHP扩展...

NginxPhpDocker是什么, 主要解决什么问题

基于docker, 快速搭建Nginx+Php本地开发环境(已含常用PHP扩展), nginx、php配置文件,日志文件和php工程代码都在宿主机上, 方便修改.

可以解决:

- 新人加入团队, 配置LNMP麻烦, 而且是重复劳动

- prod, staging, local开发环境不一致, local没问题, 上了staging,prod出现各种问题

- php扩展安装有问题, 比如: mac电脑, 本地多个php版本, 扩展不一致(eg: memcache, memcached)

- 项目新功能需要安装新扩展, 所有开发者都要安装一遍

[NginxPhpDocker github url](https://github.com/weiwenwang/NginxPhpDocker)

### 1. 如何使用呢?

#### 1.1 download code

```

git clone git@github.com:weiwenwang/NginxPhpDocker.git

cd NginxPhpDocker

```

#### 1.2 启动php容器

```

docker run -it -d \

--name myphp \

-v $PWD/www/php:/www/php \

-v $PWD/www/example:/www/example \

--privileged=true \

wangnan188/nginx-php-docker:v7.2-v1

```

#### 1.3 启动nginx容器

```

docker run -it -d \

-p 80:80 \

-p 443:443 \

-v $PWD/nginx-conf/conf.d:/etc/nginx/conf.d \

-v $PWD/nginx-conf/nginx.conf:/etc/nginx/nginx.conf \

-v $PWD/www/html:/www/html \

-v $PWD/www/example:/www/example \

-v $PWD/ssl/server.crt:/etc/nginx/ssl/server.crt \

-v $PWD/ssl/server.key:/etc/nginx/ssl/server.key \

-v $PWD/log/nginx:/var/log/nginx/ \

--link=myphp:myphp_alias \

--privileged=true \

--name=mynginx nginx

```

#### 1.4 注意事项, 非常重要

- 1.2, 1.3的两个指令必须在NginxPhpDocker目录下执行

- PHP代码的文件夹, 必须挂在到PHP容器里面, 有小伙伴使用的时候挂到nginx容器里面了, nginx和PHP俩容器是隔离的, php只会按地址在他们自己的容器里面找文件, 和nginx只是通过fastcgi通信, nginx告诉php用户请求的文件地址, php在自己的容器去找对应的文件

#### 1.5 执行1.2、1.3之后效果是什么样子的呢?

![446601B2-F933-40F1-8588-AC9F3F26E17E.png](https://i.loli.net/2019/03/28/5c9c36453f75e.png)

![602C7C2D-5793-4805-BE64-1B8EDA958CB0.png](https://i.loli.net/2019/03/28/5c9c36452cb09.png)

![2240481F-4CC0-48C8-B6BA-398A26B8A938.png](https://i.loli.net/2019/03/28/5c9c36454b755.png)

### 3. 如何把现有的项目跑起来呢?

这里我举例个例子, 假如我们现在的项目(thinkphp_3.2.3_full)就是thinkphp框架写的, 我如何把它运行起来呢?

第一步: 把代码放在www/example/目录下

第二步: 添加配置文件nginx-conf/conf.d/example-thinkphp.conf, 剩下的就是单纯的nginx配置问题了.

本地做一个host绑定: "127.0.0.1 thinkphp-full.com"

浏览器访问: http://thinkphp-full.com/index.php?c=index&a=index

![A40B8438-28B1-4023-BC42-FE28E435F724.png](https://i.loli.net/2019/03/28/5c9c389f4a322.png)

### 4. wangnan188/nginx-php-docker现在包含了哪些extension呢?

extension | status| remark |- | extension | status|remark |- |

---|---|--|-- |--|--|--|--

Core | YES|- |-|redis|YES|-|-

ctype | YES|-|-|gd|YES|-|-

curl | YES|-|-|xdebug|YES|-|-

date | YES|-|-|mongodb|YES|-|-

dom | YES|-|-|swoole|YES|-|-

fileinfo| YES|-|-|memcached|YES|-|-

filter | YES|-|-|memcache|NO|-|-

ftp | YES|-|-||

hash | YES|-|-||

iconv | YES|-|-||

json | YES|-|-||

libxml | YES|-|-||

mbstring | YES|-|-||

mysqlnd | YES|-|-||

openssl | YES|-|-||

pcre| YES|-|-||

PDO| YES|-|-||

pdo_sqlite| YES|-|-||

Phar| YES|-|-||

posix | YES|-|-||

readline | YES|-|-||

Reflection | YES|-|-||

session | YES|-|-||

SimpleXML | YES|-|-||

sodium | YES|-|-||

SPL | YES|-|-||

sqlite3 | YES|-|-||

standard | YES|-|-||

tokenizer | YES|-|-||

xml | YES|-|-||

xmlreader | YES|-|-||

xmlwriter | YES|-|-||

zlib | YES|-|-||

### 5. 其他

后续php extensions有补充, 可能不能及时更新此文章, 最新版本请移步: [github](https://github.com/weiwenwang/NginxPhpDocker)

有疑问加站长微信联系(非本文作者))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值