ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ネットワーク&セキュリティコミュのイントラネットでCGIを実行できるようにするには

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめに…「HTML / XHTML」コミュで質問したら場違いと言われ、ここで質問します。

社内でオフラインのWindows Server 2003とクライアント20台でシステムを構築していますが、社内用のホームページ上でカウンターや掲示板などCGIを実行したと思い、フリーソフトの「ActivePerl」、「AN HTTP」を使い、作業をしましたがうまくいきません。

■行った作業■
1.サーバーに「ActivePerl」をインストールし、サーバーのCドライブにPerlフォルダを作成・共有設定を行う。
2.クライアントからサーバーへのネットワークドライブはHドライブで設定、Perlフォルダはネットワークドライブ設定をしていない。
3.社内ホームページはH:\www\home\index.htmlに置く。
4.「AN HTTP.zip」をH:\wwwで解凍し、AN HTTPのオプション一般設定で「ドキュメントルート→H:\www\home」、「CGIを実行」にチェックをいれる。AN HTTPD とperl.exeの関連付け設定はどう記述するかわからずそのまま。
5.ネットで探した無料カウンターのCGIが置いてある「H:\www\home\count\count.cgi」の先頭の記述は「#!/usr/local/bin/perl」のまま。→どう変えるかわからなかったから…。
6.IE6で社内ホームページにアクセスするアドレスが「http://○.○.○.○(サーバーのIP)/index.htmlで開くもアクセスできず…。

■クライアント端末のみで構築したときはカウンターも正常に表示されました。下はその時の設定。
1.クライアントに「ActivePerl」をインストールし、CドライブにPerlフォルダを作成される。
2.社内ホームページはC:\www\home\index.htmlに置く。
4.「AN HTTP.zip」をC:\wwwで解凍し、AN HTTPのオプション一般設定で「ドキュメントルート→C:\www\home」、「CGIを実行」にチェックをいれる。AN HTTPD とperl.exeの関連付け設定はせず。
5.ネットで探した無料カウンターのCGIが置いてある「C:\www\home\count\count.cgi」の先頭の記述は「#!/usr/local/bin/perl」のまま。
6.IE6で社内ホームページにアクセスするアドレスが「http://127.0.0.1/index.htmlで開くと正常に動く。

■わからない部分
1.AN HTTPD とperl.exeの関連付け設定のやり方
2.「count.cgi」の先頭の記述は「#!/usr/local/bin/perl」でいいのか?
3.ホームページアドレスの記述方法

「perlをもっと勉強しろ」とお叱りを受けると思いますが、アドバイスをお願いいたします。

コメント(18)

どうせでしたらApacheをインストールしては如何でしょうか。
ドキュメントルートをきちんと設定すればそれほど難しくありません、イントラであれば。
私はApacheとJperlでサクサクいってますよ^_^)

多分、
>5.ネットで探した無料カウンターのCGIが置いてある「H:\www\home\count\count.cgi」の先頭の記述は「#!/usr/local/bin/perl」のまま。→どう変えるかわからなかったから…。

ここではないかなと。
ドキュメントルートとCGIのディレクトリ設定は一番重要です。
#!/usr/local/bin/perl」
はUNIX(Linux)での一般的設定です。
ここは、Perlのあるディレクトリを指定しなければなりません。
もしC:\Program Files\Perl なら #!C:\Program Files\Perl になると思います。
ただししかも、この手のプログラムは、WIndowsの長いファイル名に対応しない場合があるので、その場合は、コマンドラインでDir /x で表示される「DOSファイル名」を指定しないといけません。
逆に、Perlを C:\usr\local\bin\perl にインストールすれば、サンプル設定のままで使えるはずです。
CGIはUNIXを前提としているので、ディレクトリ区切りの / はWindowsに移植するときは \ に置き換える必要があります。

ちなみに斜め読みですが、Perlスクリプトのフォルダを共有すると、好きにいじられることになるので、嬉しくないような気がします。


#ネットワーク&セキュリティ のトピックでもないような(汗

まず・・AN HTTPD でもいいんでしょうけど、IISとかApacheという(ある意味鉄板の)選択肢はないのでしょうか?

初学者ということであれば、とりあえずローカルでXAMPPでも試してみては?と思いますが

  http://mixi.jp/view_community.pl?id=207699

・・というのは置いといて(置くんかい>自分)、「クライアントで動作している」とのことなので、サーバでも同様にインストールすればいいと思います。httpでアクセスするわけですから(保守以外の目的では)ネットワークドライブの割り当ては不要です。普通にCドライブか(存在するなら)Dドライブでいいと思います。

