基于docker部署php应用
最近心血来潮,之前的一部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
参数说明
-v database:/var/lib/mysql
将mysql的数据文件挂载到数据卷database-e MYSQL_ROOT_PASSWORD=123456
设置mysql的root用户密码为123456-p 3306:3306
映射容器端口
2. 创建一个php-fpm容器
sudo docker run --name phpfpm \--link mysql:mysql \-v app:/app \-d php:7.0-fpm
参数说明
–link mysql:mysql
将此容器与mysql容器通过网络连接起来,在此容器中以后即可以通过主机名(mysql)访问到mysql容器进行链接数据库操作。-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
参数说明
–link phpfpm:phpfpm
将此容器与phpfpm通过网络连接起来,这样在nginx容器里就可以访问到phpfpm容器里提供的phpfpm服务。–link mysql:mysql
将此容器与mysql容器通过网络连接起来,在此容器中以后即可以通过主机名(mysql)访问到mysql容器进行链接数据库操作。-v /home/wbspool/product/nginx/conf:/etc/nginx
-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应用相关推荐
- 基于docker部署的微服务架构(九): 分布式服务追踪 Spring Cloud Sleuth
为什么80%的码农都做不了架构师?>>> 前言 微服务架构中完成一项功能经常会在多个服务之间远程调用(RPC),形成调用链.每个服务节点可能在不同的机器上甚至是不同的集群上,需 ...
- 推荐一款基于docker部署的个人免费笔记工具wiznote
推荐一款基于docker部署的个人免费笔记工具wiznote 作为一个爱写作爱折腾的程序员,在做某个事情的时候,脑子里总是会联想并且不断蹦出各种奇怪的创意和想法,但是这些想法很多时候都是一闪而逝,事情 ...
- Rocketmq基于docker部署并在Springboot中接入
服务器部署 关于在服务器上安装docker并启动守护进程,这里不再赘述,此处假设服务器已经安装完成docker. 安装并运行nameserver docker run -d -p 9876:9876 ...
- docker 打包mysql_基于docker部署mysql的数据持久化问题
本人最近在使用docker部署mysql时,在持久化mysql数据时遇到了一个有趣的问题,将排查过程及思考记录在这里,以备后查. 先简单描述下我遇到的问题:在mysql容器中创建了两个数据库,然后使用 ...
- 云计算入门科普系列:基于Docker部署LNMP架构
一. 什么是 docker 环境配置的难题 软件开发最大的麻烦事之一,就是环境配置.用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来? 用户必须保证两件事:操作系统的设置,各种 ...
- 基于Docker部署LNMP架构
一. 什么是 docker 环境配置的难题 软件开发最大的麻烦事之一,就是环境配置.用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来? 用户必须保证两件事:操作系统的设置,各种 ...
- pg安装部署linux_简简单单基于docker部署微服务网关
❝ 本文整理于今年3月,收录在个人开源仓库JavaScriptCollection中,其中很多概念不乏借鉴.摘抄自官网,便于复习相关概念,有兴趣的可以直接去仓库Clone文档学习.参考! ❞ 基本概念 ...
- 微服务开发及部署_简简单单基于docker部署微服务网关
❝ 本文整理于今年3月,收录在个人开源仓库JavaScriptCollection中,其中很多概念不乏借鉴.摘抄自官网,便于复习相关概念,有兴趣的可以直接去仓库Clone文档学习.参考! ❞ 基本概念 ...
- 基于docker部署 opentsdb + grafana数据监控系统
文章目录 0 前言 1 docker opentsdb部署 2 docker grafana部署 3 python client写入方案 4 数据持久化方案 5 云服务器部署踩坑事项 参考材料 0 前 ...
- 基于Docker部署Nginx
一:docker安装 # 1)安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2# 2)添加Docker软件包源(否则d ...
最新文章
- Kibana + Elasticsearch + ik分词的集群搭建
- 程序化广告(1):程序化广告概述
- ajax获取php echo值,ajax 接受 php echo 与 return 区别
- 解决: AOSP 编译AndroidQ preview 失败
- 二分搜索 POJ 3273 Monthly Expense
- oracle 查看索引类别以及查看索引字段被引用的字段方法
- TCP三次握手(建立连接)/四次挥手(关闭连接)
- java手机号判断运营商_用Java对手机号所属运营商进行判断
- 我的mongoose代码备份
- C 创建基本图表 Chart Controls
- 光棍节的快乐 NYOJ 451
- java 蓝桥杯算法训练 猴子分苹果(题解)
- 农业大数据上线 农民耕田种地施肥都用“高科技”
- 微软宣布任命前MOTO亚太总裁梁念坚为中国区CEO
- 清晰理解precision(精确度)和recall(召回度)
- android点赞取消赞功能吗,Android 仿微博的点赞上报功能,持续点赞再取消
- 30岁是全新的20岁?---《20岁时光不再来》
- 神经网络加深和加宽的影响
- Java 设计模式 轻读汇总版
- C++药名整理题——教你首字符串升序排序
热门文章
- 详细盘点C语言在工作中的实际应用
- js给元素加html属性,js 如何给标签增加属性
- linux下部署android模拟器
- mockjs造假数据
- python deepcopy 丢失_python 引用、copy 与deepcopy
- python踩坑记(使用matplotlib绘制折线图遇到的问题及解法)
- [Download]Softimage XSI addon -- Batch Passes(JS Python)
- python股票量化交易入门到实践_量化资料学习《Python与量化投资从基础到实战》+《量化交易之路用Python做股票量化分析》+《组织与管理研究的实证方法第2版》...
- 使用Python可视化实现循环作图
- linux从NTFS优盘复制,如何将Mac电脑中的文件拷贝到U盘中