2016-09-28 7 views
0

J'aime construire une démo d'un site web fonctionnant sur un tableau d'évaluation d'ATMEL. Pour ce tableau d'évaluation, je construis un Linux en utilisant Yocto. Pour la gestion du site Web, le serveur web Apache doit être utilisé.Comment construire un site web simple dans un Linux embarqué en utilisant Apache et Yocto?

J'ai obtenu la compilation apache2 et installé, ainsi que mon site web simple. Mais j'ai échoué à mettre en place la configuration apache droite.

Mon système possède deux ports Ethernet eth0 et eth1. Eth0 est configuré sur IP 1.2.3.4 et eth1 sur dchp. L'index.html devrait être accessible via eth0. Peut-être qu'il est possible d'avoir un littéral comme "mywebsite" pour y accéder. Les fichiers du site Web sont placés dans le répertoire personnalisé:/var/www/html/

Réel Je copie une configuration d'hôte virtuel (myweb.conf) dans/etc/apache2/sites-available /. Il ressemble à:

# 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> 

La recette de yocto décompresse index.html qui est en myweb.zip et installe la configuration d'hôte virtuel. Le code ressemble à:

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

Des idées comment modifier les fichiers pour démarrer le site?

Répondre

0

Stefan,

Si je vous comprends bien vous souhaitez héberger des pages Web sur la carte ATMEL pour les clients se connectant via eth0. Je ne vois rien de manifestement incorrect dans votre définition d'hôte virtuel. L'ajout de mywebsite en tant que ServerName indique à Apache qu'il s'agit du nom de cet hôte virtuel spécifique, mais que les clients doivent toujours pouvoir résoudre ce nom. Veuillez noter que si vous n'avez qu'un seul site sur le serveur, le nom n'a pas d'importance dans la configuration d'Apache - ce qui compte, c'est la configuration DNS. Tant que le nom d'hôte résout sur le serveur Web, toute requête pour un nom d'hôte obtiendra le site par défaut - à moins qu'un site virtuel avec un nom ne corresponde au nom d'hôte demandé.

Ce que je voudrais faire est de commencer à partir de la fin du serveur web et vous sortir de là:

  1. Si vous avez inclus telnet dans votre construction, vous pouvez par exemple accéder à la page Web directement à partir du ligne de commande pour s'assurer qu'il répond. Pour ce faire, sur la carte ATMEL (par exemple via ssh ou si vous avez un écran + clavier):

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

    Si cela retourne votre page Web, le serveur Web est correctement configuré. Assurez-vous que vous pouvez atteindre la carte ATMEL à partir de votre client. Sur le client:

    ping 1.2.3.4 
    

    Si cela ne fonctionne pas, vous avez besoin de mettre le client sur le même réseau que l'interface eth0 en réglant manuellement sur le client ou en ajoutant un serveur DHCP sur la carte ATMEL, liée à eth0.

  2. Assurez-vous que le client peut résoudre le nom d'hôte mywebsite. Sur le client:

    ping mywebsite 
    

    Si cela ne fonctionne pas, vous devez ajouter un service DNS (par ex.bind) à votre image ou, pour un test rapide, ajoutez la ligne suivante au fichier/etc/hosts de votre client (c: \ windows \ system32 \ drivers \ etc \ hosts si vous utilisez Windows):

    1.2.3.4 mywebsite 
    

Espérons que ça aide.

+0

@ 1.) Cela fonctionne mais il renvoie le std. site web d'apache "ça marche". Penser dans ma configuration est une erreur. Peut-être pas chez les hôtes virtuels? –

+0

Là où deux erreurs: 1er: la recette apache2 openembeeded apporte un propre fichier de configuration, qui recherche /etc/apache2/conf.d/ pour la configuration de l'hôte virtuel 2ème: dans la configuration de l'hôte est une erreur. Le répertoire/var/log/apache2/n'existe pas Lors de la saisie de www.1.2.3.4/mywebsite, il est toujours impossible d'appeler /var/www/html/index.html. Des idées? –

+0

Je suis presque là. En entrant www.1.2.3.4/index.html je suis sur mon site web. En entrant dans www.1.2.3.4, j'ai "Ça marche!". Comment surmonter cela? –