2016-09-28 6 views
0

ATMEL에서 평가판을 실행중인 웹 사이트의 데모를 만들고 싶습니다. 이 평가판에서는 Yocto를 사용하여 Linux를 구축하고 있습니다. 웹 사이트를 처리하기 위해 아파치 웹 서버를 사용해야합니다.Apache와 Yocto를 사용하여 임베디드 리눅스에 간단한 웹 사이트를 구축하는 방법은 무엇입니까?

나는 간단한 웹 사이트뿐만 아니라 apache2 제조법을 빌드하고 설치했습니다. 하지만 아파치 설정을 제대로하지 못했습니다.

내 시스템에는 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)를 복사합니다.

# 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 조리법이 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/*" 

웹 사이트를 시작하기 위해 파일을 수정하는 방법은 무엇입니까?

답변

0

스테판,

내가 제대로 이해하면 eth0를 통해 연결하는 클라이언트에 대한 ATMEL 보드에 웹 페이지를 호스트합니다. 나는 가상 호스트 정의에서 명백히 잘못된 것을 볼 수 없다.

mywebsite를 ServerName으로 추가하면이 특정 가상 호스트의 이름임을 Apache에 알리지 만 클라이언트는 여전히 해당 이름을 확인할 수 있어야합니다. 서버에 하나의 사이트 만 있으면 Apache 구성에서 이름이 중요하지 않습니다. DNS 구성이 중요합니다. 호스트 이름이 웹 서버로 확인되는 한 요청 된 호스트 이름과 일치하는 이름을 가진 가상 사이트가없는 한 모든 호스트 이름에 대한 요청이 기본 사이트를 가져옵니다. 당신은 당신이 인스턴스에 대한 직접 웹 페이지에 액세스 할 수 빌드에서 텔넷을 포함하는 경우

  1. 을 : 나는 어떻게 할 것인지

    는 웹 서버의 끝에서 시작하고 거기에서 밖으로 당신의 방법을 작동하는 것입니다 명령 줄을 사용하여 응답하는지 확인하십시오. Atmel의 보드에 (예를 들어를 통해 SSH를하거나 디스플레이 + 키보드가있는 경우)이 작업을 수행 : 그 다음 웹 페이지를 반환하는 경우

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

    를 웹 서버가 제대로 구성되어 있습니다.

  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

@.) 작동하지만 표준을 반환합니다. 아파치 웹 사이트 "it works". 내 구성에서 생각하면 오류입니다. 아마 가상 호스트가 아닌가? 이 –

+0

여기서 두 가지 오류 : 1 : 호스트 구성에서 하나의 오류입니다 다음 openembeeded 아파치 레시피가 가상 호스트 설정 2에 대한 /etc/apache2/conf.d/에서 검색 자책골을 설정 파일을 제공합니다. 디렉토리는/var가// 아파치/로그 수행하지 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!"라는 메시지가 나타납니다. 이것을 극복하는 방법? –