Docker 快速搭建 Lnmp 开发环境

分享链接:https://github.com/Chester-Hee/Docker-LNMP
使用Docker搭建一个简洁高效的LNMP开发环境

  • 支持多平台
  • PHP5 和 PHP7 同时支持
  • 支持 HTTPS 配置
  • 日志文件本地映射
  • 通过.env可以区分生产与测试环境

demo

本帖已被设为精华帖!
本帖由系统于 5年前 自动加精
Sparkfly
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 22
Sparkfly

@ucmir 可以这样理解,是有目录映射配置,你可以看 docker-compose.yml 文件中 volumes 参数

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./www/:/var/www/html/:rw
      - ./conf/nginx/conf.d:/etc/nginx/conf.d/:ro
      - ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./log/nginx/:/var/log/nginx/:rw
...

/etc/nginx/conf.d/ 相当于 ./conf/nginx/conf.d
./conf/nginx/conf.d 就是本项目的相对路径

所有的相对路径,是相对于docker-compose.yml文件的目录

5年前 评论

请问下,win10 本地开发导致访问很慢的问题,现在解决了吗

5年前 评论
Sparkfly

@lovecn
${WORKSPACES} 这个在根目录 .env 文件中配置,设置对应你的工作目录。
你截图所示的 Docker GUI 不是让你设置8位字符密码?

5年前 评论

大佬这博客牛逼啊

file

docker-compose.yml - ${WORKSPACES}:/var/www/html/:rw,cached 这里的${WORKSPACES}是不指当前目录
file

5年前 评论
Sparkfly
5年前 评论

laradock很不错的,哈哈哈哈哈,凑一波热闹就走

5年前 评论
Sparkfly

@Alexanderwmc 不明白你在说啥?都是用 docker-compose 编排服务。个人看法,一般写代码,比较喜欢把不可能执行到的代码删除,而不是注释或保留,只是想代码的思路更纯粹一些。我的初衷是觉得初学者需要一个简单的开始,没有你想的那么高大上,,,,至于你想了解其他服务怎么配置,上 dockerhub 官方镜像就可以随便玩

5年前 评论

@Sparkfly 我就用laradock做的开发环境及服务器部署,自从用了这玩意儿,腰不酸了腿不痛了,连胳膊也不抽筋了 :joy: 里边集成了好多镜像,做开发时用到了就开,不用就不开,还可以学习别人配置docker的方式,何乐而不为?

5年前 评论
Sparkfly

@Alexanderwmc 是的,但是我只是需要一个简单的开发环境,,, :grinning:

5年前 评论

Github有成熟且强大的这种轮子,laradock

5年前 评论
Sparkfly

添加 Google 代理,方便开发查阅资料

5年前 评论
Sparkfly

添加 GUI 管理工具

5年前 评论

楼主请问一下如何关闭https跳转呀,我把本地conf/conf.d/demo.conf配置修改之后还是会有跳转
下面是我的配置

server {
    listen       80;
    server_name  127.0.0.1 localhost www.demo.com;
    root   /var/www/html/demo;

    location ~ .*$ {
        fastcgi_pass   fpm:9000;
        fastcgi_index  index.php;
        include        fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
    }

}
5年前 评论
Sparkfly

更多优化更新,可以访问github

5年前 评论

这边记录一下我自己遇到的一个小问题的解决方法,我这边跑程序的时候抛出

SQLSTATE[HY000] [2002] Connection refused

后来发现原因是我把数据库地址写成了127.0.0.1,实际上的数据库地址应该是docker-compose.yml文件中配置ipv4_address的ip地址

  mysql:
    image: mysql:5.6
    ports:
      - "3306:3306"
    volumes:
      - ./conf/mysql/my.cnf:/etc/mysql/my.cnf:ro
      - ./mysql/:/var/lib/mysql/:rw
      - ./log/mysql/:/var/log/mysql/:rw
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
    networks:
      docker_net:
        ipv4_address: 172.100.0.5
5年前 评论
Sparkfly
networks:
  docker_net:
    driver: bridge
    ipam:
      driver: default
      config:
        -
          subnet: "172.100.0.0/16"
5年前 评论
Sparkfly

@Cody nginx 配置虚拟域名,如,www.demo1.com www.demo2.com 对应不同的站点
然后本地加 hosts

127.0.0.1 www.demo1.com
127.0.0.1 www.demo2.com 
5年前 评论

80端口下 如何配置多个站点

5年前 评论
ThinkQ

很好

5年前 评论

@Sparkfly 很透彻,我这边已经了解了,整个的运行机制,谢谢你的耐心解答 :+1:

5年前 评论

楼主我这边处理好了,是因为我将如下代码修改导致的

include /etc/nginx/conf.d/*.conf;

我之前看这个目录我是不对的,因为我本地并没有这个目录,所以就设置了一个我本地的绝对路径导致的问题。后来我又对照了你原来的代码讲这里的配置改回来就可以了,我想问一下这里为什么是这个地址,我本地没有的地址,是怎么样的一个引用机制可以正常的引入虚拟机的配置文件?
是因为虽然配置文件虽然在我本地,其实引用目录其实还是docker里的目录吗?

5年前 评论
Sparkfly

@ucmir 修改后,需重启服务才能生效,,,

docker-compose down
docker-compose up -d
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!