基于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)
- 项目新功能需要安装新扩展, 所有开发者都要安装一遍
1. 如何使用呢?
1.1 download code
git clone [email protected]: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
相关推荐
zyyjay 2020-11-09
xuebingnan 2020-11-05
samtrue 2020-11-22
stefan0 2020-11-22
yifangs 2020-10-13
songshijiazuaa 2020-09-24
hebiwtc 2020-09-18
天步 2020-09-17
83911535 2020-11-13
whatsyourname 2020-11-13
zhouyuqi 2020-11-10
Noneyes 2020-11-10
mathchao 2020-10-28
王志龙 2020-10-28
wwwsurfphpseocom 2020-10-28
diskingchuan 2020-10-23
savorTheFlavor 2020-10-23