2024年4月30日

一、概述

1.1 概要

今天将会教大家通过docker 搭建wordpress个人博客站,具有轻量级、易部署、易维护特点,便于后续数据迁移,避免数据丢失登问题!

1.2 作用

拥有一个自己专属、功能强大、美观的个人网站,人人都是博主、人人都是创作者,记录下每一刻。

二、wordpress相关

2.1 wordpress介绍

WordPress是一种广泛使用的开源内容管理系统(CMS),它提供了一个简单而强大的平台,用于创建和管理网站、博客和在线应用程序。

2.2 wordpress优势

  1. 非常成熟、操作简单、功能强大
  2. 插件非常多,可以实现各种各样的功能。如谷歌身份验证器、访问者统计等等。

三、搭建过程

3.1 安装docker环境

注意事项:此代码在debian系统可能会出问题,目前博主在用ubuntu

curl -fsSL https://get.docker.com | sh && ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin

3.2 docker部署mysql环境

3.2.1 部署mysql

docker run -d \
    -p 3306:3306 \
    --privileged=true \
    --name mysql \
    --restart=always \
    -v /usr/mysql:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=wordpress123 \
    mysql:latest

--privileged=true: 表示容器将以特权模式运行,即容器内的进程将拥有宿主机的权限。CentOS系统下的安全Selinux禁止了一些安全权限,导致MySQL容器在运行时会因为权限不足而报错,所以需要增加该选项
-e: 环境变量,设置镜像中MySQL的root 密码

3.2.2 创建需要的数据库

1、进入mysql容器
docker exec -it mysql /bin/bash

2、在容器内登陆mysql
mysql -u root -p

3、创建blog数据库
create database blog DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

4、检查是否创建成功
show databases;

3.3 docker部署wordpress

3.3.1 启动容器

docker run -d \
    -p 542:80 \
    --link mysql \
    --restart=always \
    --name wordpressblog \
    -v /usr/wordpress:/var/www/html \
    wordpress:latest

-d:该参数是docker run命令的一个选项,表示以"分离模式"(detached mode)运行容器。这意味着容器将在后台运行,并且不会占用当前终端的控制台。

-p 542:80:该参数用于设置容器的端口映射。它将主机的端口542与容器的端口80进行映射。这意味着,通过访问主机的542端口,可以访问到容器内运行的服务(在此例中是WordPress)所使用的80端口。

--link mysql:该参数用于创建容器之间的链接(link)。它将容器wordpressblog与命名为mysql的另一个容器进行链接。这样,wordpressblog容器可以通过该链接访问到mysql容器,以便进行数据库等资源的交互。

--restart=always:该参数用于设置容器的重启策略。always表示无论何时容器退出,Docker引擎都会自动重启容器。这样可以确保容器在发生意外退出或系统重启后能够自动恢复运行。

--name wordpressblog:该参数用于为容器指定一个名称,即wordpressblog。通过该名称,可以方便地管理和操作容器,如停止、启动、查看日志等。

-v /usr/wordpress:/var/www/html:该参数用于设置容器内的数据卷挂载。它将主机上的/usr/wordpress目录与容器内的/var/www/html目录进行挂载。这样可以将主机上的文件和目录与容器内部的目录进行共享,实现数据持久化和容器的可移植性。

wordpress:latest:该参数指定了要运行的镜像名称和标签(tag)。在此例中,使用的是名为wordpress的镜像,并选择了最新的版本(latest)。

3.3.2 确认容器是否跑起来

docker ps

3.4 访问配配置网站

公网ip:端口

3.5 配置nginx反向代理

#全局块
#user  nobody;
worker_processes  auto;	#worker_processes指的是开启的线程数,一般跟逻辑CPU核数一致

#event块
events {
    worker_connections  1024;		#定义每个进程的最大连接数,受系统进程的最大打开文件数量限制
}

#http块
http {
    #http全局块
    include       mime.types;
    default_type  application/octet-stream;		#核心模块指令,默认设置为二进制流
    sendfile        on;		#开启高效文件传输模式
    keepalive_timeout  65;		#keepalive_timeout设置客户端连接保存活动的超时时间
    #server虚拟主机块
    server {
        #server全局块
        listen       80;   #监听端口
        server_name  80hou.stutimes.com;   #设置主机域名
        #charset koi8-r;  #设置访问的语言编码

        #location块
        location / {		#location设置虚拟主机的基本信息
            proxy_pass http://127.0.0.1:542;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;   
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }  #这个是server的大括号
    #这边可以有多个server块,监听多个端口,直接把上面的server复制下来即可

}
#这个是http的大括号

三、总结

三、总结

  1. wordpress部署非常容易,难得是处理可能会面临的各种问题,问题非常多,比如说上传大小限制、https配置等等。
  2. wordpress的数据备份非常重要,比如说数据迁移备份等,将网站部署在甲骨文免费服务器,就要随时留意服务器释放数据丢失的问题,所以一定要做数据的自动化备份,这就涉及wordpress数据库的备份,以及上传数据的备份,这个涉及的内容也很多。
  3. wordpress的安全同样重要,需要装哪些插件来保护站点安全呢?这个也非常多,博主装了一个谷歌身份验证器的插件,可以保障网站无法被其他人登陆。

相关日志

  • wordpress xmlrpc.php文件存在错误,导致WPMU多站点版(multisite)没法通过OpenLiveWriter获取到博客信息
    最近再次测试wordpress multisite(wordpress多站点,简称WPMU)通过XML-RPC管理博客,但是始终无法通过OpenLiveWriter/WindowsLiveWriter...
  • JiaThis公司决定关闭“友荐”服务
    ​因公司业务调整,非常遗憾的向大家宣布JiaThis公司决定自2017年4月15日起关闭旗下“友荐”业务。 因为关停“友荐”业务给您造成的不便,我们深表歉意。 JiaThis“分享”和“友言”两个...
  • 社会化评论系统——多说即将关闭
    ​社会化评论系统多说发布重要通知: 因公司业务调整,非常遗憾的向大家宣布多说项目即将关闭。 我们将于2017年6月1日正式关停服务,在此之前您可以通过后台的数据导出功能导出自己站点的评论数据。 对此...
  • 最近
    最近很忙,忙的连昨天的博客都忘更新了,至于忙的啥,还是那句话;XXXXXX——其实我也不清楚,说是学习吧,什么也没有学到;说是玩吧,可是又翻过一两下书…… 尽管这几天“很忙”,但是过得还可以,还能吃...
  • 写给动荡不安的网络
    网络让人越来越让人感到不安了,先是 不允许个人注册.cn域名 接着大力取消未备案域名的解析、封锁部分国外ip,虽然说对清除淫秽内容起到一定作用,但是给中国互联网也带来了不晓得冲击,这些我并不在乎。我在...
  • 空间商耍赖,被迫停止更新了一段时间
    前两天,空间提供商壁纸刀犯了什么病,居然单方面听了部分空间,本博客被迫停止更新了一段时间,并且从Z-blog迁移回到了WordPress,经过一番努力现在终于可以正常更新。...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注