使用docker搭建一套开发环境全家桶的详细教程
dnmp介绍
dnmp(docker + nginx + mysql + php7/5 + redis)是一款全功能的lnmp一键安装程序。支持的服务丰富、功能强大、使用简单、兼容多平台。是适用于多端的一款docker开发与生产环境的php环境全家桶。
dnmp项目特点:
-
100%
开源 -
100%
遵循docker标准 - 支持多版本php共存,可任意切换(php5.4、php5.6、php7.1、php7.2、php7.3)
- 支持绑定任意多个域名
- 支持https和http/2
- php源代码、mysql数据、配置文件、日志文件都可在host中直接修改查看
- 内置完整php扩展安装命令
- 默认支持
pdo_mysql
、mysqli
、mbstring
、gd
、curl
、opcache
等常用热门扩展,根据环境灵活配置 - 可一键选配常用服务:
- 多php版本:php5.4、php5.6、php7.1-7.3
- web服务:nginx、openresty
- 数据库:mysql5、mysql8、redis、memcached、mongodb、elasticsearch
- 消息队列:rabbitmq
- 辅助工具:kibana、logstash、phpmyadmin、phpredisadmin、adminmongo
- 实际项目中应用,确保
100%
可用 - 所有镜像源于docker官方仓库,安全可靠
- 一次配置,windows、linux、macos皆可用
- 支持快速安装扩展命令
install-php-extensions apcu
- 具体使用文档可参考:https://gitee.com/bruce_qiq/dnmp/blob/master/readme.md。文档中已经有一个明确的使用教程。接来下,主要针对安装完之后,做的一些基本操作做一个简单的演示,因为部分操作在源文档不是很详细,并且有明显的坑。主要记录几个功能:
1.修改无法连接mysql问题。
2.配置nginx虚拟域名。
3.安装php扩展。
因为个人打算持续使用该包来做自己的开发环境,后面会针对不同的问题做总结,同时也会根据原主的仓库基础下,进行迭代更新。欢迎关注。公号卡二条的技术圈
修改mysql连接问题
由于dnmp在安装时,是将本地的3305端口映射到mysql容器的3306端口,因此我们在连接是需要连接3305端口。
在示例代码的www目录下面,有一个localhost目录,我们找到测试mysql的一段代码,如下:
我们只需要修改为如下代码:
这里的192.168.2.103是我们宿主机的ip,根据你实际的情况填写即可。可以通过ifconfig查看。如果是windows系统,则使用ipconfig查看。
ifconfig
配置nginx域名
在配置之前,我们需要明确这么几个东西。我们源码目录位置、nginx配置文件位置、nginx日志文件位置。特别注意:
1.我们可以通过截图看见,conf.d目录下面存在两个配置文件。这两个就是我事先配置好的域名文件。这个文件,是通过nginx容器映射到本地磁盘。因此可以通过宿主机进行查看。
2.logs文件就是nginx的error,access等相关日志文件,同样的是在nginx容器中映射到宿主机的。
3.这里的www就是程序源码路径,我们的所有程序源码都放在这里即可。
对于nginx域名配置文件,推荐进入到容器进行编写,而不是通过在宿主机进行编写。
第一步:进入我们的www目录,安装一个应用程序。这里推荐使用compser来安装,对于composer的使用,也可以参考文档进行简单配置即可使用。
这样本地就按照好了一个tp5的框架了。第二步:进入nginx容器,通过docker ps查看docker容器的container-id,使用docker exec命令进入到容器内部。
进入nginx配置文件路径
conf.d就是我们的域名配置路径,nginx就是默认的配置文件。
创建一个域名配置文件。
配置tp5.conf文件。复制如下内容:
测试域名配置,并重启nginx服务。
将域名添加到宿主机的host文件。
访问测试
php扩展安装
在搭建docker环境时,php的redis扩展默认是没安装,这里就以redis扩展为例。
由于内置了部分扩展(具体有哪些扩展,参考上面提到的使用文档),因此直接使用命令安装即可。
测试扩展
总结
到此这篇关于使用docker搭建一套开发环境全家桶的文章就介绍到这了,更多相关docker搭建开发环境全家桶内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
下一篇: Nginx搭建rtmp直播服务器实现代码