はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 質問掲示板

 このスレッドはクローズされています。記事の閲覧のみとなります。

 cgiの実行
日時: 2006/11/04 12:37
名前: とんとん

こんにちは。

またお邪魔いたします。
本人がよく理解していないために前に質問したことの繰り返しになってしまい申し訳ないのですが
よろしくお願いします。
Fedora Core5です。

実は、Movable Type(無料)を過去に何度かダウンロード→インストール→削除を繰り返えしてしまったことが原因なのかわかりませんが
mt-check.cgiのファイルをひらくとcgiソースが表示されログインできなくなってしまいました。

apacheの設定ではcgiが実行できるように設定いたしました。

AddHandler cgi-scrpt .cgi←先頭の#を削除
Options FollowSymLinks←ExecCGI追加

以下Movable Typeのインストールと設定は解説書にそってやりました。


/var/www/html/test.cgiでcgiの動作テストをやってみましたところ

クライアントからhttp://サーバのアドレス/test.cgiでは「Internal Server Error」になりました。
そのときのerror_logは下記でした。
略・・・[error][client **.**.***.**] Premature end of script headers:

しかし下記で実行しますとcgiは実行されました。
# /usr/bin/perl /var/www/html/test.cgi

Content-type: text/html

<html>
<body>Hello World</body>
</html>

なんとかまたMovable Typeを設置したいと思いますのでお力お貸しください。
メンテ

Page:  [1] [2]

■ コンテンツ関連情報

 Re: cgiの実行 ( No.1 )
日時: 2006/11/04 13:25
名前: 匿名さん

1)
test.cgi に実行権がない

2)
test.cgi の一行目が #!/usr/bin/perl になっていない

3) 
 AddHandler cgi-scrpt .cgi
 Options FollowSymLinks

を書く場所が間違っている(cgi-scrpt→cgi-scriptは写し間違い?)

4)
 Content-type: text/html の手前に妙な改行があるのは気のせい?

ぱっと思いつくのはこれくらいです


メンテ
 Re: cgiの実行 ( No.2 )
日時: 2006/11/04 15:41
名前: とんとん

匿名さん,
ありがとうございます。

>1)test.cgi に実行権がない

chmod 755 test.cgiでよいのでしょうか?
それともどのようにすればよいのでしょうか?(初心者ですみません)

>2)test.cgi の一行目が #!/usr/bin/perl になっていない
#!/usr/bin/perl になっておりました
Perlのシンボリックリンクを貼ってあります。

>3) AddHandler cgi-scrpt .cgi
>Options FollowSymLink
>を書く場所が間違っている(cgi-scrpt→cgi-scriptは写し間違い?)


すみませんscriptの写しまちがいです。
書いた場所は下記になります。

#
AddHandler cgi-script .cgi

#
# For files that include their own HTTP headers:
#
#AddHandler send-as-is asis

#
# For type maps (negotiated resources):

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

 The Options directive is both complicated and important. Please see
http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
  Options FollowSymLinks ExecCGI

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#  Options FileInfo AuthConfig Limit


>4)Content-type: text/html の手前に妙な改行があるのは気のせい?

手書きでしので変な改行が入りました、実際は下記になります。
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<body>\n";
print "Hello World";
print "</body>\n";
print "</html>\n";


>しかし下記で実行しますとcgiは実行されました。
># /usr/bin/perl /var/www/html/test.cgi
>Content-type: text/html


><html>
><body>Hello World</body>
></html>



これはcgiが実行されてはいないのですか?
メンテ
 Re: cgiの実行 ( No.3 )
日時: 2006/11/04 16:30
名前: 匿名さん

じゃああとは一行目をこうしてみる。
#!/usr/bin/perl --

それからココも参考に。

ttp://it-revolution.seesaa.net/article/13687310.html

これでダメだったら私にはわかりません。あと、コマンドラインからの実行テストは

#/usr/bin/perl /var/www/html/test.cgi

ではなくて、

#cd /var/www/html
#./test.cgi

とするようにしてください。それからエラーメッセージの

"Premature end of script headers"

をgoogleでそのまま検索すると色々情報が得られますよ。


メンテ
 Re: cgiの実行 ( No.4 )
日時: 2006/11/04 16:43
名前: とんとん

ありがとうございます。

>#!/usr/bin/perl --
やってみたのですがだめでした

>あと、コマンドラインからの実行テストは
>#cd /var/www/html
>#./test.cgi


下記のようにやってみましたら「そのようなファイルやデレクトリはありません」となってしまいました。
なぜ??

[root@miserver html]# ./test.cgi

>それからエラーメッセージの
>"Premature end of script headers"
>をgoogleでそのまま検索すると色々情報が得られますよ。


はい、検索して調べてみましたがよく理解できません(困りました)
引き続き検索中です。
メンテ
 Re: cgiの実行 ( No.5 )
日時: 2006/11/04 17:19
名前: とんとん
参照: http://miserver.dvrdns.org:8080/test6.cgi

おせわになります。

匿名さん、ごめんなさい。

>#!/usr/bin/perl --

やり方かまちがっていたようでこのようにしたらcgiが実行されました。

ではapacheはcgiの実行には問題ないのですね。

>mt-check.cgiのファイルをひらくとcgiソースが表示されログインできなくなってしまいました

原因がわかりません。
メンテ

Page:  [1] [2]

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.