perlで構文チェックをしたところ、OKが出たので、
アパッチにて実行したところサーバエラーがでました。
調べたところ、以下のようなエラーが出ましたが、これは、サブルーチンや、ライブラリが呼出されていないのでしょうか?どのように対処すればいいか教えてください。

Premature end of script headers: c:/www/public_html/subsub.cgi
Undefined subroutine &jcode::convent called at c:\WWW\PUBLIC~1\SUBSUB.CGI line 8.

Premature end of script headers: c:/www/public_html/okikae.cgi
Can't locate cgi-bin.pl in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at c:\WWW\PUBLIC~1\OKIKAE.CGI line 3.

このQ&Aに関連する最新のQ&A

A 回答 (4件)

CGIプログラムはcgi-binの下になければならない、とは限りません。

Apacheの設定によります。
「Can't locate ...」などはまぎれもなくPerlが出しているエラーメッセージ
でしょう。ですから、サーバはCGIとして実行しようとはしていると思われ
ます。
koujinさんもうすうすお分かりのように、jcode.plやcgi-bin.plがみつから
ないんですね。それらのファイルがカレントディレクトリもしくは
@INCのところで示されているようなパスに存在しないのではないですか。

もし、例えばc:/www/public_html/lib/の下など別のディレクトリに
jcode.plをまとめよう、としているのでしたら、
use lib qw(C:/www/public_html/lib);
としてそれを@INCに含めるようにしたりすれば良いでしょう。

ひょっとしたらどこかからのサンプルを使ってsubsub.cgiやokikae.cgi
を書いたところでしょうか。だとしたら足りないjcode.plやcgi-bin.pl
をどこかから手に入れて(WWWの世界にごろごろしています)ください。
これらはPerlの標準配布には含まれていませんので。

なお、もうcgi-bin.plはずいぶんと古い時代のものですね。最近は
CGI.pmを使うのが普通かと思います。(これはPerl5に最初から
含まれています) jcode.plに対しても、最近はJcode.pmという
ものがあります。参考まで。
    • good
    • 0

構文チェックは通っても、バグを含んでいれば当然実行時エラーになります。


Perlで実行してエラーを探した方が早いと思いますよ。
    • good
    • 0

見当違いならごめんなさい。


apacheの設定ではcgiスクリプトはpublic_html以下のcgi-binディレクトリにおくようになっているはずですが、エラーメッセージを見るとpublic_html以下にsubsub.cgiやokikae.cgiがあるように見えるのですが。。。これは正しいのかな?
    • good
    • 0

エラーを見る限り、jcode.pmとcgi-lib.plが呼べていないように見えます。


ちゃんとアップロードされてますか?

アップされている場合は、パスが間違っていないかどうか調べてみてください。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qサーバラックについて教えてください

サーバラックというものに興味があるのですが、
1度も触ったことがないので教えてください。
まず、どのようにサーバを装着するのでしょうか?
雑誌のラックタイプのサーバを見ると、前面の左右に
固定するものが見えますが、本体をラックに挿入して、
左右でネジ留め(?)するだけなのでしょうか?
また、EIA規格の19インチラックであれば、たいていの
ラック型サーバは登載可能でしょうか?
サーバ専用のガイドレール(?)などを購入して、
取り付けないと装着できないのでしょうか?
1Uサーバを購入したいのですが、ラックに具体的に
どう取り付けるのか、イメージがつきません。
よろしければご教授ください。

Aベストアンサー

回答ではありませんが、参考になりそうな記事があったので紹介しておきます。

ITmedia エンタープライズ:漢のラックを極める――ラックに関するエンジニアのコダワリ
http://www.itmedia.co.jp/enterprise/articles/0507/01/news106.html

たかがラック、されどラック。ITシステムの運用と切っても切れない19インチラックの設計と運用について改めて考えてみよう。


次に、私は勤務先で摂津金属(IDEAL)のラックを使っています。それに基づいた経験からのアドバイスです。

> DELLの1Uサーバを買うと、アームやレールなどのキットもついてきて、それを19インチラックに取り付け、そのレールに沿ってサーバを取り付けるという感じなのかなと思っていますが、正しいでしょうか?

DELLの場合には、DELL製のラックに取り付ける為のレールと、他社製のラックに取り付ける為のレールの2種類が選択可能になっています。そこで、他社製のラック用のレールを購入すれば、摂津金属(IDEAL)のラックに設置出来ています。
尚、DELLの営業が親切な場合には、設置可能かどうかを確認する為に、使用しているラックのメーカーや型番の確認をしてくれます。(言われなかったら、こちらから確認すべきです)


