0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将Raspberry Pi用作Web服务器?

吕珠峰 来源:吕珠峰 作者:吕珠峰 2023-02-25 17:34 次阅读
这篇文章来源于DevicePlus.com英语网站的翻译稿。

您是否知道Raspberry Pi基金会的官方网站是托管在Raspberry Pi板集群上的?
这种配置在基金会最繁忙的一天—Raspberry Pi 4发布的时候—成功地为数千万的访问者提供了服务。

那么为何不也这样做呢?

这种Pi集群位于数据中心,并且基于企业交换机、负载平衡器和文件服务器来将自己的自定义SD卡映像写入Pi。
您将无法从带有无线路由器和家庭互联网的休息室获得可比较的结果(即使您的路由器和互联网非常好)。
您还必须保证安全性。如果您把您的Pi提供给公共互联网,而有攻击者破解了它,那么他们很有可能会访问您的本地网络。这就不好了。

如果您决定要使用Raspberry Pi来托管公共互联网上的网站,那么最好花钱请提供Raspberry Pi托管服务的人来为您处理。如果您是用于商业用途,那更要采取这种方式。

Raspberry Pi Web服务器的免费替代品

不过,其实以每月$0.00的价格在云上托管web服务器并不难。因为大型云企业很乐意在他们的免费服务中为您提供一个小型VPS。
您无法通过这种级别的基础平台来启动热门的新技术初创公司,但是对于个人博客,甚至本地企业或者自由职业者网站来说,这已经足够了。您只需要具备在Raspberry Pi上执行相同任务时所用的Linux技能就可以完成该操作。

使用Raspberry Pi的意义

Raspberry Pi作为一种廉价、节能的用于托管本地网络中的网站和web应用程序的方式,具有非常重要的意义。
这是一个很棒的测试平台和开发平台,您可以拥有技术核心的完全访问权限。您也不必担心在对其进行鲁棒性测试时的带宽费用或者使用政策是否可接受。
这也是在本地网络上为中小型企业托管wiki之类网站的绝佳方式。但是需要确保设置了自动备份。
您可能正在使用您的Pi来制作具有某种web界面或仪表板的IoT设备原型。对于这种工作,安装web服务器是唯一正确的方法。
最后,在Raspberry Pi上安装web服务器的最佳理由之一是督促您开始学习web服务器的相关知识。

选择一种Web服务器

到目前为止,两个最流行的Web服务器是Apache和Nginx(读作Engine-X),这些都是您可以自由安装和使用的开源项目。
Apache于1995年首次发布,几乎与web同时发布,并且至今仍是互联网上最受欢迎的Web服务器。
它拥有自己的模块来处理动态内容,例如PHP,并且它的广泛使用也显示出其文档相当齐全。这种服务器是一个强大的多面手,可以轻松地为各个目录提供单独的配置。这些特点使其成为了一个很好的入门选择。

编写Nginx是为了解决Apache在处理许多并发用户任务时存在的局限性。它擅长处理静态内容,在处理动态内容时需要用到外部处理器
在本指南中,我们将安装Apache。Nginx的确具有优势,但是对于Raspberry Pi的典型使用案例来说不是那么重要。不过,如果您正在使用您的Pi来制作可以扩展的原型,那么也可以考虑学习使用Nginx。
事实上,将两者一起使用也很常见,将Nginx用在前端管理静态资源,后端使用Apache来呈现动态内容。
其他主要的web服务器有:
Node.js 已经安装在了您的Raspberry Pi中。它不是传统的web服务器,而是Javascript的运行时环境。虽然您通常会使用Apache或Nginx之类的服务器作为前端,但是它可以同时处理多个连接,这对大型web应用程序来说非常方便。
• 您的Raspberry Pi上还安装有Python的http.server模块。这种模块对测试和开发很有益,但是对于web服务器来说尤其方便。如果您正在用Python编写web应用程序,那么只需要用几行代码就可以设置一个简单的web服务器。
• Lighttpd 非常有效地利用了系统资源,所有开发嵌入式系统物联网设备的人应该都对此很感兴趣。

在Raspberry Pi上安装Apache

本指南是以Raspberry Pi OS Buster来编写的,但是如果您使用的是早期版本的Raspbian,也不会有太大区别,Apache是一款非常成熟的软件。
您将需要互联网连接来安装这些软件包。
进入终端,并通过输入以下内容更新您的操作系统
sudo apt update && sudo apt upgrade -y

更新完成后,使用以下命令安装Apache:
sudo apt install apache2 -y

