【问题标题】:How do I auto-launch a custom webserver on BeagleBone Black?如何在 BeagleBone Black 上自动启动自定义网络服务器?
【发布时间】:2013-06-25 17:36:23
【问题描述】:

我希望我的 BeagleBone Black 启动并使用自定义 Web 服务器开始 Web 服务,而无需登录和配置/启动/更改任何内容。

我想这个问题有两个方面:

  • 如何删除所有默认、冗余或冲突的启动 网络服务器行为?我正在运行股票 Angstrom,3.8.13。

  • 假设我有自己的 web 服务器可执行文件(在我的例子中是一个扭曲的 web 服务器),如何将其配置为在船上自动启动 启动?

非常感谢您能给我的任何帮助。

【问题讨论】:

标签: beagleboard angstrom-linux twistd


【解决方案1】:

简介

我认为您正在尝试和我做同样的事情,即当您导航到 BBB 的 IP 地址时,将您在浏览器中看到的网页从其默认的 bone101 页面更改为您自己的用 HTML 或其他内容编写的自定义网页。

部分基于此页面上的答案以及我自己的反复试验,我已经弄清楚了如何做到这一点,并在下面提供了一个完整而完整的答案。

澄清其他答案中的混淆点

但首先,澄清一下本页其他答案中的一些令人困惑的地方:

  • 当您通过 USB 将 BBB 插入计算机并将浏览器导航到 BBB 的 IP 地址(默认为 192.168.7.2)时,您将获得位于(默认)位于 /usr/share/ 的默认 bone101 页面bone101/index.html

  • 如果您通过以太网将 BBB 直接插入路由器(或设置 wifi 连接),然后您可以浏览到 BBB 的 IP 地址在网络上,您将得到相同的结果网页。

  • 如果您随后在路由器上设置端口转发以将传入的 http 流量转发到 BBB,然后您访问网络的外部 IP 地址(直接或通过您的域 (www.example.com) 指向该 IP 地址),那么您也将获得相同的网页。

这最终是我和我相信 OP 正在努力改变的。我想使用我的 BBB 作为网络服务器来为我自己的网站提供服务,我不希望人们去 www.my-website.com 看到默认的 bone101 内容。

解决方案

注意:我运行的是最新的 Debian ARM 映像,而不是 angstrom,因此默认位置可能不同。

根据 Bas Wijnen 的回答,首先禁用并停止现有的 bone101 东西:

systemctl disable bonescript.socket
systemctl disable bonescript.service
systemctl stop bonescript.socket
systemctl stop bonescript.service

然后编辑 apache Web 服务器配置。首先编辑端口监听配置:

sudo vim /etc/apache2/ports.conf

并改变这一行:

Listen 8080

到这里:

Listen 80

因为端口 80 是 http 流量的默认端口。否则人们将不得不访问 www.your-website.com:8080,这很愚蠢。

然后,如上述文件中所述,您还必须编辑启用站点的配置:

sudo vim /etc/apache2/sites-enabled/000-default.conf

从此编辑第一行:

<VirtualHost *:8080>

到这里:

<VirtualHost *:80>

然后将您的内容放在DocumentRoot 字段中注明的目录中(这是用作网站根目录的目录),默认为/var/www/html,或者将DocumentRoot 字段更改为指向您要使用的目录。就我而言,我将其保留为 /var/www/html,但随后将其作为符号链接指向我的网站内容所在的 git 存储库中的目录。

或者如果你只是想做一个快速测试,symlink或者复制apache默认测试页到DocumentRoot目录或者改变字段指向apache默认测试页所在目录(默认@ 987654333@)

然后重启apache,等等

sudo /etc/init.d/apache2 restart

