gpt4 book ai didi

linux - 如何使用 Apache 和 Yocto 将一个简单的网站构建到嵌入式 Linux 中?

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:27 27 4
gpt4 key购买 nike

我喜欢构建一个在 ATMEL 的评估板上运行的网站演示。对于这个评估板,我正在使用 Yocto 构建一个 Linux。要处理网站,应使用 apache 网络服务器。

我构建并安装了 apache2 配方,以及我的简单网站。但是我未能正确设置 apache 配置。

我的系统有两个以太网端口 eth0 和 eth1。 Eth0 配置为 IP 1.2.3.4,eth1 配置为 dchp。 index.html 应该通过 eth0 访问。也许可以使用像“mywebsite”这样的文字来访问它。网站文件放入自定义目录:/var/www/html/

实际上我正在将虚拟主机配置(myweb.conf)复制到/etc/apache2/sites-available/。看起来像:

# Ensure that Apache listens on port 80
Listen 80

<VirtualHost *:80>
ServerName mywebsite
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>

yocto 配方解压缩 myweb.zip 中的 index.html 并安装虚拟主机配置。代码如下:

SUMMARY = "myweb"
SECTION = "test"
LICENSE = "CLOSED"

SRC_URI = "file://myweb.zip \
file://myweb.conf \
"

DEPENDS = "apache2"

S = "${WORKDIR}"

WWWdestPATH = "/var/www/html/"

do_install () {
install -d ${D}${WWWdestPATH}
cp -r ${S}/myweb/* ${D}${WWWdestPATH}

install -d ${D}/etc/apache2/sites-available/
cp ${S}/myweb.conf ${D}/etc/apache2/sites-available/myweb.conf
}

FILES_${PN} += "${WWWdestPATH}*"
FILES_${PN} += "/etc/apache2/sites-available/*"

关于如何修改文件以启动网站的任何想法?

最佳答案

斯特凡,

如果我对你的理解是正确的,你想在 ATMEL 板上为通过 eth0 连接的客户端托管网页。我在您的虚拟主机定义中看不到任何明显不正确的地方。

将 mywebsite 添加为 ServerName 告诉 Apache 这是这个特定虚拟主机的名称 - 但客户端仍然需要能够解析该名称。请注意,如果服务器上只有一个站点,则名称在 Apache 配置中无关紧要 - 重要的是 DNS 配置。只要主机名解析为 Web 服务器,对任何主机名的任何请求都将获得默认站点 - 除非存在名称与请求的主机名匹配的虚拟站点。

我要做的是从 Web 服务器端开始,然后从那里开始:

  1. 如果您在构建中包含了 telnet,您可以直接从命令行访问网页,以确保它能响应。在 ATMEL 板上执行此操作(例如通过 ssh 或如果您有显示器+键盘):

    telnet localhost 80 <ENTER>
    GET / HTTP/1.1 <ENTER>
    Host: mywebsite <ENTER><ENTER>

    如果返回您的网页,则网络服务器配置正确。

  2. 确保您可以从您的客户端访问 ATMEL 板。在客户端:

    ping 1.2.3.4

    如果这不起作用,您需要通过在客户端上手动设置或通过在 ATMEL 板上添加绑定(bind)到 eth0 的 DHCP 服务器,将客户端置于与 eth0 接口(interface)相同的网络上。

  3. 确保客户端可以解析 mywebsite 主机名。在客户端:

    ping mywebsite

    如果这不起作用,您需要将 DNS 服务(例如绑定(bind))添加到您的图像,或者为了进行快速测试,将以下行添加到您客户端上的/etc/hosts 文件 (c:\windows\system32\drivers\etc\hosts(如果您运行的是 Windows):

    1.2.3.4 mywebsite

希望对您有所帮助。

关于linux - 如何使用 Apache 和 Yocto 将一个简单的网站构建到嵌入式 Linux 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39753198/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com