このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Web共有+MacJPerl5.2+MiniBBS10.31 dataパスは?

発言者:がべじん
( Date Friday, February 02, 2001 04:51:30 )


みなさん、はじめまして。がべじんともうします。よろしくお願いします。
MacOS9.1+Web共有+MacJPerl5.2+MiniBBS10.31にて、BBSを含むサイトを
立ち上げようとしているのですが、DATAのパスがどうしてもうまくいきません。
構成は
#   (Web共有で指定したホームページディレクトリ)
#        |
#        |-- /cgi-bin/
#                |
#                |-- jcode.pl (頭にno I18N::Japanese;付加、MacPerlのテキストで保存)
#                |-- minibbs.cgi(MacPerlのCGIスクリプトで保存)
#                |
#                |-- /data/
#                       |
#                       |-- minibbs.dat(空のテキストファイル)
となっており( jcode.plのエラーにも悩まされましたが、これもこちらのログで解決)
http://mtlab.ecn.fpu.ac.jp/Webcon_archive/981027222404.html
にてお勉強させていただき、
武藤 さん(ってあの 武藤 さんかな…?)のおっしゃるとおり
引用:武藤 さん >>143 require './jcode.pl'; を 'jcode.pl'
引用:武藤 さん >> 167 $tmp_dir = './data'; を 'data'
引用:武藤 さん >>
引用:武藤 さん >> 以下 "$tmp_dir\/$file" を "$tmp_dir\:$file" にする。
にしてみたのですが、相変わらず
>> データが読み出せません.
>>  ブラウザの[戻る]ボタンを押して前の画面に移動してください.
のエラーがでてしまい、困っています。ふぅ…。ずっとやっていて疲れました。
実は、昨日(2000/2/1)の夕方にふとサーバー立ち上げて、それから勉強
はじめたばっかりのウルトラ初心者です(^_^; ここまでが大変だった…
というわけで、なにかおわかりでしたらぜひご教示下さい。
WWWサーバーは
http://gabezing.ath.cx/
悩んでいるBBSは
http://gabezing.ath.cx/cgi-bin/minibbs.cgi
です。落ちていなければ…(^_^;

田中求之 さんからのコメント
( Friday, February 02, 2001 13:12:38 )

試しに BBS にアクセスしてみたら

Diagnostic Output

# Can't locate I18N/Japanese.pm in @INC.
File ':jcode.pl'; Line 1
# BEGIN failed--compilation aborted.
File ':jcode.pl'; Line 1

というエラーメッセージが返りましたが、

>頭にno I18N::Japanese;付加、MacPerlのテキストで保存

という処理がエラーの原因になっているのではないですか?
モジュールを読み込もうとして見つからない、といっているようなんですが
Perl はよく分からないので、詳しい方、フォローよろしく

がべじん さんからのコメント
( Friday, February 02, 2001 13:31:23 )

あ、あれ?(^_^;しまった
上記のエラーなってますね、ごめんなさい。
MiniBBS走って、データが読み出せませんが出るトコまでは
いったのです。これからそこまでは復旧します。ごめんなさい。

がべじん さんからのコメント
( Friday, February 02, 2001 13:43:02 )

MiniBBS走って、データが読み出せませんが出るトコまで
修正しました。どうもすみませんでした。
ここから、どうしたらいいのか、というところです。
(先のエラーは MacJPerl フォルダのディレクトリを
 変えてしまったことが原因でした)

→  http://gabezing.ath.cx/cgi-bin/minibbs.cgi

がべじん さんからのコメント
( Friday, February 02, 2001 14:00:50 )

補足自己レスです。
頭にno I18N::Japanese;付加
は今回もやってます。これがないとエラーがでてMINIBBSが走らない…ので。
MacJPerl 5.2.0r4 J1をダウンロードしたサイトのFAQに従いました。

→  http://world.std.com/%7Ehabilis/macjperl/MacJP5.2ReadMe.j.htm

がべじん さんからのコメント
( Friday, February 02, 2001 14:16:47 )

たびたびの自己レスすみません。
頭にno I18N::Japanese;付加 がない場合、
# /\216([\241-\337])(\216([\336\337]))?/: unmatched () in regexp.
File ':jcode.pl'; Line 608
というエラーがでて MINIBBSが走らないのです。

がべじん さんからのコメント
( Friday, February 02, 2001 15:56:36 )

ほんと、たびたびの自己レスすみません。
自力で解決しました。
ディレクトリを:dataと記述してやったら動きました。
いろんなサイトやログから拾ったポイントがたくさんありました…
それを統合したら動きましたねぇ…
どっか一カ所にまとめて書いてあるといいですね(笑)

→  http://gabezing.ath.cx/cgi-bin/minibbs.cgi

がべじん さんからのコメント
( Friday, February 02, 2001 17:45:19 )

しかし…いまだ、改行の点で解決せず、なのです。
書き込みフォームの中の改行がダブっちゃって<BR><BR>に変換されている。
  $value =~ s/\r\n/\r/g;
  $value =~ s/\n/\r/g;
のところを変えればいいのだと思うのですけど…
でも\nがUNIX、\r\nがWINだから?ええっとこれだと見た感じ
UNIX・WINのコードをMacintosh(\r)に変換してるように
見える?(^_^;あれれ、そんなわけない
じゃぁ、どうすればいいんだろう??

もともとの処理がUNIXだから、\n\nになってるとこを
探せばいいのかな?なんてとんちんかんなのでしょうか…
どなたか、おわかりになりましたらお知恵をお貸し下さい。
cgi歴・自宅サーバー歴十数時間なもので、バカですみません(^_^;

→  http://gabezing.ath.cx/cgi-bin/minibbs.cgi

しあわせのツボ さんからのコメント
( Friday, February 02, 2001 19:51:58 )

MacPerlは\rと\nが逆転しています。
従って、$value =~ s/\n\r?/\r/g; としてやる必要があります。
# この前、MiniBBSの側の会議室でも同じことを書いたような…(^^;

発言中の改行を\rに変換しているのは、\nのままだと
Perlも改行と見なすため、1レコードが複数行になってしまうためです。
この\r方式は移動や編集の時に事故が多いので注意して下さい。

がべじん さんからのコメント
( Friday, February 02, 2001 22:00:27 )

ありがとうございます!
 $value =~ s/\r\n/\r/g;
を
 $value =~ s/\n\r/\r/g;
にしたら、なおりました!$value =~ s/\n/\r/g;
のほうは、変更しなくていいのですよね?
$value =~ s/\r/\r/g;
じゃ意味ないですしね??(^_^;

Macintoshのネットスケープ/IEにてテストしました。次はWINの友達に
テストしてもらいます。
ほんとありがとうございました。ああ、まさに…しあわせのツボでした。(笑)


→  http://gabezing.ath.cx/cgi-bin/minibbs.cgi