基于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
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之后效果是什么样子的呢?

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/inde…

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理