PerlのpathはActivePerlをインストールしたpath次第になります。ウチの社内サーバだと「#!D:/Perl/bin/perl.exe」とか書いてますね。
>はじめに…「HTML / XHTML」コミュで質問したら場違いと言われ、ここで質問します。
こちらのコミュの方が、より場違いだと思いますが(^^;

>■クライアント端末のみで構築したときはカウンターも正常に表示されました。

クライアント端末で構築したとおりに、サーバーでは「構築」できてないんですね、きっと。

>6.IE6で社内ホームページにアクセスするアドレスが「http://○.○.○.○(サーバーのIP)/index.htmlで開くもアクセスできず…。

AN HTTPDの設定ができていないから当然でしょう。

>「perlをもっと勉強しろ」とお叱りを受けると思いますが、アドバイスをお願いいたします。
Perlなんか知らなくてもいいです。たぶんそれ以前のところで引っかかってるので。

>6.IE6で社内ホームページにアクセスするアドレスが「http://127.0.0.1/index.htmlで開くと正常に動く。
それ、クライアントPCからサーバー内の社内ホームページを開いたら正常に動くって意味ですか?
(違うはずですが)

>■わからない部分
>1.AN HTTPD とperl.exeの関連付け設定のやり方
>2.「count.cgi」の先頭の記述は「#!/usr/local/bin/perl」でいいのか?

AN HTTPDのインストールマニュアルとヘルプをまず熟読するべきでしょう。
CGI以前にサーバーの設定ができていないので、
まずはベタなTOPページをイントラネット上で公開できるかどうかに注力すべき。

それができてから、次はActive Perlの設定に進みましょう。
皆さん早速の回答ありがとうございます。

shimixさんの回答を見ていって、根本的にやり方を間違っていたような気がしてきました。

というのは。「AN HTTP」はすべてのクライアントでオプション一般設定をして、「AN HTTP」を起動しておくのを思っていましたが、もしかして、サーバーにのみ「AN HTTP」のオプション一般設定で起動しておけばいいのでしょうか?
現在はクライアントで「AN HTTP」の設定を行っています。

杏@林間公園破壊反対さんへ
「ActivePerl」、「AN HTTP」にしたのは目的を実現するための方法をネットで検索したら、この2つのソフトでの使用例があったからです。他のソフトでも問題はありません。「Apache」も勉強してみます。

>Perlスクリプトのフォルダを共有すると、好きにいじられることになるので、嬉しくないような気がします。

→共有しないと、クライアントからAN HTTPのオプション一般設定ができないと思ったからです。

ざわじゃさんへ
…ここも場違いでしたか。すいません。サポート掲示板があるのを知りませんでした。検索して活用してみます。

shimixさんへ
>PerlのpathはActivePerlをインストールしたpath次第になります。ウチの社内サーバだと「#!D:/Perl/bin/perl.exe」とか書いてますね。

うちの社内サーバーはCドライブにPerlフォルダがあり、「サーバーにのみ「AN HTTP」のオプション一般設定で起動する」のでよければ、「#!C:/Perl/bin/perl.exe」でいいような気がします。
AN HTTPDって、そういえば何年か前に使ったことがあると思ってググってみました。

このサイトの説明を読めば初級者でもなんなく設定できるはずです。
http://www.kent-web.com/www/anhttpd/www1.html

逆に、この説明を読んでも無理なようなら、基本的な知識が足りないので
外部の専門家に頼むか、近隣のPCオタクでも探してきて設定させる方が得策。
往復の旅費と焼鳥屋で飲み&食い放題支給ならかけつけますがわーい(嬉しい顔)
ISOガバさん回答ありがとうございます。

じつはこのhttp://www.kent-web.com/www/anhttpd/www1.html サイトを見て設定をしたんです…。
ここにはクライアントでサーバーを構築する方法でうまくいきました。いざサーバーでやってみたら、設定の方法をどう変えていいかわからず、つまずいてしまった次第です。

>6.IE6で社内ホームページにアクセスするアドレスが「http://127.0.0.1/index.htmlで開くと正常に動く。
それ、クライアントPCからサーバー内の社内ホームページを開いたら正常に動くって意味ですか?
(違うはずですが)

→現在は社内ホームページはH:\www\home\index.htmlで直接ファイルにアクセスして運用しています。クライアントで構築したので、クライアントのIPである127.0.0.1ではうまくいったという意味です。
クライアントとサーバの意味を理解しないとここのコミュでは笑われるだけ。

サーバってなんのサーバさ。クライアントってなんのクライアントさ。
Webサーバを起動したらそれはWebサーバ、それに接続するのはWebクライアント。

>7 が意味わからなす。
>ゆうさん
それなら話が早い(^^)

>ここにはクライアントでサーバーを構築する方法でうまくいきました。
>いざサーバーでやってみたら、設定の方法をどう変えていいかわからず、
>つまずいてしまった次第です。

クライアントPCでやったこととまったく同じことを、
サーバーPCでkent-webの手順どおりに
もう一度インストールし直せば大丈夫ですよ(きっぱり)。
(クライアントPCからH:\内のファイルを設定しようとしてもダメですよ。)

ちなみに、Perlのパスは、#!/usr/local/bin/perl でOKです。

もしもダメなら、WindowsServerのIISが動いていて悪さをしているかもしれないので、
IISを停止する必要があるかもしれませんが、サーバーの他の機能との
兼ね合いもあるので、そのあたりは慎重に確認・設定してください。
>もしかして、サーバーにのみ「AN HTTP」のオプション一般設定で起動しておけばいいのでしょうか?

正解。

>「Apache」も勉強してみます。

あれもこれもと、余計な勉強はしない方がいいです。
イントラネットだし、AN HTTPをきちんと設定できれば十分ですよ。
TaKuBoさん 回答ありがとうございます。

>サーバってなんのサーバさ。クライアントってなんのクライアントさ。
→サーバーって呼んだのは、社内の業務システムのサーバー(Windows Server 2003)のネットワークドライブにホームページデータを置いていたので、そこをサーバーと呼んでいます。社内の業務システムのクライアント端末をクライアントって呼んでいます。

おっしゃるとおり、Webサーバを起動したらそれはWebサーバ、それに接続するのはWebクライアント。

ですが、社内の業務システムのサーバーは起動しっぱなしで1週間に1回再起動、クライアントは毎日業務終了後にシャットダウンするもの、といったイメージでとらえていたので、コメントした表現になりました。あくまでもオフラインの構築なのでどうしてもWebサーバーという感覚ではないのが現状です。

ISOガバさんへ
ぼくはやはり大きな思い違いをしてたみたいですね。クライアントからサーバーの設定をするのではないのですね。明日早速やってみます。すいませんが、ひとつだけ教えてください。

現在は社内ホームページは各クライアントにH:\www\home\index.htmのショートカットでアクセスして運用していますが、今度から、H:\www\home\index.htmをアクセスするアドレスはどのようになるのですか?
>H:\www\home\index.htmをアクセスするアドレスはどのようになるのですか?

高度な設定や、ややこしい設定をせずに、手順どおりの基本的な設定をした場合、
サーバーのIPアドレスが「192.168.1.xx」だとすると、
クライアントPCでブラウザを起動して、「http://192.168.1.xx」と叩くだけです。
不思議かもしれませんが、そんなもんなんです(笑)

サーバーPCがAN HTTPDで設定されたとおりにWebサーバーとして動いているので、
そのアドレスを叩けば、サーバーのc:\www\home\index.htmを表示させるのです。
あんまり難しく考えずに、やってみればそのとおりになりますよ指でOK
ISOガバさん

サーバーのIPアドレスでいいんですね。ありがとうございました。なんとかできそうです。
回答をいただいた皆さんへ

回答どおり設定したら、いとも簡単にできました。皆さんありがとうございました。
> ゆうさんへ

無事動作してよかったですね。。。

ただ、このコミュ的なコメントを少し・・・

振り込め詐欺被害の話しを聞いたことがあると思うのですが、年配の人が見知らぬ人から電話を受けて、お金を振り込んであげるからと説明され、そのまま銀行のATMに行って、携帯電話で指示されるがままにATMを操作させられるという手法です。
その年配の人としては、お金を振り込んでもらう操作手順だと思っていて、自分の口座から振込をしたつもりはないのに、指示された手順は実際は振込操作で、お金を取られてしまうという被害です。

そんな馬鹿な・・・と思うかもしれませんが、、、
現状の、ゆうさんのCGI設定作業は、同様の危うさがあります。

カウンターや掲示板を作るためにネットで検索して見つけたプログラムと、そこに掲載されてたネット上の見知らぬ人が書いた手順書にしたがって、会社のサーバやクライアントにその手順書とおりに、あんまり仕組みはよくわからないけどソフトをインストールしたり、設定作業をした。
ということですから。。。

あまり脅すつもりはないですが、世の中には良い人ばかりではないので、そういう可能性もあると思って、気をつけていただくとよいと思います。

すいとんろうさんへ

ご忠告ありがとうございます。一応業務システムのエンジニアと相談しながら行いましたが、Webサーバーはあまり詳しくないらしい…。オフラインのシステムなので、必要のない知識みたいです。私もいろんなシステム開発をしてきましたが、オフラインでないといけない業種のためWebやネットワーク関係はあまり詳しくありませんので、助けてもらったしだいです。今後は気をつけます。
MURAさんへ

そうですね。わからないことはたくさんありますが、私はシステムに関して職場では常に教える立場でわからないことは自分自身で解決しないといけません。VB+Oracleでのデータベースソフトの開発を主にしていますが、Web関連のしくみや開発は素人です。これをきっかけにPerl言語を調べてみましたが、機能を限定したすっきりした言語ですね。今は独自のcgiを作成しています。仕事上での手順書や伝言板、ツールなどを職場内のホームページで公開して、カウンタや掲示板もToDoなどバリバリ動いています。皆さんの援助のおかけです。ありがとうございました。

ログインすると、残り2件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

ネットワーク&セキュリティ 更新情報

ネットワーク&セキュリティのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング