2016-09-28 36 views
0

我喜欢在ATMEL的评估板上构建一个运行网站的演示。对于这个评估板,我使用Yocto来构建Linux。为了处理网站,应该使用apache web服务器。如何使用Apache和Yocto将简单网站构建到嵌入式Linux中?

我得到了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 [email protected] 
     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配方解压缩中的index.html这是myweb.zip并安装虚拟主机配置。该代码看起来像:

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/*" 

任何想法如何修改文件以获得网站启动?

回答

0

斯特凡,

如果我理解你正确地要主机上的ATMEL板Web页面通过eth0的连接的客户端。我在虚拟主机定义中看不到任何明显不正确的东西。

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

我会做的是从Web服务器端开始,并从那里走出你的工作方式:

  1. 如果已经包含在构建远程登录,你可以从例如直接访问网页命令行来确保它的答案。做到这一点的ATMEL板(例如通过SSH或者如果你有一个显示器+键盘):

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

    如果返回你的网页,然后在Web服务器的配置是否正确。

  2. 确保您可以从客户端到达ATMEL板。在客户端:

    ping 1.2.3.4 
    

    如果这不工作,你需要通过手动设置它在客户端上或通过添加对ATMEL板DHCP服务器,势必给客户端的同一网络的eth0接口上到eth0。

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

    ping mywebsite 
    

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

    1.2.3.4 mywebsite 
    

希望有所帮助。

+0

@ 1)它的工作原理,但它返回标准。阿帕奇的网站“它的作品”。在我的配置中认为是一个错误。也许不在虚拟主机上? –

+0

其中有两处错误: 第一:可以打开的apache2配方带有一个自己的配置文件,它在/etc/apache2/conf.d/上搜索虚拟主机配置 第二:在主机配置中有一个错误。目录/ var/log/apache2 /不存在 输入www.1.2.3.4/mywebsite时,仍然无法调用/var/www/html/index.html。有任何想法吗? –

+0

我快到了。输入www.1.2.3.4/index.html时,我在我的网站上。当进入www.1.2.3.4时,我得到了“It works!”。如何克服这一点? –