こんにちわ。
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. …

hi-hoに関する詳しい情報をお持ちの方がいらっしゃいましたら、ぜひぜひ教えて下さい。
また、そういった内容のHPをご紹介していただくのでも結構です。

また、こういった質問はプロバイダにしても良いものなのでしょうか?
hi-hoのHPには、次のように書かれていました。
『ホームページの作成、登録、CGIの作成及びサンプルCGIのカスタマイズに関するサポートはおこなっておりませんので、関連書籍や関連Webページ等をご覧になり、お客様ご自身でおこなって頂きますようお願い致します。』

質問が長くて申し訳ございません。
よろしくお願い致します。

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

A 回答 (4件)

> Hi-HoのHPでは、シンボリックリンクは使用できない旨、書いてあります。



おっと失礼、そういえばそれの回避策を考えているうちに
すっかり忘れてしまったんでした、面目ない。^^;

何はともあれ、動作おめでとうございます。
多分、恐らくですが、使えないサブルーチンの中にシス
テム標準という前提で、perlについてくるものを使って
いたのかも知れません。その部分を気にして追って見て
はと思います。

marimo_cx
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/02/01 21:35

締め切ってませんね、答えようと思っていたのにすっかり


忘れていました(汗)。次の質問が出てしまったので焦り
ました。

flockは何の目的で使っているのでしょう?
掲示板ならシンボリックリンクでロックファイルを使えば
解決できるはずです。hi-hoの説明見てきましたが、cgiは
ファイル所有者権限で実行されるということで、nobodyよ
りかなりやりやすいはずです。

使えない関数を無理に使おうとせず、他のアプローチをし
ましょう。

あと、hi-hoはPerl4ですけど、その辺りは考慮して作業さ
れていますか?

marimo_cx

この回答への補足

本当に本当に申し訳ないです。
別の質問の回答で、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%のチェックをかけるべきでした。
削除したサブルーチンのどれが問題だったのか、ちゃんと突き止めて今後の参考にしていきたいと思います。

貴重なお時間をこんなバカな質問のために使わせてしまって、申しわけございませんでした。
本当にありがとうございました。

補足日時:2001/02/01 18:02
    • good
    • 0
この回答へのお礼

何度もご親切にありがとうございます。

flockは掲示板に書き込む際の、ファイルロックに使用しています。
シンボリックリンクというのが何か、分かっていないのですが(調べておきます・・・。)、Hi-HoのHPでは、シンボリックリンクは使用できない旨、書いてあります。

Perl4で使用できない関数などは使用していない、というCGI本の言葉を信じて作っております。(笑)

>使えない関数を無理に使おうとせず、他のアプローチをしましょう。
そうですね。
この質問をした当初の目的は、Hi-Hoでは何が使用できないのかが分かっていれば、初めから他のアプローチで作れるのになぁ、と思い、他力本願ではありますが、情報をお持ちの方がいらっしゃったら教えていただければ、と思い質問したのでした。

とりあえず、もう少し頑張ってみます。
ありがとうございました。

お礼日時:2001/02/01 17:11

私も以前Hi-HOを使わせてもらっていました。

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

参考URL:http://www.amy.hi-ho.ne.jp/tomoki/,http://www.ev …
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/02/01 16:00

500のエラーって、Internal Server Error(多少表示は違うかもしれないですけど)ですから、flockの使い方に問題があるような気がします。

で、確かflock()って、OSに依存していて、プラットフォームによって、微妙に実際の動作が違うので、flock()で制御しようとしているファイル(またはファイルの指定の仕方)に問題があって、その際の振る舞いが予想と違っていて、正しく動作していないのではないでしょうか。

#perl -c hogehoge.pl で文法があっていることは確認済みなのですよね?
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます!

>確かflock()って、OSに依存していて、プラットフォームによって、微妙に実際の動作が違うので、flock()で制御しようとしているファイル(またはファイルの指定の仕方)に問題・・・
むむむ。UNIX系のサーバじゃないと、flockは使用できないとは聞いたことがあるのですが、微妙に動作が違うとは・・・。
ちょっと現状の私のレベルでは、どう回避してよいものやら・・・。

>#perl -c hogehoge.pl で文法があっていることは確認済みなのですよね?
MS-DOSプロンプトで文法チェックをしています。
最後にシンタックスOKが出ています。

今日いろいろ確認しておりまして、どうも配列変数の値を指定するとまたまたエラーが出るようです。
書き込みに番号を振りたくて、$num = $all[0] + 1;というようにしてたのですが、エラーが出るので、いろいろコメントにしたりしてチェックしていたら、ここの部分をコメントにするとエラーが出なくなりました。
もう、疲れてきてしまって(笑)プロバイダを変えようかな、と思い始めました。
ご丁寧に回答していただいたのに、すみません。
ありがとうございました。

お礼日時:2001/02/01 16:10

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

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

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

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

Qこのホ-ムペ-ジでの質問一覧画面がエラーで出ない