もし、色々なメーカーのサーバーを設置する予定なのであれば、やはり汎用的なメーカーの製品が良いとは思います。
その場合でも、ラックメーカーの方に、設置予定のサーバーの型番等に関して、事前に相談される事をお薦めします。向こうは、メーカーと型番がわかれば、それが設置可能か?、どういう製品がお薦めか?、どんなオプションが必要か?、色々とアドバイスをしていただけると思います。

Interop Tokyo 2005 - 参加予定企業/団体一覧
ケーブル/ラック/周辺装置 > ラック
http://ssl.medialive.jp/ni2005/exhidir/ja/product/product_28.html


もし、色々なメーカーのラックを比較検討したい場合には、「ぷらっとホーム」もお薦めしておきます。
http://www.plathome.co.jp/


なお、使用した事も、使用予定もありませんが、イベントで見かけて興味を持ったのは、APCのラックです。「冷やす」と言う事を良く考えている製品です。但し、価格もそれなりです。
http://www.apc.co.jp/products/ISX/index.html
http://cyber.apc.co.jp/top/search/asp/list.asp?s_cate1=11

参考URL:http://www.itmedia.co.jp/enterprise/articles/0507/01/news106.html

回答ではありませんが、参考になりそうな記事があったので紹介しておきます。

ITmedia エンタープライズ:漢のラックを極める――ラックに関するエンジニアのコダワリ
http://www.itmedia.co.jp/enterprise/articles/0507/01/news106.html

たかがラック、されどラック。ITシステムの運用と切っても切れない19インチラックの設計と運用について改めて考えてみよう。


次に、私は勤務先で摂津金属(IDEAL)のラックを使っています。それに基づいた経験からのアドバイスです。

> DELLの1Uサーバを買うと、...続きを読む

Q/usr/local/bin/perl の発音

あまりにも初歩の質問かもしれませんが、
/usr/local/bin/perl
・・・を、声に出すとすると、
/ユーザー/ローカル/ビン/パール
・・・で、良いのでしょうか?

Aベストアンサー

新版 UNIX 由来/読み方辞書
http://x68000.q-e-d.net/~68user/unix/unix-term-dic.html

Qラックのサーバマシン購入に関してアドバイスをお願いします。

大学の研究室内で使用するサーバマシンを購入することになりました。

現在研究室内には古いパソコンをサーバマシンとしたパソコンが数台あり、今後も踏まえ、今までのような無駄なスペースを減らすためにもラックサーバを購入したいと思います。

現在探してるサーバ構成は
予算: ラック1台とサーバ1台で30万円前後
CPU: 可能ならばDual構成
HDD: RAID構成(RAID-1やRAID-5あたり)
OS: WindowsとLinuxどちらかをインストール出来る
ラック: 今後のためにも汎用ラックで10台は収容可能なラック。
という感じです。

汎用ラックにしようと思ったのは、特定のメーカ用ラックを購入してしまうと今後サーバ増設時に選択肢がなくなってしまうかなと思ったからです。

また、汎用ラックにした場合、キーボード、マウス、ディスプレイはどの様な形で設置されるのでしょうか?

用途は、卒業研究で使用する場合が多いため、必ずしも高性能なサーバは求めていません。

上記の条件でオススメのラックサーバがあったら教えてもらえないでしょうか?

また汎用ラックの使用感など教えてもらえると嬉しいです。

大学の研究室内で使用するサーバマシンを購入することになりました。

現在研究室内には古いパソコンをサーバマシンとしたパソコンが数台あり、今後も踏まえ、今までのような無駄なスペースを減らすためにもラックサーバを購入したいと思います。

現在探してるサーバ構成は
予算: ラック1台とサーバ1台で30万円前後
CPU: 可能ならばDual構成
HDD: RAID構成(RAID-1やRAID-5あたり)
OS: WindowsとLinuxどちらかをインストール出来る
ラック: 今後のためにも汎用ラックで10台は収容可能なラック。
という...続きを読む

Aベストアンサー

すみません。。。

マトモなラックは30万以上してしまうのですが
安い奴でも15万くらいします(15U)
で、オプションパーツになる仕切り板(キーボード、マウス用の板)は1万~3万円とかします

でサーバーについてですが、これも研究用とでRAID&DualCPUで行くと30万とかします。
安い構成でも16万円(RAID&DUALの1U)

マトモな構成ならコレにふつうはUPSをくっつけます。
ですが普通この手は電算室のようなことろに設置するのが普通ですがその辺どうですか?

