如何在BeagleBone Black上自动启动自定义Web服务器?

时间:2013-06-25 17:36:24

标签: beagleboard angstrom-linux twistd

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

我认为这个问题有两个方面:

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

  • 假设我有自己的网络服务器可执行文件(在我的情况下是一个扭曲的网页 服务器),如何将其配置为在板上自动启动 启动

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

6 个答案:

答案 0 :(得分:2)

简介

我认为您正在尝试与我一样,即当您从BBAB的默认骨骼页面导航到BBB的IP地址时,更改您在浏览器中看到的网页,以及用HTML或其他任何内容编写的自定义网页。 / p>

部分基于此页面上的答案以及我自己的试错,我已经研究了如何做到这一点,并在下面提供完整而完整的答案。

澄清其他答案中的混淆点

但首先,要澄清本页其他答案中的一些令人困惑的问题:

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

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

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

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

解决方案

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

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

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,或者更改{ {1}}字段指向要使用的目录。在我的例子中,我将其保留为DocumentRoot,但随后将其作为符号链接到git存储库中我的网站内容所在的目录。

或者,如果您只是想进行快速测试,符号链接或将apache默认测试页复制到/var/www/html目录中,或者将字段更改为指向apache默认测试页所在的目录(默认情况下) ,DocumentRoot

然后重启apache,etvoilà

/usr/share/apache2/default-site/index.html

答案 1 :(得分:1)

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

答案 2 :(得分:0)

  

只有通过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的所有一天的运行时间,旅程才刚刚开始......

答案 3 :(得分:0)

我使用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界面,只需添加自己的界面并将其设为默认界面。

答案 4 :(得分:0)

端口80由&#34; bonescript.socket&#34;采用,由#34; bonescript.service&#34;使用。要禁用它,请执行以下操作:

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

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

答案 5 :(得分:-2)

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