我希望我的 BeagleBone Black 能够启动并使用自定义 Web 服务器开始 Web 服务,而无需登录和配置/启动/更改任何内容。
我想这个问题有两个方面:
如何删除所有默认、冗余或冲突的启动 Web 服务器行为?我正在运行股票 Angstrom,3.8.13。
假设我有自己的网络服务器可执行文件(在我的情况下是一个扭曲的网络服务器),我如何将它配置为在板启动时自动启动?
非常感谢你能给我的任何帮助。
我希望我的 BeagleBone Black 能够启动并使用自定义 Web 服务器开始 Web 服务,而无需登录和配置/启动/更改任何内容。
我想这个问题有两个方面:
如何删除所有默认、冗余或冲突的启动 Web 服务器行为?我正在运行股票 Angstrom,3.8.13。
假设我有自己的网络服务器可执行文件(在我的情况下是一个扭曲的网络服务器),我如何将它配置为在板启动时自动启动?
非常感谢你能给我的任何帮助。
我认为您正在尝试和我做同样的事情,即当您导航到 BBB 的 IP 地址时,将您在浏览器中看到的网页从其默认的 bone101 页面更改为您自己的以 HTML 或其他方式编写的自定义网页。
部分基于此页面上的答案以及我自己的反复试验,我已经弄清楚了如何做到这一点,并在下面提供了一个完整而完整的答案。
但首先,要澄清本页其他答案中的一些令人困惑的点:
当您通过 USB 将 BBB 插入计算机并将浏览器导航到 BBB 的 IP 地址(默认为 192.168.7.2)时,您将获得位于(默认)位于 /usr/share/bone101/index.html 的默认 bone101 页面
如果您通过以太网将 BBB 直接插入路由器(或设置 wifi 连接),然后您可以浏览到 BBB在网络上的 IP 地址,您将获得相同的网页。
如果您随后在路由器上设置端口转发以将传入的 http 流量转发到 BBB,然后您访问网络的外部 IP 地址(直接或通过指向该 IP 地址的域 (www.example.com)),那么您还将获得相同的网页。
这最终是我和我相信 OP 正在努力改变的。我想使用我的 BBB 作为 Web 服务器来为我自己的网站提供服务,我不希望人们去 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默认测试页所在的目录(默认,/usr/share/apache2/default-site/index.html
)
然后重新启动 apache,等等:
sudo /etc/init.d/apache2 restart
bbb 使用 systemd 和服务文件来控制服务的启动方式——/etc/init.d 中的 bbb 上有一个 README,它提供了一些信息和链接。在http://fedoraproject.org/wiki/Systemd也有一些关于 systemd 的好页面。默认配置了很多服务。尝试输入: systemctl list-units 这将为您提供服务列表和一些最少的状态信息。每个列出的服务都由(通常)简单的服务文件配置,这些文件告诉 systemd 如何启动,这些文件大部分位于 /lib/systemd/system 中。我不完全确定你在第一个问题中要问什么,但听起来你想摆脱“内置”网络服务器——我自己对 bbb 很陌生,我不知道肯定回答,但如果我发现更多,我会在这里发布。
只有通过 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 上运行了一天的所有时间,旅程才刚刚开始......
我使用 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 界面,只需添加您自己的并将其设为默认即可。
端口 80 由“bonescript.socket”占用,“bonescript.service”使用该端口。要禁用它,请:
systemctl disable bonescript.socket
systemctl disable bonescript.service
systemctl stop bonescript.socket
systemctl stop bonescript.service
前两行用于确保它不会在系统启动时启动,最后两行用于停止当前运行的版本。
首先,当您将 BBB 作为一个简单的闪存设备访问时,您需要清楚 BBB 上的 Web 界面,就像任何其他拇指驱动器一样,有别于运行Web 服务器在 BBB 的操作系统上使用 Apache 之类的东西。当您“开始”使用 BBB 时,您只需单击您在 BBB 上看到的链接即可访问 html 文件和大量 DOC,但这些只是您正在访问的文件,就像您从自己的硬盘驱动器一样。如果您启动 Angstrom Linux 发行版,只需打开它的电源,您就可以登录到终端会话,世界就是您的牡蛎。您可以从 BBB 下载软件包(如 Web 服务器)并创建您想要的任何类型的站点。此时,您可以在主桌面(PC 或其他)上输入新 Web 服务器的 url,将其添加到您的收藏夹(书签),它应该“自动启动”。只有通过 USB 电缆连接时,您才能访问 BBB 存储设备上的 html 页面。只要有正确的 url 地址,任何可以从世界任何地方访问您的网络的人都可以访问 Web 服务器可以提供的 html 页面。HTH。