共计 1956 个字符,预计需要花费 5 分钟才能阅读完成。
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