• ベストアンサー

LAN内に設置したWebサーバでcgiを動かしたい

こんばんわ。とても困っているので、お知恵拝借頂ければありがたいです。 クライアントが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のパス設定を行いました。 動かない原因として考えられる事など、なにかアドバイスを頂ければありがたく思います。 他に環境が必要であれば、補足致しますので どうかよろしくお願い致します。

  • Perl
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
noname#226078
noname#226078
回答No.2

こんばんは。 補足分を読みましたが、表示されているエラーが原因だと思います。 "The symlink function is unimplemented"を訳すと、 「symlink機能が実装されてません」ということです。 WEBでちょっと調べてみたらWindows系OSではsymlink関数は 使用できないみたいです。 http://sakaguch.com/PastBBS/0002/B0000949.html ファイルロックでsymlinkを使用しないように CGIを改造してみてはどうでしょうか?

cross_cable
質問者

お礼

回答ありがとうございます! お礼を兼ねて結果報告です。 >"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)内での使用なので問題無さそうです。

cross_cable
質問者

補足

【お礼欄に書ききれなかったので、この欄を使わせて頂きます】 それ以外に備忘録として今回気づいた事を付記すると Windowsには実行モードやアスキーなどの コードの概念が無い(?)らしいという事です。 私はUNIXサーバでしかHTTPを立ち上げた事がなかったので 別のところからソースを持ってくる時には 実行モードやアスキーコードに注意してUPしてきました。 今回もそうだと思っていたので、500のエラーが出た時に原因はこれかと思い、 UNIXならば、chmodで実行モードを直したり、nkfでコードを修正できるけど、 Winではどうやるのだろうと随分悩んだのです。 HTTPのステータスコード http://e-words.jp/p/r-httpstatus.html FTPを立ち上げて、ffftpを使えるようにしてわざわざ変更したりも したのですが…どうも原因はこれでは無く取りこし苦労でやらなくてもよかったみたい… →Webで検索した時には、Windowsではどれも777になるような事が書いてありましたが… #Teradriveさんは、これが初回答なのですね~  ありがとうございました

その他の回答 (1)

回答No.1

 「うまく動きません。」とありますが、動作はしているのですか?  ブラウザでアクセスするとエラーメッセージは出ますか?

cross_cable
質問者

お礼

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

cross_cable
質問者

補足

