【无需公网IP】在树莓派上搭建Web站点

目录

1.概述

2.使用 Raspberry Pi Imager 安装 Raspberry Pi OS

3.设置 Apache Web 服务器

3.1测试 web 站点

3.2安装静态样例站点

3.3将web站点发布到公网

3.4安装 Cpolar

3.5cpolar进行token认证

3.6生成cpolar随机域名网址

3.7生成cpolar二级子域名

3.8将参数保存到cpolar配置文件中

3.9测试修改后配置文件

3.10配置cpolar服务开机自启动


  • 🎈个人主页:库库的里昂
  •  🎐CSDN新晋作者
  •  🎉欢迎 👍点赞✍评论⭐收藏
  • ✨收录专栏:cpolar
  • 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗

1.概述

这非常适合设置您的第一个网站,不仅可以学习管理 wordpress 站点,还可以学习 Linux。您将需要一个树莓派(Raspberry Pi)、几个小时和一台计算机来下载映像。 树莓派(RPI) 是学习这些东西的完美设备。

还可以查看 RaspberryPi 的官方项目站点
来源: https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress

2.使用 Raspberry Pi Imager 安装 Raspberry Pi OS

下载适用于您的操作系统的树莓派镜像工具。它支持大多数操作系统(Windows、Mac 和 Linux)。

Raspberry Pi OS – Raspberry Pi

  • 运行并安装树莓派镜像工具
  • 选择 Raspberry Pi OS -> Raspberry Pi OS (32-bit)
  • 将 SD 卡插入计算机
  • 点击 Write 按钮

28724f57f295f612b8273cc7694177cd.png

3.设置 Apache Web 服务器

Apache 是一种流行的 Web 服务器应用程序,您可以将其安装在 Raspberry Pi 上以允许它为网页提供服务。

Apache 本身可以通过 HTTP 提供 HTML 文件。通过附加模块,它可以使用 PHP 等脚本语言提供动态网页。

sudo apt-get install apache2 -y
sudo service apache2 restart

3.1测试 web 站点

默认情况下,Apache 将测试 HTML 文件放在 web 文件夹中,您可以从您的 Pi 或网络上的另一台计算机查看该页面。

在 Raspberry Pi 上打开 Apache 默认网页:

  • 通过从菜单中选择 Internet > Chromium Web 浏览器打开 Chromium。

  • 输入地址 http://localhost

您应该在浏览器窗口中看到:

df4834f3e66a63f76849159b42660298.png

3.2安装静态样例站点

为了让站点的内容更有意义,我们部署一个简单的静态演示站点–冥想放松站点。

