Webサーバgoaheadの移植
1981 ワード
1.goahead-3.1.1-0-srcをオンラインでダウンロードします.tgzパッケージ
2.解凍
tar -zxvf goahead-3.1.1-0-src.tgz
3.コンパイル
cd goahead-3.1.1-0
make CC=arm-none-linux-gnueabi-gcc ARCH=arm
linux-arm-default/binでgoaheadを見つけることができます
4.テスト修正
実行./goaheadテスト
質問1:
出典:goahead-3.1.1-0srchttp.cファイルのsetLocalHost関数
変更:
質問2:
解決方法:コピーgoahead-3.1.1-0srcroute.txtファイルgoahead同ディレクトリ下
問題3:Webページの保存場所の解決方法:goaheadの同じディレクトリの下のWebディレクトリの下にWebページを保存し、Webディレクトリが手動で作成されます.
ブラウザを開いてipアドレスを入力
2.解凍
tar -zxvf goahead-3.1.1-0-src.tgz
3.コンパイル
cd goahead-3.1.1-0
make CC=arm-none-linux-gnueabi-gcc ARCH=arm
linux-arm-default/binでgoaheadを見つけることができます
4.テスト修正
実行./goaheadテスト
質問1:
goahead: 0: Can't get host address for host dvr: errno 11
goahead: 0: Can't initialize server. Exiting.
出典:goahead-3.1.1-0srchttp.cファイルのsetLocalHost関数
if ((hp = gethostbyname(host)) == NULL) { //MHB 2013-10-22
error("Can't get host address for host %s: errno %d", host, errno); //----
return -1;
}
memcpy((char*) &intaddr, (char *) hp->h_addr_list[0], (size_t) hp->h_length);
ipaddr = inet_ntoa(intaddr); // ipaddr
websSetIpAddr(ipaddr);
websSetHost(ipaddr);
変更:
#if 0
if ((hp = gethostbyname(host)) == NULL) { //MHB 2013-10-22
error("Can't get host address for host %s: errno %d", host, errno);
return -1;
}
memcpy((char*) &intaddr, (char *) hp->h_addr_list[0], (size_t) hp->h_length);
ipaddr = inet_ntoa(intaddr);
#else //MHB 2013-10-22 ip (ipv4)
int sockfd;
struct sockaddr_in sin;
struct ifreq ifr;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd == -1) {
return -1;
}
strncpy(ifr.ifr_name, "eth0", IFNAMSIZ); //
ifr.ifr_name[IFNAMSIZ - 1] = 0;
if (ioctl(sockfd, SIOCGIFADDR, &ifr) < 0) {
return -1;
}
memcpy(&sin, &ifr.ifr_addr, sizeof(sin));
ipaddr=inet_ntoa(sin.sin_addr);
#endif
websSetIpAddr(ipaddr);
websSetHost(ipaddr);
質問2:
goahead: 0: Can't open config file route.txt
goahead: 0: Can't initialize server. Exiting.
解決方法:コピーgoahead-3.1.1-0srcroute.txtファイルgoahead同ディレクトリ下
問題3:Webページの保存場所の解決方法:goaheadの同じディレクトリの下のWebディレクトリの下にWebページを保存し、Webディレクトリが手動で作成されます.
ブラウザを開いてipアドレスを入力