最近心血来潮,之前的一部VPS一直空置着。所以趁着这两天有空想部一个typecho博客上去,偶尔可以把自己工作的一些技术笔记分享一下。在以前部署的时候,最麻烦的就是配置服务器的运行环境,最近工作中有接触过docker,docker可以看做一个快速部署工具,生产环境中很多工具基本可以用一条命令就解决。这次我们要配置的typecho的运行环境是linux + nginx + mysql + php7。

1.创建一个mysql容器

 sudo docker run --name mysql  \-v database:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=123456  \-p 3306:3306 \-d mysql

参数说明

  1. -v database:/var/lib/mysql
    将mysql的数据文件挂载到数据卷database

  2. -e MYSQL_ROOT_PASSWORD=123456
    设置mysql的root用户密码为123456

  3. -p 3306:3306
    映射容器端口

2. 创建一个php-fpm容器

sudo docker run --name phpfpm \--link mysql:mysql \-v app:/app \-d  php:7.0-fpm

参数说明

  1. –link mysql:mysql
    将此容器与mysql容器通过网络连接起来,在此容器中以后即可以通过主机名(mysql)访问到mysql容器进行链接数据库操作。

  2. -v app:/app
    将此容器中的/app目录挂载到数据卷app

  在这里有个地方需要注意是,默认拉取安装php-fpm是不包含mysql模块的,如果需要使用mysql则需要安装扩展,安装方法如下:

#进入容器控制台
sudo docker run exec -it nginx /bin/bash#运行安装命令,等待安装跑完即可
docker-php-ext-install pdo_mysql mysqli

3.创建一个nginx容器

 sudo docker run --name nginx \--link phpfpm:phpfpm \--link mysql:mysql \-v /home/wbspool/product/nginx/conf:/etc/nginx \-v app:/app \-p 8081:8081 \-d  nginx

参数说明

  1. –link phpfpm:phpfpm
    将此容器与phpfpm通过网络连接起来,这样在nginx容器里就可以访问到phpfpm容器里提供的phpfpm服务。

  2. –link mysql:mysql
    将此容器与mysql容器通过网络连接起来,在此容器中以后即可以通过主机名(mysql)访问到mysql容器进行链接数据库操作。

  3. -v /home/wbspool/product/nginx/conf:/etc/nginx

  4. -v app:/app
    将此容器中的/app目录挂载到数据卷app

4.修改nginx配置文件

  • /etc/nginx/conf.d添加一个配置文件blog.conf,内容如下:
