当前位置: 首页 > news >正文

用Docker搭建WordPress博客

WordPress
WordPress

WordPress是一个非常著名的PHP编写的博客平台,发展到目前为止已经形成了一个庞大的网站平台系统。在WP上有规模庞大的插件和主题,可以帮助我们快速建立一个博客甚至网站。

在Windows上可以非常方便的安装WordPress,因为IIS上集成了WordPress的一键安装包。而在Linux上安装WordPress就比较复杂了,我们需要配置PHP环境、Apache或者Nginx服务器、MySQL数据库以及各种权限和访问问题。所以在Linux上最好的办法就是使用Docker来安装WordPress。

安装Docker

如果是Windows平台,可以参考在Windows平台上搭建Docker开发环境。如果在Linux环境中,按照所使用的Linux的包管理器来安装Docker即可。顺便还可以安装Kitematic,这是一个非常好用的Docker图形界面工具。

安装完成之后需要启用Docker后台服务。如果是国内用户的话可能还需要设置Docker加速,可以参考Docker 镜像加速器-博客-云栖社区-阿里云。

安装WordPress

有了Docker,安装WordPress就很简单了,直接一条命令搞定。

docker pull wordpress:latest

安装MySQL

WordPress需要使用MySQL数据库,这里也有两种方式,第一种是安装本地MySQL,第二种就是在Docker中安装MySQL镜像。如果要在Docker中安装MySQL也非常简单,同样一条命令搞定。

docker pull mysql:latest

如果从Docker中安装MySQL,还需要额外的配置来启动MySQL,具体文档参考这里。启动MySQL使用下面的命令。

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

name参数指定要启动的实例名称,MYSQL_ROOT_PASSWORD指定ROOT密码。tag参数是MySQL的版本号,可以是5.75.68.0

配置WordPress

安装好数据库之后,就可以启动WordPress了。详细的文档参考这里。如果使用Docker中安装的MySQL实例,使用下面的命令。

docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -d wordpress

name参数指定要启动的WordPress实例名称,link参数指定要使用的Docker MySQL实例名称,p参数将Docker内部的80端口映射到本地的8080端口上。

如果使用外部的MySQL数据库,则输入下面的命令。

docker run --name some-wordpress -e WORDPRESS_DB_HOST=10.1.2.3:3306 \
    -e WORDPRESS_DB_USER=... -e WORDPRESS_DB_PASSWORD=... -d wordpress

WORDPRESS_DB_HOST参数是MySQL的数据库端口号,WORDPRESS_DB_USER是要数据库用户名,WORDPRESS_DB_PASSWORD是数据库密码。这里的WORDPRESS_DB_HOST参数不能填写localhost,因为这样会重定向到WordPress镜像内部的localhost,而这个镜像中实际上没有安装MySQL。所以这里需要填写本机IP地址,才能正确访问到Docker外部的本机的数据库。

因此需要注意,如果使用外部数据库的话,数据库的用户需要具有外部IP的权限,因为这次不是通过本机回环地址访问。默认情况下MySQL安装时候的ROOT用户只允许本地登录,所以可能需要配置允许用户远程登录。

然后打开浏览器,输入localhost:8080(端口号是命令中设置的),然后就可以看到WordPress了。按照提示输入用户名等信息,然后安装WordPress。等到它提示安装完成,那么WordPress的安装就算大功告成了。

最后稍加配置,再添加诸如内网映射等功能之后,站点就可以对外访问了。

img_207903b2f2eeefbead448d6471787d5f.png
站点预览

相关文章:

  • Centos下Yum安装PHP5.5,5.6
  • angular组件开发
  • C++ 虚函数经典深入解析 (good)
  • XEN cpu 调度问题
  • webgl (原生)基础入门指南【一】
  • 关于“服务器提交了协议冲突. Section=ResponseStatusLine问题
  • SAP S4系统创建Customer和Vendor的BAPI
  • 09_platform-tools简介常见adb指令
  • Android网络开发之HttpURLConnection
  • nfs客户端进程变D,延伸linux的lock
  • 9 外观模式(Facade)
  • 线程的同步与死锁
  • 用TinySpider进行网页抓取实例
  • UI图像拖动更换
  • Mysql避免全表扫描sql查询优化 .
  • Computed property XXX was assigned to but it has no setter
  • CSS3 变换
  • input实现文字超出省略号功能
  • IP路由与转发
  • k个最大的数及变种小结
  • Netty源码解析1-Buffer
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 从伪并行的 Python 多线程说起
  • 基于Android乐音识别(2)
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端性能优化——回流与重绘
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 携程小程序初体验
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 一文看透浏览器架构
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ###STL(标准模板库)
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #define 用法
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (12)Linux 常见的三种进程状态
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (三)c52学习之旅-点亮LED灯
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)3D模板阴影原理
  • (转)scrum常见工具列表
  • (转)winform之ListView
  • (转)项目管理杂谈-我所期望的新人
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .net core 依赖注入的基本用发