您现在可以通过浏览Raspberry Pi来检测Apache是否正确安装。如果您使用的是Pi的web浏览器,请在地址栏中输入 http://localhost.com/ 。
如果是在本地网络中的其他设备上,您还需要使用IP地址。如果您不知道IP地址,可以通过以下命令获取:
hostname -I

您的浏览器将加载出如下所示的页面。

poYBAGPzHSaACuVOAAE0JHwvPng829.png

恭喜您拥有了一个Web服务器!

这很容易,对不对?
想要处理静态内容,您只需要完成一个简单的设置:每次页面在浏览器中加载时显示的内容都完全相同,直到您自己对文件进行编辑为止。
那么让我们来对其中的一个文件进行编辑,输入:
sudo nano /var/www/html/index.html

向下滚动文件,直到找到“Apache2 Debian Default Page(Apache2 Debian默认页面)”行,然后将其更改为任何您喜欢的新的标题。保存文件,然后在浏览器中重新加载页面。

poYBAGPzHSqAW9ftAAE4NY1gE4c669.png

静态网站速度快,维护简单,并且提供了许多可尝试的内容。对于简单的博客、商业网站或者信息网站,这也许可以满足您的所有需求。只需要将您的网站部署到目录/var/www/html/中,Apache将会为其提供服务。

当静态功能不能满足需求时

相比于每次都显示相同的内容(服务器通过执行代码生成的页面),您可能会希望能够提供动态内容。
也许这样的话用户就可以在页面中编辑或添加内容,或者是在自己之前的内容上添加新的页面(比如用于wiki、论坛或者博客上的评论部分)。
也可能是为了让您的设备可以在仪表板上显示数据,无论是从在线服务、数据库还是从连接到GPIO 引脚上的设备所收集的数据。
您可以使用多种脚本语言来构建动态网站,例如Java、 Perl、PHP、 Python或者Ruby。您甚至可以使用在Go、C++ 或者C中编写的编译二进制脚本。
PHP是一个很好的入门选择,因为最广泛使用的开源CMS平台,如WordPress、Joomla! 和Drupal都基于该语言建立。并且,通过这些平台可以很容易地构建大部分的网站。

安装 PHP

将PHP函数添加到Apache中只需要一个命令:
sudo apt install php libapache2-mod-php -y

通过将索引页面替换为PHP页面来测试安装是否成功。删除index.html并在nano中打开一个名为index.php的新文件。
sudo rm /var/www/html/index.html
sudo nano /var/www/html/index.php

现在输入以下指令,然后保存文件:

然后在浏览器中重新加载页面。您应该看到PHP函数呈现出如下内容:

pYYBAGPzHSyAMUjqAAEvVmdBboo097.png

接下来您要做什么?

接下来要做的工作取决于您自己。
Web的基本构建块是HTML和CSS,所以开始尝试两者之一是个不错的注意。
通过使用像Bootstrap这样的前端框架,您可以避免很多HTML和CSS方面的工作,因为大部分内容已经为您编写好了。
如果您想完全避免代码的编写,可以使用Hugo这样的静态站点构建器,它可以直接生成整个网站。
您掌握了这些内容之后,可能会想尝试创建动态网站。
您还可能会需要数据库存储和数据检索功能。如果您把MariaDB(或者MySQL)添加到已经构建的web服务器中,将会拥有所谓的LAMP堆栈(Linux、Apache、MySQL、PHP)。
LAMP堆栈是许多网站的基础平台,其中包括最受欢迎的平台:WordPress。同时,它也是托管wiki、论坛等网站的很好的选择。
也许您更想使用Python 而不是PHP。我的意思是,如果您正在Raspberry Pi上制作某种IoT设备或家庭自动化系统的原型,那么您很有可能已经在使用它了。
让Apache运行Python需要多做一些工作,因为您需要配置通用网关接口或CGI。如果遇到了困难,那么就使用Python内置的http.server模块进行开发和测试,直到找到解决方案。
Python还提供了流行的web框架,包括Django和Flask。两者中,Flask更简单、轻量。
我们到现在为止的探索只是触及了表面。请继续享受这一过程,看看下一步会有什么发现。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1255

    浏览量

    69322
  • 服务器
    +关注

    关注

    12

    文章

    9010

    浏览量

    85162
  • Raspberry Pi
    +关注

    关注

    1

    文章

    557

    浏览量

    22162
