電子書籍の厳選無料作品が豊富!

こんばんわ。とても困っているので、お知恵拝借頂ければありがたいです。

クライアントが10台ほどのLAN内に
OSをWinXPにしたPCにBlack Jumbo Dog(BJD)を使って
Webサーバを立ち上げてcgiを動かしたいと思っています。

webサーバーとしては無事に立ち上がってくれて
http://localhost/index.html」は表示されたので
次は外部からフリーで持ってきたperl(webchat.cgi)を入れましたが、
うまく動きません。

・perlはインストールしてあり、コマンドプロンプト画面レベルでは「perl -v」などが動いているのは確認しました。

・フリーで持ってきたperlの1行目は「#!D:/Perl/bin/perl」と書き直してあります。

・BJD内のcgiの所にwebchat.cgiが格納されているcgiのパス設定を行いました。

動かない原因として考えられる事など、なにかアドバイスを頂ければありがたく思います。

他に環境が必要であれば、補足致しますので
どうかよろしくお願い致します。

A 回答 (2件)

こんばんは。



補足分を読みましたが、表示されているエラーが原因だと思います。
"The symlink function is unimplemented"を訳すと、
「symlink機能が実装されてません」ということです。

WEBでちょっと調べてみたらWindows系OSではsymlink関数は
使用できないみたいです。
http://sakaguch.com/PastBBS/0002/B0000949.html

ファイルロックでsymlinkを使用しないように
CGIを改造してみてはどうでしょうか?

この回答への補足

【お礼欄に書ききれなかったので、この欄を使わせて頂きます】

それ以外に備忘録として今回気づいた事を付記すると
Windowsには実行モードやアスキーなどの
コードの概念が無い(?)らしいという事です。

私はUNIXサーバでしかHTTPを立ち上げた事がなかったので
別のところからソースを持ってくる時には
実行モードやアスキーコードに注意してUPしてきました。

今回もそうだと思っていたので、500のエラーが出た時に原因はこれかと思い、
UNIXならば、chmodで実行モードを直したり、nkfでコードを修正できるけど、
Winではどうやるのだろうと随分悩んだのです。

HTTPのステータスコード
http://e-words.jp/p/r-httpstatus.html

FTPを立ち上げて、ffftpを使えるようにしてわざわざ変更したりも
したのですが…どうも原因はこれでは無く取りこし苦労でやらなくてもよかったみたい…

→Webで検索した時には、Windowsではどれも777になるような事が書いてありましたが…

#Teradriveさんは、これが初回答なのですね~
 ありがとうございました

補足日時:2006/01/09 01:31
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
お礼を兼ねて結果報告です。

>"The symlink function is unimplemented"を訳すと、
「symlink機能が実装されてません」ということです。

ああ、面目ないです…
つい英語のメッセージ部分をスルーしてました…
注意深く見なくっちゃいけませんよね…(>_<)

>WEBでちょっと調べてみたらWindows系OSではsymlink関数は
使用できないみたいです。
http://sakaguch.com/PastBBS/0002/B0000949.html

えーほんとですか…(;_;)と言う事で、あきらめず「symlink」と「Windows」を
キーワードに検索したところ、チェッカーをみつけたので
http://www.kent-web.com/utility/
にアクセスして、そのチェッカーをダウンロードして、このサーバを調べてみた所、

・あなたのサーバでは「symlink関数」は、使用不可能と思われます。
・あなたのサーバでは「flock関数」は、使用可能と思われます。

と出たので、work.pl内のsymlink→flockと修正し、
他にsymlinkを使っている箇所を検索したらsetup.plがあったので
内容を見た所、注釈に「symlock使わないなら変数を変えろ」とあったので
変数を変えた所、なんとか動きました!(^o^)/

調べたら「symlinkは動くサーバと動かないサーバがあり、flockやmkdirなどは大抵のサーバで動くが遅い。」とありました。
http://www.kent-web.com/support/faq/faq1-3.html

確かにサンプル(UNIX上でsymlinkを)で動かした時より遅いような気もしましたが、今回の場合は人数も多くないし閉じた環境(LAN)内での使用なので問題無さそうです。

お礼日時:2006/01/09 01:31

 「うまく動きません。

」とありますが、動作はしているのですか?

 ブラウザでアクセスするとエラーメッセージは出ますか?

この回答への補足

すみません…補足します。

ブラウザ上の画面には
500 Internal Server Error
と出ます。

で内部のLOGを見ると
304 0 "GET /cgi/wc122/index.html HTTP/1.1" (localhost)
E200042 "The symlink function is unimplemented at ./work.pl line 122. (localhost)"
E200042 "The symlink function is unimplemented at ./work.pl line 122. (localhost)"
200 29 "GET /cgi/wc122/webchat.cgi?action=rom HTTP/1.1" (localhost)
200 29 "GET /cgi/wc122/webchat.cgi?action=profile HTTP/1.1" (localhost)

とあるので、このindex.htmlがwebchat.cgiを呼び、その先でwork.plを呼んで、その中の122行目で何か起こっているのだろうと思い、中を見た所、

while (!symlink(".", $lockfile)){

となっていました。

ここから先は、もうわからないのです…
なにかピンと来る事はありますか?

補足日時:2006/01/08 23:05
    • good
    • 0
この回答へのお礼

補足要求ありがとうございました。
おかげで動くようになりました、詳細は#2の方の欄をご参照願います。

お礼日時:2006/01/09 01:34

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