2016-09-28 7 views
0

私は、ATMELから評価ボード上で実行されているウェブサイトのデモを作成するのが好きです。この評価ボードでは、私はYoctoを使ってLinuxを構築しています。ウェブサイトを操作するには、Apache Webサーバーを使用する必要があります。ApacheとYoctoを使って組み込みLinuxにシンプルなWebサイトを構築するには?

私はapache2レシピのビルドとインストール、そして私のシンプルなウェブサイトを手に入れました。しかし、私はApacheの設定を正しく設定できませんでした。

私のシステムには、2つのイーサネットポートeth0とeth1があります。 Eth0はIP 1.2.3.4に、eth1はdchpに設定されています。 index.htmlにはeth0でアクセスする必要があります。多分それにアクセスするための "mywebsite"のようなリテラルを持つことは可能です。 ウェブサイトのファイルは、カスタムディレクトリに置かれます。/ var/www/html/

実際は/ etc/apache2/sites-available /に仮想ホストconfig(myweb.conf)をコピーしています。 yoctoレシピがmyweb.zipにあり、仮想ホストの設定をインストールしたindex.htmlを解凍

# Ensure that Apache listens on port 80 
Listen 80 

<VirtualHost *:80> 
     ServerName mywebsite 
     ServerAdmin [email protected]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> 

:ように見えます。コードは次のようになります:

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

Webサイトを開始するためのファイルの変更方法はありますか?

答えて

0

ステファン、

私が正しくあなたを理解していればあなたはeth0を経由して接続するクライアントのATMELボード上のWebページをホストします。私は、あなたの仮想ホストの定義で何かが間違っているのを見ることはできません。

mywebsiteをServerNameとして追加すると、この特定の仮想ホストの名前がApacheに伝えられますが、依然としてクライアントはその名前を解決できる必要があります。サーバー上に1つのサイトしかない場合は、Apacheの設定で名前は重要ではありません。重要なのはDNSの設定です。ホスト名がWebサーバーに解決される限り、要求されたホスト名と一致する名前を持つ仮想サイトがない限り、任意のホスト名の要求がデフォルトのサイトを取得します。私はどうなるのか

は、Webサーバ側から開始し、そこからあなたのように動作することです:

  1. あなたのビルドでのtelnetが含まれている場合は、インスタンスのから直接Webページにアクセスすることができましたそれが答えることを確認するコマンドライン。 (あなたは、ディスプレイ+キーボードを持って、例えばssh経由または場合)ATMELボードでこれを行います。

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

    それはあなたのWebページを返す場合、Webサーバーが正しく設定されています。

  2. クライアントからATMELボードにアクセスできることを確認してください。クライアントの場合:

    ping 1.2.3.4 
    

    これが動作しない場合は、バインドされた、クライアント上で手動で設定することによって、またはATMELボード上のDHCPサーバーを追加することにより、eth0インターフェイスと同じネットワーク上のクライアントを配置する必要がありto eth0。

  3. クライアントがmywebsiteホスト名を解決できることを確認します。クライアントの場合:

    ping mywebsite 
    

    これが機能しない場合は、DNSサービスを追加する必要があります(例:バインドする)、またはクイックテストを行うには、クライアント(Windowsを実行している場合はc:¥windows¥system32¥drivers¥etc¥hosts)の/ etc/hostsファイルに次の行を追加します。

    1.2.3.4 mywebsite 
    

希望があれば。

+0

@。)動作しますが、stdを返します。 apacheのウェブサイト "それは働く"。私の設定で考えるとエラーです。おそらく仮想ホストではないでしょうか? –

+0

ここで2つのエラー: 第1回:公開されたapache2レシピは、/etc/apache2/conf.d/で仮想ホストの設定を検索する独自の設定ファイルを持ちます 第2の:ホスト設定で1つのエラーです。ディレクトリ/ 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に入ったとき、私は「それは働いている!」と思った。これを克服する方法は? –

関連する問題