我希望我的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作为一个网络服务器来服务我自己的网站,我不希望人们去www.my-website.com看到默认的bone101内容。
解决方案
注意:我运行的是最新的Debian ARM镜像,而不是埃,所以默认位置可能不同
根据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存储库中一个目录的符号链接,该目录是我的网站内容所在的目录
或者,如果您只想进行快速测试,请将apache默认测试页符号链接或复制到DocumentRoot
目录中,或者将字段更改为指向apache默认检测页所在的目录(默认情况下为/usr/share/apache2/default-site/index.html
)
然后重新启动apache,et voilà:
sudo /etc/init.d/apache2 restart
bbb使用systemd和服务文件来控制服务的启动方式——在/etc/init.d中的bbb上有一个README,它提供了一些信息和链接。在systemd上也有一些不错的页面http://fedoraproject.org/wiki/Systemd.默认情况下配置了许多服务。尝试键入:systemctl-list-units这将为您提供服务列表和一些最低状态信息。列出的每个服务都由(通常)简单的服务文件配置,这些文件告诉systemd如何启动,这些文件大部分位于/lib/systemd/system中。我不完全确定你在第一个问题中问的是什么,但听起来你想摆脱"内置"的网络服务器——我自己对bbb还很陌生,我不确定答案,但如果我发现更多,我会把它发布在这里。
BBB存储设备上的html页面只有当您通过USB电缆连接时才能访问。
BBB的情况并非如此。虽然默认的"/support/bone101"网页确实可以通过USB0接口上192.168.7.2的USB访问,但它们也出现在BBB的动态IP地址上,通过常规网络接口eth0,例如我的本地网络上的192.168.1.132。
运行"Linux beaglebone 3.8.13#1 SMP美国东部时间2013年6月18日星期二02:11:09 armv7l GNU/Linux",因此YMMV在其他版本上运行。
我正在考虑将‘Bone’设置为一个远程监控中心,在基本IP地址上提供服务,搜索就是我来到这里的原因。在BBB上运行了一天,旅程才刚刚开始。。。
我使用opkg安装了lighttpd。lighttpd.conf文件最终位于/etc/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的地方。它很管用!
你根本不必禁用原来的入门网站界面,只需添加你自己的界面并将其设为默认界面即可。
端口80由"bonescript.service"使用的"bonesccript.socket"占用。要禁用它,请执行以下操作:
systemctl disable bonescript.socket
systemctl disable bonescript.service
systemctl stop bonescript.socket
systemctl stop bonescript.service
前两行用于确保它不会在系统启动时启动,后两行用于停止当前运行的版本。
首先,当你像其他拇指驱动器一样作为简单的闪存设备访问BBB时,你需要清楚BBB上的web界面,这与在BBB的操作系统上使用Apache之类的东西运行web服务器不同。当你"开始"使用BBB时,只需点击BBB上的链接,你就可以访问html文件和许多DOC,但这些只是你正在访问的文件,就像你从自己的硬盘上访问一样。如果你启动Angstrom Linux发行版,只需打开电源,你就可以登录到终端会话,世界就是你的牡蛎。从BBB,你可以下载软件包(比如网络服务器),并创建你想要的任何类型的网站。这时,你可以在主桌面(PC或其他什么)上输入新网络服务器的url,将其添加到你的收藏夹(书签)中,它应该会"自动启动"。BBB存储设备上的html页面只有当您通过USB电缆连接时才能访问。只要有正确的url地址,任何从世界各地访问您网络的人都可以访问web服务器可以提供的html页面。HTH。