docker搭建wordpress个人博客网站,轻量级!

发布于 2024-03-19  910 次阅读


一、概述

视频教程地址:https://youtu.be/1DIOvvnulms

1.1 概要

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

1.2 作用

  1. 拥有一个自己专属、功能强大、美观的个人网站,人人都是博主、人人都是创作者,记录下每一刻。
  2. 通过搭建站点,模拟真实的用户,从而完成甲骨文的保号。
  3. 这也是博主二十多个号必做的操作!

1.3 问题解答

极搜 堪称电报telegram目前最强搜索引擎,啥都能搜到!

达尔文西畅聊群,大佬团在线解答! https://t.me/dewxtalk

达尔文西畅聊2群,防失联专用群!https://t.me/dewxtalk2

免费gpt4.0群,无限制白嫖gpt4.0! https://t.me/freegpt41

二、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 ibegmysql \
    --restart=always \
    -v /ibeg/ibegmysql:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=Ibeg@dewx \
    mysql:latest

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

3.2.2 创建需要的数据库

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

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

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

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

3.3 docker部署wordpress

3.3.1 启动容器

docker run -d \
    -p 542:80 \
    --link ibegmysql \
    --restart=always \
    --name ibegwordpressblog \
    -v /ibeg/ibegwordpress:/var/www/html \
    wordpress:latest

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

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

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

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

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

-v /ibeg/ibegwordpress:/var/www/html:该参数用于设置容器内的数据卷挂载。它将主机上的/ibeg/ibegwordpress目录与容器内的/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  www.ibeg.eu.org;   #设置主机域名
        #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的大括号

三、相关地址

极搜 堪称电报telegram目前最强搜索引擎,啥都能搜到!

达尔文西畅聊群,大佬团在线解答!https://t.me/dewxtalk

免费gpt4.0群,无限制白嫖gpt4.0!https://t.me/freegpt41

四、总结

  1. wordpress部署非常容易,难得是处理可能会面临的各种问题,问题非常多,比如说上传大小限制、https配置等等,大家感兴趣的话稍微我将会出问题解决的视频
  2. wordpress的数据备份非常重要,比如说数据迁移备份等,将网站部署在甲骨文免费服务器,就要随时留意服务器释放数据丢失的问题,所以一定要做数据的自动化备份,这就涉及wordpress数据库的备份,以及上传数据的备份,这个涉及的内容也很多,感兴趣可以出视频。
  3. wordpress的安全同样重要,需要装哪些插件来保护站点安全呢?这个也非常多,博主装了一个谷歌身份验证器的插件,可以保障网站无法被其他人登陆。
  4. 这期视频反馈比较好的,博主将会出wordpress后续的相关视频,让大家把wordpress玩出花样,如果只是单纯的建站保号,视频就差不多够了。