[Armadillo:03607] Re: thttpdにおけるCGIの使用について

Takenoshita Koyo email@hidden
2008年 10月 29日 (水) 16:55:34 JST


いただいた情報だけでは、原因を推測することができません。

現象を再現する方法を教えていただけますか?
実際におこなった手順を、なるべく端折らないで書いていただけると、
情報が得やすいと思います。

たとえ自明なことであっても、あえて書いてください。
後からメーリングリストの過去ログを参照する人にとって貴重な情報になると思います。

例えば。。。

<環境>
開発環境:ATDE2 v20071018
対象:Armadillo-240
Linux カーネル:v2.6.12.3-a9-15
atmark-dist:v20080617 (Armadillo-240.Baseのデフォルトのままのイメージを使用しています。)

<手順>
1. CGIのソースファイルの作成
以下のファイルを、「index.c」というファイル名で作成しました。
#include <stdio.h>

int main(void)
{
	printf("Content-type:text/html\n\n");	
	printf("<html><head></head><body>");
	printf("Hello!<br>");
	printf("</body></html>");

	return 0;
}

2. 開発PC上での動作確認
ATDE2上で下記のように実行すると、意図した通りに動作することを確認できました。
$ gcc -Wall -o index.cgi index.c
$ ./index.c
Content-type:text/html\n\n
<html><head></head><body>
Hello!<br>
</body></html>
$ rm index.cgi

3. クロスコンパイル
下記のコマンドでクロスコンパイルしました。
$ arm-linux-gnu-gcc -Wall -o index.cgi index.c

4. HTTPサーバの設定
HTTPサーバにはthttpdを使用し、設定ファイルはデフォルトのままです。

5. Armadillo上への配置
Armadillo-240の
/home/www-data/cgi-bin/index.cgiという場所にファイルを配置しました。

そのとき、下記コマンドにより、ファイルに実行権限をあたえました。
# chmod +x /home/www-data/cgi-bin/index.cgi

6. ローカルでの動作確認
下記のコマンドのように、ローカルで実行すると、意図した通りに実行されます。
# /home/www-data/index.cgi
Content-type:text/html\n\n
<html><head></head><body>
Hello!<br>
</body></html>

7. httpd経由での動作
しかし、Webブラウザ(firefox 3.0.3)で表示すると、空白ページが表示されます。
指定したURLは「http://<armadillo-240のIPアドレス>/index.html」です。

ページのソースを表示すると、以下のようになっています。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD>
<BODY></BODY></HTML>

<期待した動作>
Webブラウザで「Hello!」と表示されること
6.で実行した結果と、Webブラウザでページのソースを表示したときの結果が一致していること
を期待していました。

<参考にした情報>
以下の情報を参照しました。
(参照したマニュアルやWebページ、MLの過去ログのURL等)

-- 
Koyo Takenoshita



armadillo メーリングリストの案内