![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
こんにちは。
現在サイトを立ち上げて掲示板を設置しようと考えています。
http://park8.wakwak.com/~da101/other/heppokobbs/ …
色々探した結果上記のスクリプトが気に入ったのですが、
此方が利用しているサーバでは
flock関数が使えないとの事で利用出来ませんでした。
上記の物を改造出来れば一番良いのですが、
残念ながら自分にはperlの知識は殆どありません。
そこで無茶なお願いですが、
上記の様な形式のflock関数を使わない掲示板を
教えて頂けませんでしょうか。
宜しくお願いします。
No.6ベストアンサー
- 回答日時:
時間が出来たので試してみました。
結論から云えばそのままで動作しました。
配布元の説明を参考にアップすると
確かに「ファイルがロックされています」と表示されます。
で、lockdirのフォルダをbbsフォルダの中にして、
その中にlockfileを入れると正常に動作しました。
つまり、フォルダやファイルの位置が間違えていたと云う事になりますね。
パーミッションは、
lockdir [777]、lockfile [664]or[666]
lockfileはどちらでも良いようです。
dinit.cgiの修正をお忘れ無く。
管理人パスワードなどの設定がありますので。
私が試したのはinfoseekですが、
多分、他サーバでも動作すると思います。
久しぶりに、perlのコードをマジマジと見ました。
結構忘れているんだなぁ・・・と自分自身に感心(^^;;
でも、良い気分転換&勉強になりました。
参考になれば幸いです。
何度も本当にありがとうございます。
わざわざすみません。
こちらのサーバでも試してみた所、
正常に書き込むことが出来ました!
設定等も済ませて早速実用化して行きたいと思います。
今回の件ではお世話になりました。
正直質問当初はこのスクリプトは諦めていたのですが、
貴方の助けのお陰で利用出来る形まで持って行く事が出来、
感謝の気持ちでいっぱいです。
本当に助かりました。ありがとうございました。
No.5
- 回答日時:
サーバ運営会社が分からないという事であれば、
致し方ないです。
777.666でも駄目という事ならば、
perlの書式の問題でもありますね。
>サブルーチンを呼び出している部分をコメント化し、
その通りです。
ただし、ファイルロックが無くなりますので、
同時に書き込みなどをするとログが壊れる可能性はあります。
それ以前に、呼び出し部分を無効化して正常動作するかの問題もあります。
現在動作してる他のCGIがあるとの事ですが、
それらにはファイルロックが無いのでしょうか?
d-bbsのファイルロック部分は数カ所しかありませんので、
ファイルロック部分を入れ替える方法が一番確実かも知れません。
私自身も試せればいいのですが、
何せ時間が無く、perlからもしばらく離れていますので、
ほとんど覚えていないんです。
No.4
- 回答日時:
lockdirフォルダとlockfileのパーミッションはどうなっていますか?
また、契約されているサーバーは大手?
それとも地方サーバでしょうか?
無料サーバなどでも、lockdirフォルダは「777」、
lockfileは「666」なんて事もあります。
これはこれで危険なんですけどね。
どうしても書き込みが出来ない場合ですが、
スプリクトを修正するしか方法は無いでしょうね
flockの部分で引っ掛かっているのかも知れません。
dbbs.cgiのスプリクトの最後あたりに、
「sub my_flock」と「sub my_flock」がありますが、
これはサブルーチンですのでそのままにしておいて、
「my_flock」と「my_flock」がサブルーチンを呼び出している部分ですが、
これらをコメント化するとどうなるかです。
my $lfh = my_flock()~とか、
my_funlock($lfh)とか
検証していませんので何とも云えませんが・・・
何度も御助言本当にありがとうございます。
lockdirフォルダは777、lockfileは664です。
777.666でも試しましたがやはり無理でした。
サーバは私自信が借りた物ではなく、
上の者が借りた物の一部を使わせて貰っている形なので、
詳しい事は分かりません。すみません。
言い訳がましい様ですが、
私perlの知識は殆ど無いもので…
素人の理解ですが、
「sub my_flock」と「sub my_funlock」の
サブルーチンを呼び出している部分をコメント化し、
その呼び出しを一時的に無効化して正常に書き込めるかどうか、
という事ですか?
No.3
- 回答日時:
>"ERROR! ファイルがロックされています。
">と出てやはり正常に利用する事が出来ませんでした。
書き込みはともかく、表示のみなら基本的には動作する訳ですね?
スプリクトの内容までは未確認ですので、
何とも言い難いですが、
同じperlでも環境によって動作しない場合もあります。
>パーミッションは配布サイトの通りに設定しました。
パーミッションはサーバーによって違いますので、
配布元が正しいとは限りません。
独特な設定値をするサーバもあります。
お使いのサーバのパーミッションを確認する必要があります。
御助言ありがとうございます。
はい。表示だけはcss等もきっちり読み込み
全く問題無く動作します。
パーミッションは現在動作してる他のCGIと併せつつ、
確認してみましたが恐らく問題は無いと思われます。
No.2
- 回答日時:
RSS出力機能付き掲示板ですか?
d-bbs Ver.0.19c
最近増えていますね、こういうの。
で、ざっと見ただけですが、
本来のflock関数は使っていないようです。
ANo.#1さんの書かれた「ファイルによるロック方法」で実現しているみたいです。
本来のflock関数(排他的制御)もファイルによるロック方法も
総称してflockと呼ばれているようですね。
本来、perlに実装されたflock関数が無ければ無理ですが、
ファイルによるロック方法の疑似flock関数なら大丈夫じゃないでしょうか?
あとは、Perlのパス指定、jcode.pl(ライブラリ)の有無、
パーミッションなどの問題がありますけど。
この回答への補足
御助言ありがとうございます。
そうです。その掲示板です。
どうやら私がflockなるものを
しっかり理解出来ていなかったようですね。
すみません。
とりあえずサーバに上げてみましたが、
CGIは一応動作するのですが、
試験的に書き込もうとすると、
"ERROR! ファイルがロックされています。"
と出てやはり正常に利用する事が出来ませんでした。
perlのパスは他CGIは動作しているので、間違いないと思います。
上げたjcode.plを削除してみた所
CGIは動作しなくなりましたので、
jcode.plは正しい場所に上げていると思います。
パーミッションは配布サイトの通りに設定しました。
私としてもこのスクリプトが使えれば、
良いに越した事は無いのですが中々難しいですね。
No.1
- 回答日時:
以前同じようなことで悩んだことがあります。
知識が無かった頃は、flockを完全に消して
運営してましたが、訪問者も少なく、それほど読み書きもしなかったので、問題はありませんでした。
そもそもflockというものは同時刻にプログラムにアクセスされたときにパニックしてしまうものだと考えてよいと思います。
もし、どうしてもflockの変わるものを使いたいなら
ファイルによるロック方法が簡単かと思います。
これは、
openのあとのロックに
lockというファイルがあるか見に行きます。
もしなければ lockというファイルを作成し
あれば sleep で一時停止した後 もう一度みにいきます。
lockファイルがある間に
ファイルに書き込みを行い
おわったらlockファイルを消す。
というものです。
御助言ありがとうございます。
私も最初にそれを考えました。
しかしログが破損するのは、
やはり痛いので念には念を入れて行きたい所です。
削るだけならどうにか私にも出来るのですが、
継ぎ足すとなるとやはり難しいものがあります。
しかし原理は大体把握出来ました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS WEB上で文書のアイコンを配置する方法 2 2022/09/03 13:01
- 訴訟・裁判 2ちゃんねるの歴史 からして 認証システム は必要ですか? 1 2022/10/09 05:39
- 教えて!goo なぜこのQA掲示板って回答者は金に糸目をつけない回答をするのか? 7 2023/07/10 17:15
- その他(プログラミング・Web制作) 掲示板専用スクリプト(http://php365.com/)などを使わなくてもプログラミング言語のみ 4 2022/06/12 20:44
- 教えて!goo 教えて!goo以外の質問サイトを含め、回答がつく順番を教えて下さい。 2 2022/05/10 13:43
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- PHP 掲示板を資料を参考にして開発中ですが、画像がアップされません? 1 2022/11/21 06:44
- ノートパソコン マウスの問題 2 2022/07/30 18:33
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPにて553エラー
-
Perlの省略可能な書き方
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
CGIでソースがそのままでてしま...
-
-T(汚染モード)でメールが送れ...
-
CGIの起動が遅い
-
HTTP 501未実装 エラーについて
-
gethostbyaddrからリモートホス...
-
ラジオボタンのグループ化
-
perl 矢印演算子 -> の使い方
-
空のファイル
-
VBAでサーバーにアクセスするに...
-
C言語のapacheの設定
-
VBAを使用して、外部サーバのフ...
-
SSI(<!--#exec cmd="./XXXpl")...
-
掲示板のスレッドが消えた!?
-
cgiでのアクセスカウンターの表...
-
ユーザの所属するグループを取...
-
perlからphpを実行して結果を得...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPにて553エラー
-
実行属性って?
-
ftpでuploadのとき上書きとする...
-
Web Diary Professional設置後...
-
UNIX+Apache構成でのWEBアクセ...
-
cgiのパーミッションの設定の仕...
-
自宅サーバでのCGI関係エラーに...
-
パーミッション
-
@niftyでのCGI設定について。
-
CGIの設置方法
-
Namazuのインデックスが作成で...
-
CGIの予約状況システムについて
-
Dreamweaverでのパーミッション...
-
メールフォームCGIの設置について
-
cgiが動きません。今日、メモ帳...
-
jcode.pl のパーミッション
-
cgiの表示アドレス
-
問い合わせメールフォームの不具合
-
mask&0777
-
アクセス制限がうまく動かない
おすすめ情報