【讨论】:

    【解决方案2】:

    bbb 使用 systemd 和服务文件来控制服务的启动方式——/etc/init.d 中的 bbb 上有一个 README,它提供了一些信息和链接。 http://fedoraproject.org/wiki/Systemd 也有一些关于 systemd 的好页面。默认配置了很多服务。尝试输入: systemctl list-units 这将为您提供服务列表和一些最少的状态信息。每个列出的服务都由(通常)简单的服务文件配置,这些文件告诉 systemd 如何启动,这些文件大部分位于 /lib/systemd/system 中。我不完全确定您在第一个问题中要问什么,但听起来您想摆脱“内置”网络服务器——我自己对 bbb 很陌生,我不知道肯定回答,但如果我发现更多,我会在这里发布。

    【讨论】:

      【解决方案3】:

      只有通过 USB 电缆连接后,您才能访问 BBB 存储设备上的 html 页面。

      这里的 BBB 并非如此。虽然默认的“/support/bone101”网页确实可以通过 USB 接口 USB0 上的 192.168.7.2 访问,但它们也出现在 BBB 的动态 IP 地址上的常规网络接口 eth0 上,例如我本地网络上的 192.168.1.132 .

      当然,在其他版本上运行“Linux beaglebone 3.8.13 #1 SMP Tue Jun 18 02:11:09 EDT 2013 armv7l GNU/Linux”所以 YMMV。

      我正在考虑将“Bone”设置为在基本 IP 地址上提供服务的远程监控中心,而搜索正是我来到这里的原因。在 BBB 上运行了一天的所有时间,旅程才刚刚开始......

      【讨论】:

        【解决方案4】:

        我使用 opkg 安装了 lighttpd。 lighttpd.conf 文件位于 /etc 中,您可以在其中指定端口:

         --> cat lighttpd.conf | grep port
        ## bind to port (default: 80)
        server.port                = 2080
        

        等等:

        server.document-root        = "/www/pages/"
        server.errorlog             = "/www/logs/lighttpd.error.log"
        accesslog.filename          = "/www/logs/access.log"
        

        www/pages 是您可以找到 index.html 的地方。有效!

        您根本不必禁用旧的原始入门 Web 界面,只需添加您自己的并将其设为默认即可。

        【讨论】:

          【解决方案5】:

          80 端口被“bonescript.socket”占用,“bonescript.service”使用该端口。要禁用它,请:

          systemctl disable bonescript.socket
          systemctl disable bonescript.service
          systemctl stop bonescript.socket
          systemctl stop bonescript.service
          

          前两行用于确保它不会在系统启动时启动,后两行用于停止当前运行的版本。

          【讨论】:

          • Web 服务器实际上并不需要端口 80。这只是用于 http 通信的标准端口。在 BBB 上,您可以设置在其他端口上运行的 http 通信;您只需将通信端口附加到地址即可。例如,如果您想在 10114 上进行通信,您可以调用 192.168.1.30:10114(或任何您的地址)来访问服务器的索引页面。
          • @cirrusio 虽然您的评论实际上是正确的,但 OP 正在询问如何删除冲突的网络服务器。
          【解决方案6】:

          首先,当您像任何其他拇指驱动器一样将 BBB 作为简单的闪存设备访问时,您需要清楚 BBB 上的 Web 界面与在 BBB 的操作系统上运行 Web 服务器 的区别Apache 之类的系统。当您“开始”使用 BBB 时,您只需单击您在 BBB 上看到的链接即可访问 html 文件和大量 DOC,但这些只是您正在访问的文件,就像您从自己的硬盘驱动器一样。如果您启动 Angstrom Linux 发行版,只需打开它的电源,您就可以登录到终端会话,世界就是您的牡蛎。您可以从 BBB 下载软件包(如 Web 服务器)并创建您想要的任何类型的站点。此时,您可以在主桌面(PC 或其他)上输入新 Web 服务器的 url,将其添加到您的收藏夹(书签),它应该“自动启动”。只有通过 USB 电缆连接时,您才能访问 BBB 存储设备上的 html 页面。只要有正确的 url 地址,任何可以从世界任何地方访问您的网络的人都可以访问 Web 服务器可以提供的 html 页面。 HTH。

          【讨论】:

          • 通过网络服务器,OP 打算通过 http 调用提供对数据和信息的访问。
          猜你喜欢
          • 1970-01-01
          • 2017-02-26
          • 2016-12-20
          • 1970-01-01
          • 2013-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多