http://www.hakaku.com
この辺りで調べてみてください

Q#!/usr/local/bin/perlの変更。

┬ cgi_script
│   └***.cgi

└ access_g
    └11111
      └22222
        └***.cgi

今まで、cgi_scriptフォルダの直下にあるcgiファイルの一番上の行は
#!/usr/local/bin/perl
できちんと動作していました。

今は、そのcgi_scriptフォルダと同じところにあるaccess_gフォルダの中にある、
11111フォルダの下の2222フォルダの下にあるcgiファイルを実行させたいのですが、
#!/usr/local/bin/perl
をどのように変更していいかわからなくなってしまいました。

動作させたいcgiファイルはcgi_scriptフォルダの中に入れたところきちんと動作したので、
動作上の問題はないと思われます。

どうぞよろしくお願いいたします。

Aベストアンサー

それは変更する必要ないですよ。
また、動かない理由としてパーミッション設定をフォルダにもきちんと設定しているでしょうか?
CGIによってはフォルダのパーミッションをすべて「777」にしないと動かない物もあります。

Q仕事でラックマウント型のサーバ(HP社のHP9000 rp3440)を

仕事でラックマウント型のサーバ(HP社のHP9000 rp3440)を購入したのですが、
同時に購入したマウントレールがサーバラックに取り付けられないタイプでした。
止むを得ず、緊急措置として机の上に平置きで使用することを検討していますが、
廃熱の問題等で機器の故障はどの程度懸念すべきでしょうか。
どなたか詳しい方いらっしゃいましたら回答頂ければ幸いです。

Aベストアンサー

>緊急措置として机の上に平置きで
何台も積まなければ大丈夫だと思います。
サーバ機は、自分のことしか考えずに暑くなると全開でファンを回して騒がしいと思います。

問題は、サーバよりは机の上に置いたことによって、騒音や振動で事務所にいる人達の室内環境が悪くなりませんか?


>廃熱の問題等
熱はクラーの冷風が循環する場所なら大丈夫です