このホ-ムペ-ジですが
マイページ → 関心カテゴリーの質問一覧
を押してもエラ画面ーになり表示出てきません
自分の質問解答履歴は出ます
なぜエラーに ???
宜しくお願い致します

Aベストアンサー

エラーが続出していますね。
更新ボタンを押すと表示されることが多いです。

Qflock関数についてですが、

自分が探した限りでは、どの参考の本にも、あるいはperlについて論述したサイトにもこのことに関する記述がなかったので質問させていただきます。

 flock関数でのファイルのロックなのですが、例えば、Aというperlで組んだcgiプログラムがファイルロックしている最中に、Bという同じディレクトリの中にある別のcgiプログラムが、同じファイルを開けようとしても、ファイルはロックされているものなのでしょうか?それとも、ロックされていない無防備な状態でいると言う事でしょうか?
いろいろ調べて回りましたが、この事についての論述は見当たりませんでした。この事について知っている、あるいは解説されたサイトをご存知だという方、よろしければお知恵を貸してくださいませ。よろしくお願いします。

Aベストアンサー

> ロックされていない無防備な状態でいると言う事でしょうか?
たいていの場合、こっちです。
細かく言えば、「ロックがかかっていても、読み書きしようと思えばできる」という感じ。
ロックのメカニズムは、OS/実行環境に依存している部分があります。詳細は、OSがどのような機能を持っていて、Perlがどのようにコンパイルされているかで変わってきます(逆に言えば、OSの複雑な部分を、Perlのflock()が隠蔽していて簡単に使えるようにしてくれています)。

概要は、Perlのドキュメントperlfunc、perlfaq5、perlopentutなどに書かれてます。
Unix系OSをお使いなら、man flock(2)、fcntl(2)が参考になります。

Qホームページビルダー11で通信エラー(エラーコード:553)がサイト転送時に出ます。

 こんにちは。ホームページビルダー11でサイト転送すると通信エラ
ー(エラーコード:553)が出て、フレーム表示のページも表示され
ていない状態になってしまいます。どうしたらよいですか?

Aベストアンサー

こちらがご参考になるかと

V11 で転送時に「転送エラー」ダイアログが表示されます
http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/key/49256A6A0001F136492572350006E350?opendocument

FTPのエラーメッセージの553ですと、「ファイル名の文法エラー、ファイル名が間違っているため実行できない」という意味ですので
この場合、大抵はファイル名に半角英数以外を使用しているのが原因トモ考えられますので、ご確認を。
ファイル名に使用できるのは半角英数と_-のみです。

ただ、どうもV11の不具合でもあるようですので、ファイル名に問題がない時は、サイト転送ではなくページ転送(FTP)や、フリーソフトのFFFTPなどを使って転送してみた後、ネット上で表示されるかどうか確認するのをおすすめします。

また、後日V11の修正ファイルがIBMで配布されると思いますので、たまに下記サイトをアクセスし、修正ファイルが公開されたらインストールされておかれてください。
http://www-06.ibm.com/jp/software/internet/hpb/

参考URL:http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/key/49256A6A0001F136492572350006E350?opendocument

こちらがご参考になるかと

V11 で転送時に「転送エラー」ダイアログが表示されます
http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/key/49256A6A0001F136492572350006E350?opendocument

FTPのエラーメッセージの553ですと、「ファイル名の文法エラー、ファイル名が間違っているため実行できない」という意味ですので
この場合、大抵はファイル名に半角英数以外を使用しているのが原因トモ考えられますので、ご確認を。
ファイル名に使用できるのは半角英数と_-のみです。

ただ、どうもV11の不...続きを読む

Q掲示板作成

今Perlをつかって掲示板を作ってるのですが何件で次のページに飛ばすみたいなことができません。

一連のソースや説明サイトを教えてください。

Aベストアンサー

> 一連のソース

どのような内容(構成)で作っているのかわからないのでソースを教えてくれというのはムリです。
ですが、考え方なら説明できます。

例えば、ログに100件あったとして1ページあたり10件表示するとします。

・1ページ目はログの頭から10件分表示し終わるまで出力
・2ページ目は1ページ目に表示していた10件分のログを読み飛ばし、11~20件目に相当する10件を表示させます。
・3ページ目は1~2ページ目に表示させていた20件分読み飛ばし、21~30件目に相当する10件を表示させます。

つまり、

(表示させたいページ - 1) × 1ページあたりの表示件数 = 読み飛ばす件数

というようにログを読み飛ばし、1ページあたりに表示させたい件数分を出力するということです。

QWindows1032bitアップデート中にエラーが出ました。second-boot フェーズでエラ

Windows1032bitアップデート中にエラーが出ました。second-boot フェーズでエラーが出ました!全く意味がわかりません?

Aベストアンサー

windows10、windows10anniversary Updateに失敗をする場合は、
タスクトレイを開いてタブのスタートアップを開いて、すべてのアプリを無効にします。
次にもサービスを開いて、Microsoftの製品をすべて無効にします。

windows10 Creators Updateに失敗をする原因
http://freesoft.tvbok.com/win10/problems/trouble_shoot_list_creators_update.html

