树莓派ubuntu20.04+Docker+Nginx+Wordpress个人网站搭建全纪录(超详细,入门友好篇)

这篇具有很好参考价值的文章主要介绍了树莓派ubuntu20.04+Docker+Nginx+Wordpress个人网站搭建全纪录(超详细,入门友好篇)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

树莓派ubuntu20.04+Docker+Nginx+Wordpress个人网站搭建全纪录(超详细,入门友好篇)

前言: 本文基于树莓派4B平台,搭载Ubuntu Server 20.04 LTS版本服务器系统,通过将树莓派服务器连接Ipv6公网网络,利用Docker工具,部署Nginx反向代理与Wordpress网站管理系统,实现网站搭建与异地访问。同时用到了域名管理、DDNS、MySQl等工具。本文将从服务器镜像烧录开始,将网站搭建过程进行完整的说明记录。
(经验来自互联网,多次试错学习后总结如下,以供参考。)
关键词: 树莓派; Ubuntu ; Ipv6 ;Docker

一、Ubuntu操作系统烧录与基本环境配置

1.1 Ubuntu Server 20.04 LTS镜像下载

基于树莓派的Ubuntu Server 20.04 LTS镜像下载网页:获取Ubuntu服务器版(https://cn.ubuntu.com/download/raspberry-pi)

选择下载64位服务器版本

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

1.2 树莓派烧录工具

使用树莓派官方镜像烧录工具Raspberry Pi Imager进行烧录

下载地址:Raspberry Pi Imager

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

安装,启动Raspberry Pi Imager,选择上一步中下载的Ubuntu镜像,插入SD卡,选择SD卡

右下角齿轮高级设置中:随意设置主机名、开启SSH服务、设置用户名密码、关闭WIFI、语言设置Shanghai

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux
ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

配置结束,保存开始烧录,选择是,等待烧录完成

1.3 系统运行

烧录完成后将SD卡插入树莓派中,插上网线上电启动。

因为没有配置Wifi,因此需要检查树莓派ip地址,通过打开家里路由器管理页面进行查询。

(若未找到树莓派设备,请重新烧录系统。)

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

可以看到树莓派地址为192.168.31.100,使用SSH工具连接树莓派,登录进入系统

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

1.4 环境基本设置

1.4.1 apt换源

使用清华apt源镜像:清华源镜像配置

在命令行中输入如下命令备份源文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list

复制清华源替换sources.list中原本内容

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse

vi操作命令

gg  //光标返回到文件内容起始位置
dG //删除全文
i //插入(编辑)内容
:wq 保存并退出

更新源

sudo apt-get update
1.4.2 查看ipv6地址

安装net-tools,使用ifconfig命令查看

sudo apt install net-tools -y

调用ifconfig命令查看ipv6地址

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

关于ipv6

若家里没有ipv6,请自行查阅相关教程,我家移动宽带,运营商提供ipv6,只是默认未开放,需要通过超级用户登录光猫后台启动。

最简单的方法,在某宝上搜索光猫改桥接,跟客服说明想要光猫改桥接,通过路由器拨号上网,路由器开启ipv6(前提路由器支持),远程很快就能搞定,不需要亲自动手。喜欢折腾的话也可以自行查阅相关资料。

二 Docker与所需容器安装配置

2.1 Docker安装

教程内容参考如下文章:Docker 安装

首先安装依赖文件

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y

信任Docker 的 GPG 公钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

添加软件仓库

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.zju.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装(一定要先update)

sudo apt-get update
sudo apt-get install docker-ce -y

验证Docker是否安装成功

sudo docker run hello-world

若返回 Hello from Docker! 则说明Docker安装成功

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

docker换源

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://sx1pmhon.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

2.2 Portainer——Docker基于界面管理工具

Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。

Github 项目地址:https://github.com/portainer/portainer

下载与安装

sudo docker pull portainer/portainer:latest

启动运行,分配9000端口

sudo docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer

打开 Portainer

在浏览器中输入 树莓派IP:9000 进入Portainer控制页面,本项目中树莓派ip地址为192.168.31.100

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

首次进入 Portainer 需要设置用户名和密码,点击 Create user 后刷新页面进入 Portainer 管理页面

Home 页面

查看Docker运行状态和主要配置区域

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

2.3 Nginx——反向代理工具

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx官网:https://nginx.org/en/

下载与安装

sudo docker pull nginx

启动运行,映射到80端口

sudo docker run -d -p 80:80 --name nginx nginx:latest

此时访问 树莓派ip:80 可以访问到Nginx默认页面,说明运行成功

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

将Nginx容器中的配置文件拷贝复制到宿主机(树莓派)本地中

sudo docker cp nginx:/etc/nginx /home/docker

命令含义为将Nginx容器中/etc/nginx文件夹中的文件复制到树莓派的/home/docker文件夹中,可根据需要自行修改后面的目标路径(需要提前创建文件夹)

重启nginx,并配置映射路径

sudo docker kill nginx
sudo docker rm nginx
sudo docker run -d -p 80:80 --name nginx -v /home/docker/nginx:/etc/nginx nginx:latest

此番操作是为了能够直接在宿主机中修改nginx配置文件nginx.conf

2.4 MySQl——数据库管理系统

MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统之一。后文中所用到的WordPress工具需要利用MySQL数据库。

MySQL官网:https://www.mysql.com/

下载与安装

sudo docker pull mysql

启动运行,映射到3306端口,配置root密码为123456

sudo docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

进入MySQL容器bash

sudo docker exec -i -t mysql bash

登录root用户,输入密码123456

mysql -u root -p

新建数据库,名称为wordpress,保存并退出

CREATE DATABASE wordpress;
quit; // 退出mysql
exit // 退出bash

2.5 WordPress——博客网站管理系统

WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。全球有大约40%的网站都是使用WordPress架设网站的。

WordPress官网:https://cn.wordpress.org/

下载与安装

sudo docker pull wordpress

启动运行,映射到8080端口

sudo docker run -d --name wordpress -p 8080:80 wordpress

访问 树莓派ip:8080 进入WordPress配置页面

配置语言,输入上文中新建的数据库名称wordpress,用户名root,密码123456,数据库主机172.17.0.1:3306,表前缀默认wp_

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux
ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

运行安装程序,填写表格信息,安装登录wordpress

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux
ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

访问 192.168.31.100:8080 进入博客主页

访问 192.168.31.100:8080/wp-admin 进入博客后台管理页面

三、Nginx代理访问Wordpress

3.1 前言

在上文的操作中,我们将所用到的工具都已经配置完成,目前各个环节都能够独立运行,例如:

:9000端口:Portainer管理页面

:80端口:Nginx页面

:8080端口:Wordpress页面

当我们输入树莓派服务器地址192.168.31.100时,默认访问80端口,即进入nginx页面,我们在2.3节截图中可以看到:80是被隐藏掉的。

简单来说:访问192.168.31.100 与 访问192.168.31.100:80 功能相同

此时Wordpress被部署在8080端口,我们需要将Nginx与Wordpress连接起来,通过Nginx来帮助我们访问博客网站。

3.2 操作步骤

修改Nginx配置文件:/home/docker/nginx/nginx.conf(2.3节中拷贝的路径)

sudo vim /home/docker/nginx/nginx.conf 

在 include /etc/nginx/conf.d/*.conf; 下添加以下内容

include /etc/nginx/conf.d/*.conf;
# 加入以下内容
server{
		listen 80;
		server_name [2409:8a04:xxxx:xxxx:xxxx:xxx:xxxx:xxxx](此处修改自己的ipv6地址,别少了中括号)

		location / {
            proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://172.17.0.1:8080;
		}
	}
   # 注意括号

最终效果如图所示

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

3.3 重启Nginx应用修改

访问Portainer控制页面,选中nginx容器,点击restart重启

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

3.4 访问页面测试

此时我们将Wordpress的8080端口与Nginx的80端口建立了联系。

浏览器访问 http://[ipv6地址] 即可访问Wordpress页面。

不在同一局域网中的ipv6网络也可以访问该网站,使用手机流量测试网站同样可以登录

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

四、域名购买与DDNS

此时网站基本上已经部署完成了,通过ipv6地址即可访问。但ipv6地址会不断变化,且通过输入ipv6地址的方式访问网站没有那么的优雅

因此将ip地址与域名进行绑定,并通过DDNS实时检测ip地址的变化,即可优雅地访问网站

4.1 域名购买

从阿里云购买域名(腾讯等网站同理)

域名购买网站:万网域名

搜索域名,选择心仪的域名,.top域名较为便宜,第一年一般为9元,续费较贵

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

注册阿里云账号,按照步骤申请购买就可以,最终在域名控制台可以看到购买的域名

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

4.2 AccessKey申请

阿里云官网,右上角主账号处选择AccessKey管理

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

选择使用子账户AccessKey,也可以使用主账户(不建议)

创建子账户

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

点击进入小账户,创建AccessKey,保存ID与Secret

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

点击权限管理-新增授权

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

添加管理云解析(DNS)的权限

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

4.3 DDNS安装与配置

DDNS(Dynamic Domain Name Server,动态域名服务)是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。

本文使用的DDNS解决方案:NewFuture/DDNS项目Github仓库

安装pip3

sudo apt install python3-pip

pip 安装ddns

sudo pip install ddns

在任意目录新建并编辑配置文件config.json

sudo vim config.json

编辑如下内容并保存

{
"$schema": "https://ddns.newfuture.cc/schema/v2.8.json",
"id": "AccessKey ID",
"token": "AccessKey Secret",
"dns": "alidns",
"ipv4": ["xxxxxx.top", "www.xxxxxx.top"],
"ipv6": ["xxxxxx.top", "www.xxxxxx.top"],
"index4": "default",
"index6": "public",
"ttl": 600,
"proxy": "null",
"debug": false
}

其中:

··idtoken 分别为4.2节中申请的 AccessKey IDAccessKey Secret

·· dns 为用到的DNS解析平台,本文使用的是阿里云,即alidns
(支持dnspod、dnspod_com、dnscom、cloudflare、he、huaweidns、callback)
·· ipv4ipv6 为域名,因为没有ipv4公网地址,ipv4可空,ipv6不可空

其余配置可根据项目说明进行修改

运行ddns,使用 -c使用指定的配置文件

ddns -c /路径/config.json

输出如下信息说明配置正确

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

可以编辑脚本每隔一段时间更新一次

4.4 重新配置nginx

修改Nginx配置文件nginx.conf

将 server_name 后面的ipv6地址修改为自己的域名,效果如下:

ubuntu docker 部署nginx,笔记,nginx,docker,服务器,linux

保存文件,重启nginx

4.5 测试

测试 xxxxx.top 和 www.xxxxx.top能否访问,推荐使用手机流量(ipv6)网络进行访问文章来源地址https://www.toymoban.com/news/detail-788020.html

到了这里,关于树莓派ubuntu20.04+Docker+Nginx+Wordpress个人网站搭建全纪录(超详细,入门友好篇)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu20.04安装配置Nginx

    由于在学习配置时,网上的教程比较杂乱,用时很久才做好一些基础配置,把流程记录一下方便和我一样的小白学习 本文写于2023.2.10,如果间隔太久,下述内容可能会失效,请另寻教程 仅包含基础教程,个人服务未涉及到负载均衡 安装nginx 配置静态服务器 配置端口转发 配

    2024年02月03日
    浏览(63)
  • 100个实战项目——在树莓派4B+Ubuntu20.04桌面版配置下运行智能小车(一)

    主机SSH远程链接从机 查看python版本 python 我的是python3.8 所以我需要安装pip3 sudo apt install python3-pip 接着安装程序需要的引脚库 sudo pip3 install RPi.GPIO 注意必须要有sudo,因为我是远程遥控的树莓派,没有权限运行程序,只能通过sudo获得权限,才不会报错 接着执行 sudo python3 auto

    2024年01月22日
    浏览(59)
  • 如何在 Ubuntu 20.04 上安装 Nginx

    前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 介绍 Nginx是世界上最受欢迎的 Web 服务器之一,负责托管互联网上一些最大和流量最高的网站。它是一个轻量级的选择,可以用作 Web 服务器或反向代

    2024年01月25日
    浏览(50)
  • 云服务 Ubuntu 20.04 版本 使用 Nginx 部署静态网页

    所需操作:                 1.安装Nginx                  2.修改配置文件                  3.测试、重启 Nginx                  4.内部修改防火墙                  5.配置解析                  6.测试是否部署成功 1.安装Nginx   1.1.测试是否安装没问题 在网页上

    2024年02月12日
    浏览(50)
  • ubuntu20.04 安装 docker engine

    如何在ubuntu中安装docker

    2024年02月15日
    浏览(63)
  • 本人亲测树莓派4B ubuntu20.04server连接wifi 设置wifi静态ip 连接Xshell 详细避坑

    镜像安装 网上有很多教程,注意的是我安装20.04MATE版时会出现安装系统崩溃的情况,而安装server版本则不会。 我的显示器是24寸,在连接显示器时需要在usercfg.txt中键入如下命令: 显示屏不显示很可能是因为 接触不良 !!!在连接显示器时大家记得把树莓派以引脚面向上的

    2024年02月08日
    浏览(48)
  • Ubuntu 20.04 上安装和使用 Docker

    Ubuntu 20.04 上安装和使用 Docker 在 Ubuntu 上安装 Docker 非常直接。我们将会启用 Docker 软件源,导入 GPG key,并且安装软件包。 首先,更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源: 使用下面的 curl 导入源仓库的 GPG key: 将 Docker APT 软件源添加到你的

    2024年02月03日
    浏览(61)
  • Ubuntu20.04中Docker安装与配置

    1、卸载可能存在的旧版本 2、更新apt包索引 显示“正在读取软件包列表… 完成” 3、安装以下包以使apt可以通过HTTPS使用存储库(repository) 显示“done.” 4、添加Docker官方的GPG密钥 显示“OK” 5、设置stable存储库 如果没有报错就正常进行下一步。显示“正在读取软件包列表… 完

    2024年02月05日
    浏览(55)
  • Ubuntu 20.04上docker安装Redis

    这将从Docker Hub上下载Redis官方镜像。 这将在后台运行Redis容器,并将容器内的6379端口映射到主机的6379端口。您可以将my-redis替换为您自己的容器名称。 您应该能够看到Redis容器的信息。 请注意,上述示例中的容器名称是my-redis,您可以根据需要替换为其他名称。

    2024年02月09日
    浏览(47)
  • Python 通过ffmpeg实现实时推流(ubuntu20.04+ffmpeg+nginx)

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。 RTMP协议,又称实时消息传输协议(Real Time Messaging Protocol),该协议 基于TCP ,是一个协议族行,用于

    2023年04月18日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包