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

Beagleboard 如何在BeagleBone Black上自动启动自定义Web服务器?,beagleboard,angstrom-linux,twistd,Beagleboard,Angstrom Linux,Twistd,我希望我的BeagleBone Black能够使用自定义web服务器启动和启动web服务,而无需登录和配置/启动/更改任何内容 我认为这个问题有两个方面: 如何删除所有默认、冗余或冲突的启动 web服务器行为?我正在运行股票埃,3.8.13 假设我有自己的web服务器可执行文件(在我的例子中是twistd web 服务器),如何配置它以在船上自动启动 启动 非常感谢您提供的任何帮助。bbb使用systemd和服务文件来控制服务的启动方式——在/etc/init.d中,您的bbb上有一个自述文

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

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

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

  • 假设我有自己的web服务器可执行文件(在我的例子中是twistd web 服务器),如何配置它以在船上自动启动 启动


非常感谢您提供的任何帮助。

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

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

BBB存储设备上的html页面仅在您通过USB电缆连接时才可访问

这里的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上有一天的运行时间,旅程才刚刚开始…

我使用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的地方。它起作用了

您根本不必禁用原来的getting started web界面,只需添加您自己的界面并将其设置为默认界面。

端口80由“bonescript.socket”使用,该端口由“bonescript.service”使用。要禁用它,请执行以下操作:

systemctl disable bonescript.socket
systemctl disable bonescript.service
systemctl stop bonescript.socket
systemctl stop bonescript.service
前两行用于确保它不会在系统启动时启动,后两行用于停止当前运行的版本。

Intro 我想你正试图和我做同样的事情,即当你导航到BBB的IP地址时,将你在浏览器中看到的网页从默认的bone101页面更改为你自己的自定义网页(用HTML或其他语言编写)

部分基于本页上的答案,加上我自己的尝试和错误,我已经找到了如何做到这一点,我在下面提供了一个完整的答案

澄清其他答案中的混淆点 但首先,要澄清本页其他答案中的一些混淆点:

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

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

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

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

解决方案 NB:我正在运行最新的Debian ARM映像,而不是angstrom,因此默认位置可能不同。

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

systemctl disable bonescript.socket
systemctl disable bonescript.service
systemctl stop bonescript.socket
systemctl stop bonescript.service
然后编辑ApacheWeb服务器配置。首先编辑端口侦听配置:

sudo vim /etc/apache2/ports.conf
sudo vim /etc/apache2/sites-enabled/000-default.conf
并更改此行:

Listen 8080
为此:

Listen 80
<VirtualHost *:80>
as端口80是http通信的默认端口。否则人们将不得不去www.your-website.com:8080,这太傻了

然后,如上述文件所述,您将
<VirtualHost *:80>
sudo /etc/init.d/apache2 restart