2016-09-28 61 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!」。如何克服這一點? –