QPerlの初歩の初歩の初歩(#!/usr/local/bin/perlについて)

いつもお世話になっています。
Perlを勉強し始めて1か月たっていない人間です。
調べてもよく分からず、気持ち悪いので
どうか教えてください。

Perlで記述するとき1行目にperlへのパスを書きますが
プロバイダでのパスは「#!/usr/local/bin/perl」です。
私のPC環境では「#!d:/perl/bin/perl」になります。

ある日、PC環境で動作検証するとき
間違ってプロバイダのパスのほうを記述してしまいました。
しかし、それでもPC上で動作しました。

なぜパスが違うのに動作するのでしょうか?

なお、わけの分からないまま
「Perlへのパスを通す」というのを昔
やったことがあります。関係がありますか?

ある場合、それをすると
「#!d:/perl/bin/perl」の「d:/perl/」の部分が
「/usr/local/」と同になるということなのでしょうか?

Aベストアンサー

httpdの種類や設定によっては1行目のパスを無視して動作させることが出来ます。
例えばAnHTTPDは最初からcgiの拡張子とperlを関連付けて使う仕様だった気がします。
Apache1.3(Win)もWindowsのOSでcgi拡張子とPerl.exeの関連付けがしてあれば動作させることが出来ます。

Qラックサーバって、普通に使えますか?

ラックサーバ(通常は、ラックマウントに入れるはず)を、
普通の卓上に、おくか縦置きにして、24時間運転って
ありえますか?(もしくは、脇机にどのようにかしておく)

私の認識では、ラックに設置しないと、温度の関係とかで
やばいと思うのですが。

詳しい方、教えて下さい。

Aベストアンサー

>普通の卓上に

もちろん大丈夫です。ラックに入れてるのと同じです。

>おくか縦置きにして、

想定されていません。だが、光学デバイスが対応していれば大丈夫でしょうね? と言う程度です。普通スリムタイプですが、縦で動作保障している物は少ないですが、問題なく動作するはずです。

>ラックに設置しないと、温度の関係


問題は、天板です。稼動している所を一度でも体験すればわかるかと思いますが、まず音がうるさい。どうみても40db以上はでている。町の中の騒音と同じです。

しかし、音程が安定し、高温でもない低音でもないので、ベニヤ一枚でもかなり遮断できる。

実は個人で使用しています。

天板の上に物を置くことを想定していません。普通のパソコンでもそうですが、前面から空気の流れを取り入れ、中間でFAN3,4個の力を借りて、後方で同じく4個以上のFANで強制空冷しています。これは、グラボやCPUに関係なく。

1U,2Uだと天板に熱がこもりやすいです。気おつけましょう。ちなみに私は3Uを使用しオーディオ用のラックに入れています(高かった)。音がうるさかったので、DIYでそこだけガラス張りにしました。20db前後になるように吸音材に工夫しました(特別な最新の物を買った<=テレビでベンチャーとして紹介されていたので)。

強制空冷ですので、空気の流れさえとざさなければ、温度の問題はありません。もし天板の上に置くとしたら、削りだしアルミ合金でFINをつくり放熱板として、それ以外は置かない事。また、5cm以上は物と話しましょう。理想は10cm以上です。冷蔵庫、ガスレンジ等、熱を嫌う機器と同じです。

>普通の卓上に

もちろん大丈夫です。ラックに入れてるのと同じです。

>おくか縦置きにして、

想定されていません。だが、光学デバイスが対応していれば大丈夫でしょうね? と言う程度です。普通スリムタイプですが、縦で動作保障している物は少ないですが、問題なく動作するはずです。

>ラックに設置しないと、温度の関係


問題は、天板です。稼動している所を一度でも体験すればわかるかと思いますが、まず音がうるさい。どうみても40db以上はでている。町の中の騒音と同じです。

しかし、音程が安定...続きを読む

Qhttp://www.test.cgi/index などのCGI名のあとのパス名

http://www.test.cgi/index
のようになっているものを見かけるときがあります。普段は
http://www.test.cgi?mode=index
などしているのですが、どのような仕組みになっているのでしょうか?
これはPerlに限らず、CGIとして動作するものなら実装できるのでしょうか?
疑問に思ってしまったので、ご回答のほどをよろしくお願いします。

Aベストアンサー

PATH_INFOと呼ばれる情報です。Perl/CGIであれば環境変数の$ENV{'PATH_INFO'}で取得する事が出来ます。クエリー(?xxx)が$ENV{'QUERY_STRING'}で取得出来る事と同じ要領です。組み合わせてtest.cgi/path/info?query=stringのようにする事も出来ます。(それぞれ上記の環境変数で別々に取り出せます。)

他の言語に関しても取得出来ます。言語名とPATH_INFOで検索をかけてみてください。(例えば『php path_info』等)

Qラックマウント形サーバとタワー型サーバの違い

本文掲載のラックマウント形サーバとタワー型サーバの違いがわかりません。 それぞれの特徴、メリットを知りたいです。 それと、導入会社(stub)の「stub」の意味が不明です。
http://ja.wikipedia.org/wiki/Express5800

よろしくお願いいたします。

Aベストアンサー

ラックマウント型は複数のサーバーを狭い場所におくことができます。本棚に本を入れる感じです。
タワー型はいわゆる普通のデスクトップPCと同じような形で場所は取りますが、メンテナンスが楽です。

WikipediaのSTUBは書きかけと言うことです。

Aベストアンサー

>画像ヘッダとはどういうものでしょうか?

Content-type: image/gif
Content-type: image/png
Content-type: image/jpeg

など、画像タイプごとに決まっています。
<img>タグに普通の画像ファイルが指定されている場合は
Webサーバが画像ファイルの拡張子から判断して返してくれ
ますが、CGIから返されるデータの種類は拡張子からは判断
できないのでCGI内部からヘッダを返す必要があります。


●CGIがPerlの場合で、GIF画像をCGIから返す例
#!/path/to/perl
print "Content-type: image/gif\n\n";
open(GIF, "file.gif");
binmode(GIF); binmode(STDOUT);
print <GIF>; close(GIF);

もちろん、CGIからは画像フォーマットを返せばいいので、
ファイルから読まずにあらかじめCGIソース内に画像データ
を持っておいて出力する方法も可能です。


ちなみに、多くのCGIではHTMLコンテンツを返す場合が多い
ので、ヘッダは以下のようになります。

print "Content-type: text/html\n\n";

>画像ヘッダとはどういうものでしょうか?

Content-type: image/gif
Content-type: image/png
Content-type: image/jpeg

など、画像タイプごとに決まっています。
<img>タグに普通の画像ファイルが指定されている場合は
Webサーバが画像ファイルの拡張子から判断して返してくれ
ますが、CGIから返されるデータの種類は拡張子からは判断
できないのでCGI内部からヘッダを返す必要があります。


●CGIがPerlの場合で、GIF画像をCGIから返す例
#!/path/to/perl
print "Content-type: image/gif\n\n...
続きを読む


人気Q&Aランキング