• ベストアンサー

hi-hoでCGI

こんにちわ。 hi-hoというプロバイダを利用しています。 自分のHP上で自作(というよりも改造)の掲示板を使っているのですが、ファイルロック(flock)を使用すると500番のサーバーエラーが出てしまいます。 ファイルロック部分をコメントにするとエラーは起きません。 プロバイダに転送する前に文法チェックも行っており、シンタックスOKの状態です。 また、自分のPCにApacheをインストールして、動作確認も行っております。 (もちろん、転送時にはPerlの場所は書き換えてます。) しょうがないので、現状では自分のHPの掲示板はファイルロックなしで動かしております。 また、最近掲示板に、1ページに表示する書き込み数を制限し、過去ログがある場合は「次へ進む」リンクがあるというような機能を付けてみたところ、これも自分のPC上では動作するのですが、hi-hoに転送するとサーバーエラーが出てしまいます。 何かhi-hoには、Perlの使用に制限があるのでしょうか? hi-hoのHPでは、上記のような制限があるとは特に書かれてはおりません。 http://home.hi-ho.ne.jp/home/service/rental_web.html hi-hoに関する詳しい情報をお持ちの方がいらっしゃいましたら、ぜひぜひ教えて下さい。 また、そういった内容のHPをご紹介していただくのでも結構です。 また、こういった質問はプロバイダにしても良いものなのでしょうか? hi-hoのHPには、次のように書かれていました。 『ホームページの作成、登録、CGIの作成及びサンプルCGIのカスタマイズに関するサポートはおこなっておりませんので、関連書籍や関連Webページ等をご覧になり、お客様ご自身でおこなって頂きますようお願い致します。』 質問が長くて申し訳ございません。 よろしくお願い致します。

  • Perl
  • 回答数4
  • ありがとう数10

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

  • ベストアンサー
  • marimo_cx
  • ベストアンサー率25% (873/3452)
回答No.4

> Hi-HoのHPでは、シンボリックリンクは使用できない旨、書いてあります。 おっと失礼、そういえばそれの回避策を考えているうちに すっかり忘れてしまったんでした、面目ない。^^; 何はともあれ、動作おめでとうございます。 多分、恐らくですが、使えないサブルーチンの中にシス テム標準という前提で、perlについてくるものを使って いたのかも知れません。その部分を気にして追って見て はと思います。 marimo_cx

chicchi
質問者

お礼

何度もご親切に、本当にありがとうございます~。 削除したサブルーチンは、3つほどでしたのでじっくり追ってみます。 本当にお世話になりました。 ありがとうございました。

その他の回答 (3)

  • marimo_cx
  • ベストアンサー率25% (873/3452)
回答No.3

締め切ってませんね、答えようと思っていたのにすっかり 忘れていました(汗)。次の質問が出てしまったので焦り ました。 flockは何の目的で使っているのでしょう? 掲示板ならシンボリックリンクでロックファイルを使えば 解決できるはずです。hi-hoの説明見てきましたが、cgiは ファイル所有者権限で実行されるということで、nobodyよ りかなりやりやすいはずです。 使えない関数を無理に使おうとせず、他のアプローチをし ましょう。 あと、hi-hoはPerl4ですけど、その辺りは考慮して作業さ れていますか? marimo_cx

chicchi
質問者

お礼

何度もご親切にありがとうございます。 flockは掲示板に書き込む際の、ファイルロックに使用しています。 シンボリックリンクというのが何か、分かっていないのですが(調べておきます・・・。)、Hi-HoのHPでは、シンボリックリンクは使用できない旨、書いてあります。 Perl4で使用できない関数などは使用していない、というCGI本の言葉を信じて作っております。(笑) >使えない関数を無理に使おうとせず、他のアプローチをしましょう。 そうですね。 この質問をした当初の目的は、Hi-Hoでは何が使用できないのかが分かっていれば、初めから他のアプローチで作れるのになぁ、と思い、他力本願ではありますが、情報をお持ちの方がいらっしゃったら教えていただければ、と思い質問したのでした。 とりあえず、もう少し頑張ってみます。 ありがとうございました。

chicchi
質問者

補足

