みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

サーバ側プログラム言語について

XHttpRequest()で実行されるサーバ側処理の言語は、参考書ではPHPで記載されているものが殆どです。
PHPのサンプルコードを見ると、単に(検索等は抜かして)echoで標準出力していいる為、
同じような事を例えば perlで記述しても出来ると思い、実際以下の様に簡単な
サンプルを実行してるのですが、思うように結果が出てきません

-----------------------------------------
#!/usr/local/bin/perl
use CGI;
$query = new CGI;
$project_id = $query->param('emp_no');

$|=1;

&main();

sub main {
print "AAA";
}
-----------------------
期待する結果はAAAの文字列です
しかしながら、実際にHTML側で得られる結果は、
#!/usr/local/bin/perl ・・ とソースそのものが出てきてしまいます。
(perlには実行権を与えています)

同じ事をperlではなく、/bin/sh で echo しても結果は同じでした。

PHPで書けばと言われそうですが、得意な言語で書ければと思っています
何か原因が判れば教えてください。

投稿日時 - 2009-12-03 17:03:54

QNo.5495284

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>ソースそのものが出てきてしまいます。

というなら、Ajax以前にhttpサーバーがperlなどのCGIを実行しない設定になってるだけでは?

投稿日時 - 2009-12-07 20:03:14

お礼

情報ありがとうございます。
浅知恵の自分でしたのでサーバ側の設定を管理者の方に見ていただき、
無事解決しました。
下記を設定していただきました
AddHandler cgi-script .cgi .pl

投稿日時 - 2009-12-18 08:56:27

えーと、こっちで動かしてみたら、動きましたよー。

#!/usr/bin/perl
use CGI;
$query = new CGI;
$project_id = $query->param('emp_no');

$|=1;

&main();

sub main {
print "Content-type: text/plain\n\n";
print "AAA!";
}

なんか無駄なコードがあるけど、とりあえずそのまま試してみましたよー。perlのパスはこっちの環境にあわせて変えてありますけどねー。

ところで、書いてあったソースコードだとContent-typeを出してないですがー、そーゆーサーバー設定なんでしょーか。これつけたらちゃんと出ましたけどー。もちろん、Ajaxからアクセスしても問題ないですよー。

投稿日時 - 2009-12-04 09:07:14

お礼

上の方にもお礼をご報告させていただいていますが、
無事動かす事ができました。
ありがとうございました。

>ところで、書いてあったソースコードだとContent-typeを出してないですがー

print "Content-Type: text/html; charset=\"utf-8\"\n\n";

はい、私の記述漏れでした。

投稿日時 - 2009-12-18 08:59:50

あなたにオススメの質問