server {listen 8081;#charset koi8-r;#access_log  /var/log/nginx/host.access.log  main;root /app/blog;  #设置博客程序的根目录,这里映射的是数据卷app内的blog文件夹  index           index.html index.htm index.php;   if (!-e $request_filename) {rewrite ^(.*)$ /index.php$1 last;}#phpfpm配置文件location ~ .*\.php(\/.*)*$ {fastcgi_pass  phpfpm:9000; #在创建容器的时候映射phpfpm的主机名为phpfpmfastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}}
  • 执行以下命令重启nginx容器
sudo docker restart nginx

到这里lnmp环境以及基本搭建完成,下一步就是将php程序拷贝到对应的目录进行运行安装即可。

5.拷贝php程序到/app/blog目录,进行部署。

  • 通过docker提供的拷贝
sudo docker cp typecho/*  nginx:/app/blog
  • 运行访问地址,就可以进入typecho的安装界面。
http://[server_ip]:8081

如有疑问,可以在下面留言!
更多精彩分享,请点击这里~~

基于docker部署php应用相关推荐

  1. 基于docker部署的微服务架构(九): 分布式服务追踪 Spring Cloud Sleuth

    为什么80%的码农都做不了架构师?>>>    前言 微服务架构中完成一项功能经常会在多个服务之间远程调用(RPC),形成调用链.每个服务节点可能在不同的机器上甚至是不同的集群上,需 ...

  2. 推荐一款基于docker部署的个人免费笔记工具wiznote

    推荐一款基于docker部署的个人免费笔记工具wiznote 作为一个爱写作爱折腾的程序员,在做某个事情的时候,脑子里总是会联想并且不断蹦出各种奇怪的创意和想法,但是这些想法很多时候都是一闪而逝,事情 ...

  3. Rocketmq基于docker部署并在Springboot中接入

    服务器部署 关于在服务器上安装docker并启动守护进程,这里不再赘述,此处假设服务器已经安装完成docker. 安装并运行nameserver docker run -d -p 9876:9876 ...

  4. docker 打包mysql_基于docker部署mysql的数据持久化问题

    本人最近在使用docker部署mysql时,在持久化mysql数据时遇到了一个有趣的问题,将排查过程及思考记录在这里,以备后查. 先简单描述下我遇到的问题:在mysql容器中创建了两个数据库,然后使用 ...

  5. 云计算入门科普系列:基于Docker部署LNMP架构

    一. 什么是 docker  环境配置的难题  软件开发最大的麻烦事之一,就是环境配置.用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来?  用户必须保证两件事:操作系统的设置,各种 ...

  6. 基于Docker部署LNMP架构

    一. 什么是 docker  环境配置的难题  软件开发最大的麻烦事之一,就是环境配置.用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来?  用户必须保证两件事:操作系统的设置,各种 ...

  7. pg安装部署linux_简简单单基于docker部署微服务网关

    ❝ 本文整理于今年3月,收录在个人开源仓库JavaScriptCollection中,其中很多概念不乏借鉴.摘抄自官网,便于复习相关概念,有兴趣的可以直接去仓库Clone文档学习.参考! ❞ 基本概念 ...

  8. 微服务开发及部署_简简单单基于docker部署微服务网关

    ❝ 本文整理于今年3月,收录在个人开源仓库JavaScriptCollection中,其中很多概念不乏借鉴.摘抄自官网,便于复习相关概念,有兴趣的可以直接去仓库Clone文档学习.参考! ❞ 基本概念 ...

  9. 基于docker部署 opentsdb + grafana数据监控系统

    文章目录 0 前言 1 docker opentsdb部署 2 docker grafana部署 3 python client写入方案 4 数据持久化方案 5 云服务器部署踩坑事项 参考材料 0 前 ...

  10. 基于Docker部署Nginx

    一:docker安装 # 1)安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2# 2)添加Docker软件包源(否则d ...

最新文章

  1. Kibana + Elasticsearch + ik分词的集群搭建
  2. 程序化广告(1):程序化广告概述
  3. ajax获取php echo值,ajax 接受 php echo 与 return 区别
  4. 解决: AOSP 编译AndroidQ preview 失败
  5. 二分搜索 POJ 3273 Monthly Expense
  6. oracle 查看索引类别以及查看索引字段被引用的字段方法
  7. TCP三次握手(建立连接)/四次挥手(关闭连接)
  8. java手机号判断运营商_用Java对手机号所属运营商进行判断
  9. 我的mongoose代码备份
  10. C 创建基本图表 Chart Controls
  11. 光棍节的快乐 NYOJ 451
  12. java 蓝桥杯算法训练 猴子分苹果(题解)
  13. 农业大数据上线 农民耕田种地施肥都用“高科技”
  14. 微软宣布任命前MOTO亚太总裁梁念坚为中国区CEO
  15. 清晰理解precision(精确度)和recall(召回度)
  16. android点赞取消赞功能吗,Android 仿微博的点赞上报功能,持续点赞再取消
  17. 30岁是全新的20岁?---《20岁时光不再来》
  18. 神经网络加深和加宽的影响
  19. Java 设计模式 轻读汇总版
  20. C++药名整理题——教你首字符串升序排序

热门文章

  1. 详细盘点C语言在工作中的实际应用
  2. js给元素加html属性,js 如何给标签增加属性
  3. linux下部署android模拟器
  4. mockjs造假数据
  5. python deepcopy 丢失_python 引用、copy 与deepcopy
  6. python踩坑记(使用matplotlib绘制折线图遇到的问题及解法)
  7. [Download]Softimage XSI addon -- Batch Passes(JS Python)
  8. python股票量化交易入门到实践_量化资料学习《Python与量化投资从基础到实战》+《量化交易之路用Python做股票量化分析》+《组织与管理研究的实证方法第2版》...
  9. 使用Python可视化实现循环作图
  10. linux从NTFS优盘复制,如何将Mac电脑中的文件拷贝到U盘中