本当に本当に申し訳ないです。 別の質問の回答で、marimo_cxさんがおっしゃっていたとおり、粘りが足りなかったようです。 もう一度試してみようと思い、サブルーチンが書いてあるbbs-lib.plというファイルを呼び出すのを止めてみたところ、見事にエラーが出ませんでした。 (require 'bbs-lib.pl';とそれに関係する部分をコメントにしてみた。) そこで、bbs-lib.plの中に、使用していないサブルーチンがいくつかあったので、それを削除してから、再度bbs-lib.plの呼び出し、処理の実行をしてみたら、これまた正常に動作いたしました。 結論として、bbs-lib.plの中の削除したサブルーチンのどこかにエラー(?このファイルもシンタックスOKだったのですが・・・。)があり、それが原因で動かなかったようです。 $num = $all[0] + 1;もきちんと動きました。 また、flockの変わりにロックファイルを作るというやり方でやってみたら、それもきちんと動きました。 本当に本当に本当にごめんなさい。 いろいろお騒がせした結果がこれとは、情けなくて恥ずかしくて申しわけなくて、涙が出そうです。 安易に人(プロバイダ)のせいにせず、100%のチェックをかけるべきでした。 削除したサブルーチンのどれが問題だったのか、ちゃんと突き止めて今後の参考にしていきたいと思います。 貴重なお時間をこんなバカな質問のために使わせてしまって、申しわけございませんでした。 本当にありがとうございました。

noname#8250
noname#8250
回答No.2

