ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
***参考文献*** 1.dnmp环境 [https://github.com/yeszao/dnmp](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fyeszao%2Fdnmp) 2.laravel6.0文档 [https://learnku.com/docs/laravel/6.x](https://links.jianshu.com/go?to=https%3A%2F%2Flearnku.com%2Fdocs%2Flaravel%2F6.x) 3.laravels 文档 [https://github.com/hhxsv5/laravel-s/blob/master/README-CN.md](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fhhxsv5%2Flaravel-s%2Fblob%2Fmaster%2FREADME-CN.md) ***安装前准备*** 1.确认已经安装且配置好docker,能在cmd 中运行 docker 命令 2.git (一般我们程序都有,cmd中能运行git命令) # 一.搭建dnmp环境 一切基于[https://github.com/yeszao/dnmp](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fyeszao%2Fdnmp) 这个项目,里面也有详细文档,我的教程只是做了一些图文补充。如果部署过程中遇到问题,一定要在这个链接里面多看看,一般能解决你的问题。即使没遇到问题也要看看他的文档。其实步骤很短,几个命令就行,但是我做了很多图文补充细节,所以看起来比较长,编程需要耐心。 首先在win10中选个存储位置,比如我的是G:\\docker;放在g盘里面的docker文件夹内。 cmd 中进入G:\\docker ![](//upload-images.jianshu.io/upload_images/18722725-4a8e6c3359aa6650.png?imageMogr2/auto-orient/strip|imageView2/2/w/249/format/webp) image.png clone dnmp项目(以下两个命令只用执行其中一个,注意看注释) ~~~php git clone https://github.com/yeszao/dnmp.git //如果https报错或证书错误,可以使用下面 git clone git://github.com/yeszao/dnmp.git ~~~ 等运行完毕,doker目录下就有dnmp目录了 ![](//upload-images.jianshu.io/upload_images/18722725-a9afc8df1f5eb0cd.png?imageMogr2/auto-orient/strip|imageView2/2/w/738/format/webp) image.png cmd 中进入dnmp文件夹,运行以下命令 ~~~ruby $ cd dnmp # 进入项目目录 $ copy env.sample .env # 复制环境变量文件 $ copy docker-compose.sample.yml docker-compose.yml # 复制 docker-compose 配置文件。默认启动3个服务: # Nginx、PHP7和MySQL8。要开启更多其他服务,如Redis、 # PHP5.6、PHP5.4、MongoDB,ElasticSearch等,请删 # 除服务块前的注释 $ docker-compose up # 启动,一般用docker-compose up -d 后台启动,cmd可以继续用 ~~~ 运行完之后会启动默认的nginx , php , mysql容器 ![](//upload-images.jianshu.io/upload_images/18722725-8a1b7f4233a69b2b.png?imageMogr2/auto-orient/strip|imageView2/2/w/959/format/webp) image.png 第一次启动会通过dnmp/docker-compose.yml配置文件里面的配置信息编译,耗时会稍微较长,不过大多数也能在10分钟内编译完 这时候cmd 中docker ps 就可以看到运行的容器,或者直接打开docker软件也可以看到运行情况,这里也可以看到我的mysql5容器开放的是3305端口映射到win10主机上面,这个端口后面Navicat链接容器内的mysql,或者php链接容器内的mysql都要用到 ![](//upload-images.jianshu.io/upload_images/18722725-ae2707ac92d6c78c.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp) image.png 如果有需要phpmyadmin的,可以再配置文件docker-compose.yml,将phpmyadmin的相关配置信息前的#注释符号删掉再cmd进入dnmp目录下重新运行docker-compose up -d 即可 ![](//upload-images.jianshu.io/upload_images/18722725-3e50cac1b42d431d.png?imageMogr2/auto-orient/strip|imageView2/2/w/1078/format/webp) image.png 另外我这里建议注释docker-compose.yml里面默认mysql,开启mysql5.这样就会安装mysql5.7.到时候win10里面可以通过Navicat直接连接mysql容器里面的mysql,mysql8.0我当时连接有点问题,不过花点时间能解决,只不过我的项目比较赶,没有另外花时间了。 ![](//upload-images.jianshu.io/upload_images/18722725-bd84f08160ea021f.png?imageMogr2/auto-orient/strip|imageView2/2/w/824/format/webp) image.png 以上步骤结束后,浏览器直接访问[http://localhost/](https://links.jianshu.com/go?to=http%3A%2F%2Flocalhost%2F) 就可以看到环境的信息页面 ![](//upload-images.jianshu.io/upload_images/18722725-a3e2c67765908763.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp) image.png php 开启swoole扩展需要打开 docker/dnmp/.env配置文件,在PHP\_EXTENSIONS后面加上两个扩展 pcntl,swoole 即可 ![](//upload-images.jianshu.io/upload_images/18722725-aad9d362d1cf08fc.png?imageMogr2/auto-orient/strip|imageView2/2/w/730/format/webp) image.png 之后cmd 在dnmp目录下运行以下命令,重启nginx后就可以在浏览器访问[http://localhost/](https://links.jianshu.com/go?to=http%3A%2F%2Flocalhost%2F) 看到开启的swoole扩展了 ~~~bash docker-compose build php #重新编译php docker-compose restart nginx #重启nginx ~~~ 另外win10的Navicat链接mysql,需要先在win10 host文件中找到你的docker配置的ip,我的dockerip是192.168.3.58 ![](//upload-images.jianshu.io/upload_images/18722725-fac6e2edee128dd7.png?imageMogr2/auto-orient/strip|imageView2/2/w/713/format/webp) image.png 上面docker软件截图也可以看到我的mysql5.7容器开放的是3305端口 所以Navicat配置要这样写才能链接,初始mysql密码123456 ![](//upload-images.jianshu.io/upload_images/18722725-d4316546bd98dd29.png?imageMogr2/auto-orient/strip|imageView2/2/w/486/format/webp) image.png 以上dnmp环境搭建就可以了,有问题可以[https://github.com/yeszao/dnmp](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fyeszao%2Fdnmp)再这里面找到答案 # 二.搭建laravel6项目 cmd 中进入php容器(容器就是一个微信linux内核系统) ~~~bash docker exec -it php /bin/sh #进入php容器 ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-990c8d8ca88b6bbd.png?imageMogr2/auto-orient/strip|imageView2/2/w/427/format/webp) image.png 图片上面的localost文件夹路径就对应着win10系统内的dnmp\\www\\localhost,PHP容器的根目录就是win10的dnmp\\www\\ 接着运行composer 安装laravel6(php容器内自带composer) ~~~bash composer create-project --prefer-dist laravel/laravel blog "6.*" #直接安装laravel6项目 ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-2c2a0602072c08cd.png?imageMogr2/auto-orient/strip|imageView2/2/w/650/format/webp) image.png 上面的代码运行好后,你的dnmp\\www\\目录下会多一个blog的文件夹,就是laravel6的项目 接下来就要nginx配置laravel6的项目站点了,nginx的站点配置文件位于 G:\\docker\\dnmp\\services\\nginx\\conf.d\\ 在这个目录下,我们以localhost.conf配置文件为原本复制一个新的文件blog.conf配置文件。接下来站点配置都在blog.conf 里面完成,记事本打开blog.conf 。 ![](//upload-images.jianshu.io/upload_images/18722725-855839a40b99207d.png?imageMogr2/auto-orient/strip|imageView2/2/w/809/format/webp) image.png 我们只需要修改80端口的相关配置就行,关于443的全部删掉,到时候需要再改 ~~~cpp listen 80 default; 修改为 listen 80 ; server_name localhost; 修改为 server_name lblog.com; root /www/localhost; 修改为 root /www/blog/public; ~~~ 将以下代码 ~~~ruby location ~ \.php$ { fastcgi_pass php:9000; include fastcgi-php.conf; include fastcgi_params; } ~~~ 修改为 ~~~php location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass php:9000; include fastcgi-php.conf; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-263b2b49ef45b361.png?imageMogr2/auto-orient/strip|imageView2/2/w/1113/format/webp) image.png 最终修改结果如上图,配置文件就改成功了。现在将lblog.com这个域名加入win10的host文件里面代码如下 ~~~css 127.0.0.1 lblog.com ~~~ 最后 cmd进入dnmp目录下,中重启nginx 运行如下代码 ~~~undefined docker-compose restart nginx ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-ac4581a5ef3dff7d.png?imageMogr2/auto-orient/strip|imageView2/2/w/436/format/webp) image.png 这个时候浏览器就可以输入[http://lblog.com/](https://links.jianshu.com/go?to=http%3A%2F%2Flblog.com%2F) 访问laravel项目站点了。如果清除浏览器缓存刷新后还是访问的不是这个页面,可以重启win10主机。重启后cmd到dnmp目录下 docker-compose up -d ,启动所有服务,再访问[http://lblog.com/](https://links.jianshu.com/go?to=http%3A%2F%2Flblog.com%2F) ![](//upload-images.jianshu.io/upload_images/18722725-0a79e3dc15ac20e7.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp) image.png 下面是laravel 配置mysql,DB\_HOST要配置docker的ip 192.168.3.58,DB\_PORT配置成mysql容器开放的3305端口其他的和普通laravel项目一致 ![](//upload-images.jianshu.io/upload_images/18722725-92e45c77c445553e.png?imageMogr2/auto-orient/strip|imageView2/2/w/942/format/webp) image.png # swoole框架laravel-s项目下一章继续,不然篇幅太多 [https://www.jianshu.com/p/05489e72ab4e](https://www.jianshu.com/p/05489e72ab4e) ***结束语*** 可以转载,但需要说明出处。 我花了两天摸出来的经验,两个小时的码字,写教程不容易。 部署过程中遇到问题欢迎留言,我不定时登录回复 作者:ITIAN\_S 链接:https://www.jianshu.com/p/562a2ef0b23d 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。