收藏 人收藏

    评论

    相关推荐

    Banana Pi M5 与 Raspberry Pi 4 – 基准测试

    Banana Pi M5 基准测试已成为我的网站上最受欢迎的作品之一,而且似乎人们真正想看到的是它与其 Raspberry 口味的表亲之间的直接比较,所以这里就是 Banana Pi M5 与
    的头像 发表于 10-28 10:28 263次阅读
    Banana <b class='flag-5'>Pi</b> M5 与 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 4 – 基准测试

    独立服务器与云服务器的区别

    随着互联网技术的飞速发展,企业对于服务器的需求日益增加,而服务器市场也随之出现了多种类型的产品,其中最常见的是独立服务器和云服务器。这两种服务器
    的头像 发表于 10-12 14:34 201次阅读

    使用NS1串口服务器HTTP模式上传服务器数据

    HTTP协议工作于客户端-服务端架构之上。浏览作为HTTP客户端通过URL向HTTP服务端即Web服务器发送所有请求。
    的头像 发表于 08-30 12:36 265次阅读
    使用NS1串口<b class='flag-5'>服务器</b>HTTP模式上传<b class='flag-5'>服务器</b>数据

    如何使用espconn api实现一个Web服务器

    我正在尝试使用 espconn api 实现一个 Web 服务器。 在一些请求之后,我收到将此错误(err1,超过最大时间值)写入 uart,下一个espconn_send导致致命异常 (28)。 没有关于此的文档... 我该如何解决这个问题?
    发表于 07-18 07:46

    ESP8266配置为带有AT命令的Web服务器,AT命令回复HTTP GET出现错误怎么解决?

    我已将ESP8266配置为带有 AT 命令的 Web 服务器。当浏览连接时,它会向我发送一个请求[i]GET /favicon.ico我想用一个[i]错误 404 未找到. 如何在响应 IPD 时发送的数据包中执行此操作?
    发表于 07-16 08:29

    如何将ESP用作Internet交换机?

    有一个 esp 代码可以在 NAT 路由中转换它。有没有办法 AP 和 STA 接口仅用作两个交换机端口?我想使用路由的dhcp服务器
    发表于 07-10 07:24

    服务器和虚拟服务器的区别是什么

    服务器和虚拟服务器是两种常见的服务器类型,它们在很多方面有相似之处,但也有一些关键的区别。本文详细介绍云服务器和虚拟
    的头像 发表于 07-02 09:48 644次阅读

    名单公布!树莓派5(Raspberry Pi 5)开发板免费试用!!!

    Raspberry Pi 芯片!Raspberry Pi 5 是一款多功能、功能强大的单板计算机,可广泛应用于 DIY 项目、教育工具、媒体中心、
    发表于 06-27 15:40

    如何将CYKIT-028 TFT模块与Raspberry Pi和ESP32微控制结合使用?

    我目前正在探索如何将 CYKIT-028 TFT 模块与 Raspberry Pi 和 ESP32 微控制结合使用。 不过,在选择集成开发环境(IDE)和使用 PSOC Creato
    发表于 05-21 07:36

    5分钟内Raspberry Pi Pico变成简单的示波器+波形发生

    5 分钟内 Raspberry Pi Pico(或任何 RP2040 板)变成简单的示波器+波形发生
    的头像 发表于 03-04 09:14 1957次阅读
    5分钟内<b class='flag-5'>将</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico变成简单的示波器+波形发生<b class='flag-5'>器</b>

     海外云服务器搭建pi节点详细步骤

     海外云服务器搭建pi节点简单吗?海外云服务器搭建pi节点步骤有哪些?小编为您整理发布海外云服务器搭建p
    的头像 发表于 02-21 10:16 1054次阅读

    什么是web服务器?如何选择服务器配置?

    Web服务器是一种软件或硬件设备,用于托管和提供网页内容。它接收客户端(如浏览)发送的HTTP请求,并返回相应的网页内容或其他资源,以实现更高的性能和可靠性。它是网站和应用程序在互联网上构建和交付
    的头像 发表于 01-03 15:25 1055次阅读

     物理服务器和大宽服务器怎么选

    物理服务器和大宽服务器的选择需要根据具体的业务需求来决定。物理服务器是一种独立的、非虚拟化的计算机设备,它通常被用作高性能应用、数据库、存储和网络等关键业务应用的运行平台。常见的物理
    的头像 发表于 12-20 10:50 540次阅读

    显示Web服务器中的内存使用情况

    Web服务器上,您可以在“内存”选项卡的“诊断”网页上找到有关各个内存区域当前使用情况的信息。
    的头像 发表于 12-18 10:18 768次阅读
    显示<b class='flag-5'>Web</b><b class='flag-5'>服务器</b>中的内存使用情况

    idea如何将项目部署到tomcat服务器

    项目部署到Tomcat服务器上是一个常见的操作,下面是一个详细的步骤指南,描述了如何将项目成功部署到Tomcat服务器上。 准备工作 在开始之前,确保你已经安装了Java环境和Tom
    的头像 发表于 12-03 15:25 1539次阅读