私も以前Hi-HOを使わせてもらっていました。あそこは CGI置くには面倒なんですよね。私はとうとう諦めました。(^^ゞ さてCGIを置く方法についての解説サイトですが、Hi-HOでそういったサイトを作っている方がいるようです。Hi-HOの特殊な事情も熟知していらっしゃるようですので参考になさってみてはいかがでしょうか? # 私の知識では全く参考にならないでしょうから...

参考URL:
http://www.amy.hi-ho.ne.jp/tomoki/,http://www.eva.hi-ho.ne.jp/himetarou/cgi/cgi.html
chicchi
質問者

お礼

早速のご回答ありがとうございます! 参考URL、拝見いたしましたが、結局、プロバイダを変えようかな・・・という結論に達しました。(笑) せっかくご返答いただいたのに、すみません。 私も面倒になってしまいました。(笑) ありがとうございました。

回答No.1

500のエラーって、Internal Server Error(多少表示は違うかもしれないですけど)ですから、flockの使い方に問題があるような気がします。で、確かflock()って、OSに依存していて、プラットフォームによって、微妙に実際の動作が違うので、flock()で制御しようとしているファイル(またはファイルの指定の仕方)に問題があって、その際の振る舞いが予想と違っていて、正しく動作していないのではないでしょうか。 #perl -c hogehoge.pl で文法があっていることは確認済みなのですよね?

chicchi
質問者

お礼

早速のご回答ありがとうございます! >確かflock()って、OSに依存していて、プラットフォームによって、微妙に実際の動作が違うので、flock()で制御しようとしているファイル(またはファイルの指定の仕方)に問題・・・ むむむ。UNIX系のサーバじゃないと、flockは使用できないとは聞いたことがあるのですが、微妙に動作が違うとは・・・。 ちょっと現状の私のレベルでは、どう回避してよいものやら・・・。 >#perl -c hogehoge.pl で文法があっていることは確認済みなのですよね? MS-DOSプロンプトで文法チェックをしています。 最後にシンタックスOKが出ています。 今日いろいろ確認しておりまして、どうも配列変数の値を指定するとまたまたエラーが出るようです。 書き込みに番号を振りたくて、$num = $all[0] + 1;というようにしてたのですが、エラーが出るので、いろいろコメントにしたりしてチェックしていたら、ここの部分をコメントにするとエラーが出なくなりました。 もう、疲れてきてしまって(笑)プロバイダを変えようかな、と思い始めました。 ご丁寧に回答していただいたのに、すみません。 ありがとうございました。

関連するQ&A

  • 自作CGIに使用制限がないプロバイダ

    こんにちは。 現在、Hi-hoというプロバイダを利用しています。 Hi-hoでは、CGIに利用にいろいろ制限があり、どうもHi-HoのHP上などで公表されている以外にも、Perlの関数の使用などに制限があるようなのです。 まだ、Perlは勉強し始めたばかりなので、確実ではないのですが、flockを使用したり、配列変数の要素を指定したりすると(例えば、ログに番号を振りたくて$num = $all[0] + 1;のように書くと)、500番の内部サーバーエラーが出てしまいます。 これらを、コメントにすると、きちんと動き出します。 Apacheを自分のPCにインストールしているのでローカルで動作確認できるのですが、ローカルでOKでも、さらにHi-ho上で動くかどうかを確認し、動かない場合は、コメントにしてみてどこが問題なのかを調べ・・・、となると電話料金もバカになりません。 そこで、CGIの利用に制限がないプロバイダに乗り換えようかと思っています。 Hi-Hoのように、CGI可と書いてあっても、制限があるプロバイダもありますので、現在、自作のCGIを使用している方で、そのプロバイダを利用していてCGIの使用上、特に困ったことはない、という方がいらっしゃいましたら、ぜひそのプロバイダを紹介していただけないでしょうか? (東京の多摩地区に住んでおります。申しわけございませんが、地方限定のプロバイダはご紹介いただかなくて結構です。) ちょっと質問文が長くなってしまいました。すみません。 よろしくお願い致します。

  • hi-hoの掲示板CGIについて

    hi-hoの掲示板CGIを利用してBBSを作成しているのですが、標準サービスでは、「お名前」、「E-Mail」、「URL」、「書き込み」の欄しか備わっていません。 これに加えて、「タイトル」、「文字色」、「添付ファイル」、「暗証キー」の欄も入れたいのですが、どのように編集したらよいでしょうか。 ご存知の方、教えてください。よろしくお願いします。

  • HI-HOのアクセスカウンターで素材やさんの画像を使いたい

    HI-HOのプロバイダーでアクセスカウンターを使っています。この画像が硬いので素材やさんの画像を使いたいのですが、参考URL等見てもCGIとかperlとかからもう難しくてわかりません。具体的に書き換える方法をご存知の方よろしくお願いします。

  • Hi-hoで画像を・・・

    こんばんわ。 Hi-hoで画像を使った掲示板などを設置する時に 画像がいれてあるディレクトリを掲示板ファイルに記しても 画像が表示されないんです。 どうしてでしょうか? (フルパスでかいてます。最後を/で閉じてます)

    • ベストアンサー
    • CGI
  • Fortunefieldの掲示板CGI

    Fortunefield http://www.gem.hi-ho.ne.jp/fortunefield/ の掲示板CGI「ffBull」を設置しようと思っているのですが、うまくいきません。「HTTP 500 内部サーバーエラー」というメッセージが表示されます。 プロバイダはhi-hoなのですが、hi-hoで掲示板CGIを設置する場合は、特別な決まりがあるようです。 初心者ですので、なかなか解決ができません。どのような変更をすればいいのか、また、設置の方法など、ご存知の方、ご教授ください。よろしくお願いします。

  • hi-hoでアフィリエイトができるのかどうか?

    自分が運営しているHPでアフィリエイトプログラムもつけようかと考えています。 現在 ぷららとhi-ho そして ヤプログを利用していて ぷららとヤプログは利用規約を読んで 大丈夫だということがわかりました。 しかし hi-hoは 私の読み方が悪いのか よいのかだめなのかが まったくわかりません。 よいのか だめなのか そして 利用規約のどの部分が それに該当するのか、 わかる方がいらっしゃったら 教えてください。

  • cgiがうごきません

    ApacheとPerlをインストールしてローカルでの動作確認OKなのですが、HP上では機能しません。 プロバイダー側が作った「アクセス権が認められてません ・・・どうたら、こうたら」のメッセージがでます。 すべてのファイル(cgi,html,pl・・)をEUC(文字)CR+LF (改行)にして、アスキーモードでアップロードしました。 Perlパスやパーミッションは間違いないとは思うのですが 、アクセスすると凄い文字化けになっています。掲示板は機能しません。FTPはFFFTPですので自動改行すると思うの ですが、コードの設定に関係があるのでしょうか? 私はWin98,プロバイダーはUNIX系です。それから、Apache とPerlを使ってエラーを調べられるようなことを聞いたの ですが、どのようにするのでしょうか?お願いします。

    • ベストアンサー
    • CGI
  • 自前サーバでCGIを~

     まずはLAN内だけで掲示板などのCGIを実行できるようにしてみよう、ということでApacheを使ってCGIの設定をしているんですが、ブラウザからCGIファイルを起動してもInternal Server Errorと出てしまいます。よってそれ以前ということで・・・  コマンドラインから「perl test.cgi」のようにCGIファイルを実行してみるとちゃんと動作するんですが、「type -a perl」で検索したフルパスをそのままCGIファイルに「#!/usr/bin/perl」などのように書いても、ファイルがコマンド化されてくれません。でも、perlの実行ファイルは存在していました。  これは、どうすれば解決できるのでしょうか?

  • ヘッダHTMLファイルが開きません

    はじめまして。HI-HOユーザです。今回、ApeboardというCGIで掲示板を作りたいと思い、まずダウンロード。試しになにもいじらないで動作確認をしようと、すべてのファイルをFTPして確認しようとしたところ、ヘッダHTMLファイルが開きませんとエラーが出てしまいます。なにひとついじってないしheader.htmlも送ってあります。どういった原因が考えられるでしょうか。教えてください。よろしくお願いします。

    • ベストアンサー
    • CGI
  • JavaScriptが使えないプロバイダってありますか?

    JavaScriptを使ったホームページを作りたいと思っています。 今、So-netとHi-hoとのどちらかと思っているのですが、 JavaScriptが使えないプロバイダーってあるのでしょうか? CGIは制限されているプロバイダーが多々あるようなのですが?

専門家に質問してみよう