すみません…補足します。 ブラウザ上の画面には 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)){ となっていました。 ここから先は、もうわからないのです… なにかピンと来る事はありますか?

関連するQ&A

  • Apache/2.2.13 WebサーバーでCGIが動きません

    ご迷惑をおかけして、すいません。 何方か助けてください。お願いいたします。 OS Redhat Linux Fedora 11 バージョン 1.430 Webサーバー Apache バージョン 2.2.13 perl perl 5.10.0-73.fc11 httpd.confの記述 ------------------------- AddHandler cgi-script .cgi .pl ScriptAlias /cgi-bin/ "/home/www/cgi-bin/" <Directory /home/www/cgi-bin> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> ------------------------ デレクトリー /home/www/cgi-bin 属性(775 rwxrwxr-x) CGIファイル 属性(775 rwxrwxr-x) http://eiwa-up.com/cgi-bin/index.pl http://eiwa-up.com/cgi-bin/index.cgi 同じファイルで拡張子が.plは正常に動作します。 拡張子が.cgiだと動かない状態です。 お忙しい中申し訳ありませんが、何方か助けてください。 お願いいたします。 趣味で無料レンタルCGIをボランティアで提供していたのですが、 先月Linux Laser5が老朽化のためダウンしてしまい、新しくFedora11のwebサーバーを新インストールしているのですが私の知識では解決できそうにありません。無料レンタルCGIで使用していたサーバーのためたくさんの方にご迷惑おかけしている状態です。 なぜ.cgi拡張子だと動作しないのか?解決方法を教えていただけたら憂いしいのですが。よろしくお願いいたします。

  • CGIが動きません

    uranai.cgiのパーミッションは755です。 #!/usr/local/bin/perlではなく #!/usr/bin/perlを使っていますが、 これはサーバの説明にありました。 下記URL内の3ファイルをCGIフォルダに格納して サーバにアップしましたが、エラーになります。 cgi-binにする必要はないとのサーバ設定の記述にありました。 動かない理由がお分かりの方は、ご教授いただけると幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGIを開けない。。。

    apacheとphpを設定して動作確認したあとに、cgiも操作したいので、Active Perlというものをインストールしてみました。 phpは、http://localhost/で「C:/Program Files/Apache Software Foundation/Apache2.2/htdocs」のフォルダーを参照できるのですが、cgiを開くときには、どこのフォルダーに格納し、URLをどうすれば宜しいのでしょうか?(因みにcgi-binとhtdocsに格納し、http://localhost/***.cgiで試したのですが駄目でした。) Active Perlインストール後に変更した場所 ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/" <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> AddHandler cgi-script .cgi .pl なお、perlの設定には、こちらhttp://www.jisaba.net/xp/actpeal/04.htmのサイトを参考にしました。 環境はWindowsVistaです。 どなたか宜しくお願い致します。

    • ベストアンサー
    • Perl
  • 自宅サーバでCGIが機能しないのです

    素人の質問で恐縮です。自宅サーバを構築中ですが、アパッチをインストールし、DDNSによるドメインを取得し、HPを公開できました。FTP環境もできました。ただ、ActivePerlの最新版ををインストールし、コマンドプロンプトで起動確認もできたのですが、CGIファイルをcgi-binフォルダに入れても機能しません。一行目を#!c:/perl/bin/perlか、#!c:/perl/bin/perl.exeにしたのですが、パールをつかみにいかないのです。サーバはWindowsXPのホームエディションSP2ですが、WindowsはUNIXみたいにパーミッションの概念がないので設定は不要だと、あるサイトに書いてましたが不要ですか?確かに以前、プロバイダのWEBスペースでCGIの掲示板を使っていた時は、FTP上でパーミッションを設定していましたが、自宅サーバ(windows)ではFTP上で設定しようとしてもはねつけられてしまいました。どなたかアドバイスいただけましたら幸いです。

    • ベストアンサー
    • CGI
  • さくらレンタルサーバーでのCGI設置について

    さくらレンタルサーバー(スタンダード)を使って、HPを作成しています。 そこで、HP検索CGI(Free)を設置しようとしたら、500エラーがでて先に進みません。 使用したHP検索CGI(Free)は、Web Search Ver 2.03です。 URL: http://www.web-liberty.net/download/search/index.html#setup perlファイルのコマンドパスは、/usr/bin/perl と /usr/local/bin/perl パーミッションは705、755共にエラーでした。。 送信もアスキーモード(テキストモード)で行いました。 両方を試しましたがエラーでした。 何が原因なのでしょうか? ソース自体はダウンロードしてコマンドパスと『検索開始ディレクトリの相対パス』と『検索開始ディレクトリの絶対パス』以外、いじっていないので、ソースが壊れているということはないと思います。 お手上げ状態で困っています。 助言をお願いいたします。

    • 締切済み
    • CGI
  • サーバーでCGIを動作させるには?

    自宅サーバーでCGIを動作させたいのですが、うまく動作しません。 ○サーバー環境 OS:Windows Server 2003 Web Edition SP1 CPU:Intel Xeon 2.8GHz メモリ:1GB RAM ○現在の状況 htmlは、問題なく動作してます。 cgiを実行すると、エラー404となります。 ○CGI動作にあたって行った作業 (1)ASPの実行を許可しました (2)Perl構成にあたり、ActiveState社のActivePerl-5.8.820-MSWin32-x86-274739.msiをダウンロードし、Dフォルダにインストールしました。 (3)IISマネージャで、「Webサービス拡張」→「Perl CGI Extension」を許可しました。 (4)IISマネージャで、「Webサービス拡張」→「すべての不明なCGI拡張」を許可しました。 (5)実行アクセス権を設定するために、実行するCGIを格納するディレクトリの「実行アクセス許可」を「スクリプトおよび実行可能なファイル」としました。 (6)CGI拡張子と実行可能ファイルを関連付けるために、実行するCGIを格納するディレクトリの「アプリケーションの設定」→「構成」→「アプリケーションの拡張子」→「追加」で、 実行可能ファイル「D\Perl\bin\perl.exe"%s"%s」 拡張子「.cgi」としました。 ○CGIが動作するか確認するために、サンプルCGIを作成し、上記設定を行ったディレクトリ以下に配置しました。 ○結果 クライアントで、http://サーバー名/ディレクトリ名/ファイル名 と入力すると、エラー404 ページが見つかりません。と出ます。 間違った操作や、考えられる間違い箇所がありましたら、指摘ください。

  • CGIを設置したい

    自分のHPを作成しております。 HPビルダーで http://www.kent-web.com/ここの方のCGIを使用したいのですが。 ****.cgiにリンクをはってもダウンロード状態になってしまいます。 アップロード先はANHTTPDで既にたっているサーバーです。 WINDWSXPです、宜しくお願いします。 別件ですが自宅サーバーの場合#!/usr/local/bin/perlの設定はどうするのでしょうか?

    • ベストアンサー
    • CGI
  • CGIを設置しようと思っているのですが

    サーバーはロリポップです。 今CGIを設置しようと思って、 頑張っているのですが CGI設置支援サイトに /usr/local/bin/perl の部分をあなたのサーバーに合わせて変えろといわれたのですが、 ロリポップの場合どうしたらよいかわかりません。 教えてください。

  • CGI設置時に500エラーになります

    CGIを設置しようとしたところ、500 Internal Server Error になります。 共用サーバーIDを使用しています。 CGIファイルは「cgi-bin」の中に入れています。 たとえばこんな簡単なCGIでテストしたのですが、500 Internal Server Errorになってしまいます。 ↓ #!/usr/local/bin/perl print "Content-type: text/html \n\n"; print "Hello"; #!/usr/local/bin/perlを #!/usr/bin/perlにしても結果は同じです。 (サーバーの指定は#!/usr/local/bin/perl) パーミッションは755にしています(705に変えてもダメでした)。 CGIファイルの改行コードはLFにしており、テキスト(ASCII)モードでアップロードしています。 それでも500 Internet Server Errorになります。 サーバーではエラーログが見られないのでみなさんにお聞きしたいのですが、他にどんな原因が考えられるでしょうか?

  • CGIが/cgi-bin/以下にしか設置できないサーバー

    現在使ってるレンタルサーバーが不安定なのでusamimi.info(ttp://usamimi.info/~sakura/cgi-bin/puki/)に移転しようと思っています。 しかし、CGIは/cgi-bin/以下に設置ということでtoshinari.netの2chブラウザ対応掲示板を設置しようとしたのですが動きませんでした。 /cgi-bin/の中にフォルダを作ってしまうのです。 ttp://perl.toshinari.net/cgi/bbs/new2ch/index2.html CGIについてはまったくの素人なんですが、bbs.cgiを開いて ../$bbs/subject.txt などとなっているところを ../../$bbs/subject.txt としてみたんですがサッパリだめでした どうかよろしくお願いします。

専門家に質問してみよう