首页 > 其他分享 >docker部署wordpress个人博客

docker部署wordpress个人博客

时间:2024-06-15 23:23:05浏览次数:21  
标签:opt compose starless site 博客 wordpress docker

技术:docker-compose部署wordpres和mysql,宿主机的nginx部署SSL证书将HTTPS反向代理到wordpress。使用的是ubuntu 20.04
准备工作:
-一台云服务器,一个已经备案的域名
-免费申请到的nginx的SSL证书
-docker、docker-compose、nginx已部署,确认可以拉取镜像
一、docker-compose部署wordress和mysql
在/opt下创建一个wordpress的文件夹并创建docker-compose.yml文件,创建和启动mysql和wordpress容器。

mkdir -p /opt/wordpress&&cd /opt/wordpress&&vim docker-compose.yml
version: '3.1'
services:
  wordpress:
    image: wordpress
    restart: always  #容器因为某种原因停止时,Docker Compose始终尝试重新启动它
    ports:
      - 8080:80     #端口映射。宿主机8080端口被映射到容器80端口
    environment:    #设置了 WordPress 所需的环境变量,以连接到 MySQL 数据库
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:      #定义一个卷映射,将主机的 /opt/wordpress 目录映射到容器的 /var/www/html
      - /opt/wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - /opt/mysql:/var/lib/mysql

启动docke-compser.yml

docker-compose -f docker-compose.yaml up -d  
-f:调用文件
-d:开启守护进程

在浏览器访问wordpress,并将修改站点地址为域名,后面部署ssl证书重定向到这个域名
starless.site:8080

二、配置nginx反向代理和SSL证书
将下载下来的SSL证书上传到服务器,我是上传到/opt/ssl目录下的
配置nginx文件,

vim /etc/nginx/sites-available/default
 server {
    listen 80;
    server_name starless.site www.starless.site; 

    return 301 https://www.starless.site$request_uri;  #所有到达这里请求,返回一个301永久重定向响应,将HTTP重定向到HTTPS,并带上原始请求的URI($request_uri
}
server {
    listen 443 ssl http2;    #在443端口上监听HTTPS,并使用HTTP/2协议
    server_name www.starless.site;

    ssl_certificate "/opt/ssl/starless.site_bundle.pem";   #配置SSL证书
    ssl_certificate_key "/opt/ssl/starless.site.key";      #配置SSL秘钥

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }

修改好后重新加载一下nginx的配置文件。

nginx -s reload

修改wordpress配置文件,
如果直接代理过去,会有很多问题,需要修改/opt/wordpress/wp-config.php。这个是docker容器挂载的卷,添加以下内容

vi /opt/wordpress/wp-config.php
define('FORCE_SSL_ADMIN', true);

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false){
    $_SERVER['HTTPS'] = 'on';
    $_SERVER['SERVER_PORT'] = 443;
}
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
    $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
define('WP_HOME','https://starless.site/');
define('WP_SITEURL','https://starless.site/');

最后重启一下docker容器

docker-compose -f wordpress.yml restart

访问web页面,ssl秘钥也生效了
starless.site

标签:opt,compose,starless,site,博客,wordpress,docker
From: https://www.cnblogs.com/larks-islands/p/18249974

相关文章

  • (转)Docker Compose:从零基础到实战应用的全面指南
    原文:https://juejin.cn/post/7306756690727747610#heading-22引言什么是Docker?Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现,项目后来加入了Linux基金会,遵从了Apache2.0协议,项目代码在GitHu......
  • docker中安装win系统
    目录环境介绍安装docker在docker中安装win其他环境介绍Ubuntu24.04LTS172.16.186.148/24NAT4U/20G/120G安装docker#删除旧版本forpkgindocker.iodocker-docdocker-composedocker-compose-v2podman-dockercontainerdrunc;dosudoapt-getremove$pkg;don......
  • hexo 实战:(二)个人独立博客豪华装修合集
    前言上次介绍了使用Hexo+GitHubPages,零成本搭建一个专属自己的独立博客网站。我觉得那篇文章是没有入门门槛的,不管你是什么行业,只要想打造个人IP,又不太想受博客平台约束,那么读完后动手操作一下也能轻松完成。而这次呢,上篇也说了Hexo会出三篇内容,这里就要在前者基础上做进一......
  • 探索Docker容器网络
    Docker容器已经成为现代应用部署的核心工具。理解Docker的网络模型对于实现高效、安全的容器化应用至关重要。在这篇博客中,我们将深入探讨Docker的网络架构,并通过一些代码例子来揭示其底层实现。Docker网络模式Docker提供了多种网络模式,每种模式都有其特定的应用场景:Br......
  • 零基础-零成本搭建个人博客-Hexo-基于windows10
    下载nodejs #1、访问官网:https://nodejs.org/en-下载LTS版本下载后安装下一步、选择安装路径即可、注意要选择addtopath(这是npm下载包的路径)安装hexo安装成功后在cmd中输入npm验证一下:按Win+R键、弹出后输入cmd创建workspace:需要安装hexo下载的nmp包F:\worksp......
  • 博客入门
    一、博客的重要性预科01:博客的重要性_哔哩哔哩_bilibili二、博客语言-markdownMarkDown语法超详细教程-经验分享-Obsidian中文论坛三、博客环境的选择1、博客园,免费博客园-开发者的网上家园(cnblogs.com)2、个人博客,收费组合30分钟搭建Typecho个人博客教程-......
  • Docker容器简介
    容器技术容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无须任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。容器由两部分组成:应用程序本身依赖:比如应用程序......
  • docker没外网安装方法
    docker没外网安装方法需要先清理之前docker的依赖,避免影响安装失败1,下载docker的压缩tar包百度云Docker18.06.1地址:https://pan.baidu.com/s/1YdN9z72QutPkHBfLq06H1A密码:dvvh2,解压tar包#解压tar-xvfdocker-18.06.1-ce.tgz#将压缩的全部文件复制到/usr/bincpdoc......
  • Docker 入门
    Docker是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中。以下是学习Docker的推荐路线:###入门阶段1.**了解容器化的概念**:  -容器化与虚拟化的区别  -容器化的优势2.**Docker简介**:  -Docker的历史和目标......
  • 10分钟部署一个个人博客
    关于vuepress这里没必要过多介绍,感兴趣的可以直接去官网了解,下面是官网首页地址截图:https://v2.vuepress.vuejs.org/zh/透过这张图,我们也可以大致的对这个框架的特点有一定的认识,这就够了。其他的东西我们在使用过程中用到了会介绍。本文就是基于他来进行的博客搭建以及......