cd /var/www/html/
sudo rm *
sudo wget https://www.cpolar.com/static/downloads/meditation-app-master.tar.gz
sudo tar xzf meditation-app-master.tar.gz
sudo mv meditation-app-master/* .
sudo rm -rf meditation-app-master meditation-app-master.tar.gz

重新在浏览器打开,并刷新站点:http://localhost

adabb41c240980aaad85014db76e322e.png

这是一个用于冥想的小工具站点,可以用它帮助自己工作之余放松2-10分钟。

它可以选择不同冥想情景及放松时间(2-5-10分钟)。

3.3将web站点发布到公网

目前,这个站点只能在局域网站可以被访问,公网用户是访问不到的。要想所有人访问你创建的漂亮站点,我们需要做如下工作。

3.4安装 Cpolar

cpolar是一款内网穿透工具,可以将您的内网站点暴露到公网上,使所有人可以访问到你的站点。

  • cpolar一键安装脚本:(国内用户)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或短链接安装方式:(国外用户)
curl -sL https://git.io/cpolar | sudo bash
  • 查看cpolar版本信息
cpolar version

如果正常显示,则安装成功,如图:

823ce06c0c79f39281c090e8d0c85a9b.png

3.5cpolar进行token认证

如果您还没有cpolar账号,请去cpolar官网注册并登录后台获取认证token

cpolar authtoken xxxxxxxxxxxxxxxxxx

3.6生成cpolar随机域名网址

cpolar http -region=cn_vip 80

7441073270a5985cad9dd8b46147b4b9.png

上图显示,cpolar将内网站点,发布到了一个随机域名网址:https://711d7522.vip.cpolar.cn

  • 我们打开浏览器试一下:https://711d7522.vip.cpolar.cn

d965ea95c6ba882b5475bf0549e26050.png

现在,我们已经发布了内网的web站点到公网,任何人都可以访问到它。

回到终端窗口,按CTRL+C键,退出cpolar

此时,公网地址不再能被访问。

3.7生成cpolar二级子域名

虽然已经发布到公网,但域名是随机变化的,只适合临时测试使用。如果要长期使用,我们要配置二级子域名。

操作步骤:

  • 升级到cpolar基础套餐
  • 登录到cpolar后台–>预留–>保留二级子域名,例如添加dev9,地区选择VIP China地区

在前台终端测试域名

cpolar http -subdomain=dev9 -region=cn_vip 80

如果显示正常,则说明我们已经配置好了。

91ab79e7b8b35882126f7556a8a741b9.png

用新的域名在浏览器里访问:https://dev9.vip.cpolar.cn

正常则说明我们的固定二级子域名配置好了。

3.8将参数保存到cpolar配置文件中

刚刚我们在前台运行cpolar程序,关掉后,域名消失,现在我们将参数保存到配置文件中。以支持开机后台自启动运行。

  • 编辑配置文件
nano /usr/local/etc/cpolar/cpolar.yml

如图:

2c383937427e60557696b8b422396fd9.png

上图为样例配置文件,它会配置两个默认隧道:一个ssh隧道和一个website隧道。

参数说明:

authtoken: xxxxxxxxxxxx #认证tokentunnels:ssh:              #隧道名称,表示ssh,名称可以自定义addr: 22        #端口号为22proto: tcp      #协议tcpregion: cn_vip  #地区,cn_vip,可选:us,hk,cn,cn_vipwebsite:          #隧道名称,用户可以自定义,但多隧道时,不可重复addr: 8080      #本地Web站点端口proto: http     #协议httpregion: cn_vip  #地区,cn_vip,可选:us,hk,cn,cn_vip

本例中,我们需要修改如下内容:

  • 将website隧道的默认8080端口修改为80
  • 添加一行 subdomain: "你的二级子域名"

修改后的效果如图:

15fb87e632e0cda9c07eacaf3dcc3fc1.png

注意: 配置文件是yaml格式的,缩进敏感,而且不能有TAB键

然后按CTRL+X,退出,提示你是否保存,回答Y,确认保存文件路径,回车

3.9测试修改后配置文件

在前台启动所有隧道测试

cpolar start-all

29f62719169c243a94063008de119bcb.png

如上图显示,则为正常,按CTRL+C退出

如果报错,会提示配置文件某行有错误,请重新修改。直到类似上图正确输出。

3.10配置cpolar服务开机自启动

  • 配置cpolar开机自启动
sudo systemctl enable cpolar
  • 守护进程方式,启动cpolar
sudo systemctl start cpolar
  • 查看cpolar守护进程状态
sudo systemctl status cpolar

如图说明,启动状态成功

e88c896be2f80d029b92f120cba944d9.png

  • 重新启动
sudo reboot

重启后,检查cpolar隧道是否仍在线

访问后台–>状态 https://dashboard.cpolar.com/status

如图说明配置成功

f94d50ae4900cdf9ef08015539e31f7a.png

在树莓派上搭建Web站点到这里就结束了!

953d6fa9d810471aa3818368f5b20492.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/367962.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 下,Java由Java8升级到Java11,Java不更新版本号

在ES对接过程,springboot3进行对接,需要将Java升级到11版本。首先下载安装选好的11版本Java,在linux下解压后,配置/etc/profile export JAVA_HOME/root/SJL/jdk-11.0.22 然后保存,执行文件source /etc/profile&#…

Linux多进程和多线程(一)-进程的概念和创建

进程 进程的概念进程的特点如下进程和程序的区别LINUX进程管理 getpid()getppid() 进程的地址空间虚拟地址和物理地址进程状态管理进程相关命令 ps toppstreekill 进程的创建 并发和并行fork() 父子进程执行不同的任务创建多个进程 进程的退出 exit()和_exit() exit()函数让当…

【机器学习】机器学习与电商推荐系统的融合应用与性能优化新探索

文章目录 引言第一章:机器学习在电商推荐系统中的应用1.1 数据预处理1.1.1 数据清洗1.1.2 数据归一化1.1.3 特征工程 1.2 模型选择1.2.1 协同过滤1.2.2 矩阵分解1.2.3 基于内容的推荐1.2.4 混合推荐 1.3 模型训练1.3.1 梯度下降1.3.2 随机梯度下降1.3.3 Adam优化器 …

根据后端返回的省市区重新封装树结构(省市区通过children表示)

对比图(截取部分): 注:先看分步,最后会附上完整代码(如果有用,可以给小编点个赞吗?十分感谢) 1.首先将前端返回相同的省份只展示一次 const obj {}; let keyList []r…

最新简约美观的网址网站引导页HTML源码

最新简约美观的网址网站引导页HTML源码 带一言 随机大图 源码下载:https://download.csdn.net/download/m0_66047725/89487135 更多资源下载:关注我。

分布式数据库HBase:从零开始了解列式存储

在接触过大量的传统关系型数据库后你可能会有一些新的问题: 无法整理成表格的海量数据该如何储存? 在数据非常稀疏的情况下也必须将数据存储成关系型数据库吗? 除了关系型数据库我们是否还有别的选择以应对Web2.0时代的海量数据? 如果你也曾经想到过这些问题, 那么HBase将是…

【教程】lighttpd配置端口反向代理

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 1、修改配置文件: sudo vim /etc/lighttpd/lighttpd.conf2、先添加mod_proxy: 3、然后添加端口映射: 4、保存&…

24位DAC转换的FPGA设计及将其封装成自定义IP核的方法

在vivado设计中,为了方便的使用Block Desgin进行设计,可以使用vivado软件把自己编写的代码封装成IP核,封装后的IP核和原来的代码具有相同的功能。本文以实现24位DA转换(含并串转换,使用的数模转换器为CL4660)为例,介绍VIVADO封装IP核的方法及调用方法,以及DAC转换的详细…

SpringBoot 通过Knife4j集成API文档 在线调试

介绍 Knife4j 是一款基于 Swagger 构建的增强型 API 文档生成工具&#xff0c;它提供了更多的定制化功能和界面优化&#xff0c;使得生成的 API 文档更加美观和易用。它可以帮助开发者快速生成和管理 API 文档&#xff0c;支持在线调试和交互。 依赖 <!--knife4j--> &…

不用编码构建本地RAG聊天机器人

前言 还记得开发一个智能聊天机器人需要花费数月编码的时间吗&#xff1f; 像 LangChain 这样的框架确实简化了开发&#xff0c;但是对于非程序员来说&#xff0c;数百行代码仍然是一个障碍。⁤ 就在那时&#xff0c;我发现了“Lang Flow”&#xff0c;这是一个基于 Python 版…

鸿蒙开发设备管理:【@ohos.settings (设置数据项名称)】

设置数据项名称 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 本模块提供设置数据项的访问功能相关接口的说明及示例。 导入模块 import settings from ohos.settings;settings.getUri…

Windows Hello | 看起来您已经在另一个帐户上设置了 Windows Hello。

问题&#xff1a; 换了新电脑之后一直设置不了Window Hello&#xff0c;报错是 "it looks like youve already setup Windows Hello on another account."。 >>重复set up不行。 >>从旧电脑移除了Windows Hello设置也不行。 >>确认过我的Local…

工具:颜色查询 / CMYK颜色查询RGB、HSL、HSV、XYZ的颜色值

一、颜色查询-网址 RGB(90,223,9),#5ADF09 颜色查询,颜色梯度,色彩搭配,色盲模拟 - RGB颜色查询 - 在线工具 - Fontke.com 二、CMYK颜色查询RGB、HSL、HSV、XYZ的颜色值 三、颜色梯度 四、色彩搭配 五、色盲模拟 六、欢迎交流指正

素颜简约的个人导航网站源码

源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 素颜简约的个人导航网站源码

高级IO_多路转接之select

文章目录 [TOC](文章目录) 前言文件描述符的阻塞和非阻塞fcntl 多路转接之selectselect接口select的缺点 前言 关于IO&#xff0c;我们已经用过了不少IO接口&#xff0c;从最简单的printf、scanf->C语言文件接口fprintf、fscanf->系统文件接口read、write->再到我们的…

docker -run hello-world超时

主要原因就是尝试拉取库的时候没有从阿里云镜像里拉&#xff0c;所以设置一下就好了 这里使用的是ubuntu系统&#xff08;命令行下逐行敲就行了&#xff09; sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": [&quo…

Unity Shader 极坐标

Unity Shader 极坐标 前言项目简单极坐标极坐标变体之方形极坐标变体之圆形拉花封装方法 鸣谢 前言 极坐标记录 项目 简单极坐标 极坐标变体之方形 极坐标变体之圆形 拉花 封装方法 鸣谢 【菲兹杂货铺】【Unity Shader教程】极坐标实现以及极坐标的两种变体

使用dot来画流程图

Dot是一种图形描述语言&#xff0c;属于Graphviz软件的一部分。Graphviz是一个用于可视化图形&#xff08;图表、网络图等&#xff09;的开源工具集。使用Dot语言&#xff0c;你可以创建并描述节点和边&#xff0c;从而生成图形。以下是如何使用Dot语言画图的基本步骤&#xff…

巴西市场有哪些电商平台?巴西最畅销的产品有哪些?

巴西&#xff0c;作为南美洲最大的经济体之一&#xff0c;近年来在电子商务领域展现出强劲的增长势头。随着互联网的普及和消费者购物习惯的改变&#xff0c;电商平台在巴西市场上“打”得热火朝天&#xff0c;不过占据市场份额最大的依然还是美客多。本文将探讨巴西市场上的主…

[C++][设计模式][访问器]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受1.代码一2.代码二 1.动机 在软件构件过程中&#xff0c;由于需求的变化&#xff0c;某些类层次结构中常常需要增加新的行为(方法)&#xff0c;如果直接在基类中做这样的更改&#xff0c; 将会给子类带来很繁重的变更负担&#xff0c…