私のプロフィールにwindowsに関するURLを載せているので、必要な時にURLを開いて操作方法を確認してください。

Qオリジナルの掲示板

レンタルでなくオリジナルの掲示板を作ろうと思うのですがperlについてどこから学んでいけばいいのかわからないのでなにかperlについて学び方やここは覚えた方がいいっていうのをアドバイス下さい。

Aベストアンサー

そうですね
アクセスカウンターは簡単ですし結構学ぶものも多いです。
掲示板もカウンターも基本的にファイル出力しますのでログファイルの生成の方法も学ぶことが出来ます。

出来る限りシンプルなCGIサンプルを参考にすることが理解への早道だと思います。
掲示板とかでも基礎になる部分は同じなので、そこをマスターすれば色々とカスタマイズできます。
いきなり高度なソースみると凹みます(笑)

QC#でテキストボックスとスクロールバーをバインディングしていて、更にエラープロバイダーをセットしエラ

C#でテキストボックスとスクロールバーをバインディングしていて、更にエラープロバイダーをセットしエラーメッセージが出るようになっていてe.cancel=trueを書いています。

やりたいことは、テキストボックス空欄でタブを押下したときにエラーメッセージがでてe.cancel=trueが反応し動作できなくなることです。

現在、テキストボックス空欄でタブを押したときにエラーメッセージは出ますがe.cancel=trueが反応せず、テキストボックス内が空欄→0になり進んでしまいます。
ちなみにバインディングしているスクロールバーの最小値は0に設定しています。

是非ともご教授お願いします(._.)

Aベストアンサー

通常、TextBox内でTabを押下した時、次のコントロールへフォーカスが遷移しますが、遷移しない場合もあります。
(次のコントロールとして認識されるものがない場合もあり得る)

そのため、Tabの制御をValidatingイベントで実装することは非現実的です。

Tab制御を問題視しているのか、Validatingイベントの制御を問題視しているのかがよくわかりません。

以下のようにした場合、フォーカス遷移が行われる際に必ずキャンセルされます。
それはTabキー押下に限った話ではありません。
private void textBox1_Validating(object sender, CancelEventArgs e)
{
errorProvider1.SetError(textBox1, "hoge");
e.Cancel = true;
}

Tabキーの話をしているのならば、PreviewKeyDownイベントで実装し、Tabを入力キーとしてしまって、フォーカス遷移を行わないようにできます。
が、TabがWindowsの仕様と異なることになります。
当たり前ですが、色々制御した結果、ヨシとした場合、それによってフォーカスが遷移するならば、Validatingイベントも走行しますので。
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Tab)
{
errorProvider1.SetError(textBox1, "hoge");
e.IsInputKey = true;
}
}

通常、TextBox内でTabを押下した時、次のコントロールへフォーカスが遷移しますが、遷移しない場合もあります。
(次のコントロールとして認識されるものがない場合もあり得る)

そのため、Tabの制御をValidatingイベントで実装することは非現実的です。

Tab制御を問題視しているのか、Validatingイベントの制御を問題視しているのかがよくわかりません。

以下のようにした場合、フォーカス遷移が行われる際に必ずキャンセルされます。
それはTabキー押下に限った話ではありません。
private void textBo...続きを読む

Q掲示板に不正な書き込み

私のホームページに掲示板を設置しています。
Perlを使ったCGIでなのですがアダルト関係のURLを書き込まれたりします。何とか防ぎたいのですが、プログラムなどで防ぐ対策はありませんか?

Aベストアンサー

改造方法については
ipアドレス 制限 perl とかってキーワードで検索してみると見つかるかも。

それ以前に、まずはお使いのCGIが配布元でバージョンアップされていないか確認してみてはどうでしょうか。
最近はこの手の掲示板SPAMが多く対策が施されている可能性もあります。
対策が施されていなくてもそのCGIの製作者にお願いすればやってくれるかもしれません。

http://swanbay-web.hp.infoseek.co.jp/bbs_spam.html
こちらも参考にどうぞ。

QW-ZERO3 ESの通信エラー

最近、メールの受信が出来なく、手動で受信をかけてもエラ
ーが出る事があります。もちろん、電波状況は良好です。
一度エラーが起きると、メールの受信もネットもできなくなります。
今の所、電池をいったん抜いたら、通信ができるようになりますが、根本的な解決になっていない状態です。同様の障害の復旧方法をご存知の方がおられましたらお願いします。

Aベストアンサー

データバックアップ後、フルリセット
電池裏のリセットおし、Fn+Fキー同時押し&電源ボタン

Qファイルを掲示板に載せたい場合

あるカテゴリー順に並べ替えられた掲示板(Perlで
記載したCGIです)そこにWordなどのファイルを添付
したいのです。
 
データを送るとかはできますが、添付するというのは
できないのでしょうか。

Aベストアンサー

"use CGI_Lite;" で検索するとサンプルスクリプトや参考ページがたくさん見つかります
それらのサンプルを見ても良くわからなければ、一旦諦めて
再度勉強してスキルを高めてから再度挑戦なさってください


人気Q&Aランキング