CGI-BBS > 電子掲示板 > 簡易BBS > パーミッションに問題あるのでしょうか?


カレッヂ
カレッヂ


質問者 彦ちゃん  投稿日 6/2(土) 14:14:50
お手数かけてすみません。ほかのCGIは動くんですが新しく導入予定のCGIが動かないので質問に来ました。
/Web上からは見えない位置の任意のディレクトリ/
# |
# |-- /data/ <777>
# |-- /tmp/ <777>
#
# /任意のディレクトリ/
# |
# |-- /htdocs/ <755>
# | |
# | |-- copyright.gif <644> ... ロゴ用画像(設置しなければCGI出力される)
# | |-- pin.gif <644> ... 返信記事マーク用画像
# | |-- help.html <644> ... 使い方HTML
# |
# |-- bbs.cgi <755> ... このプログラム(ファイル名は任意)
# |-- cgi-lib217.pl <644> ... v2.17以降(※2)
# |-- crypt.cgi <755> ... bbs.cgiの初期設定(管理者用暗証番号の暗号化)に使う
# |-- jcode.pl <644> ... v2.0以降(※2)


というふうに設置方法書いて有るんですが、下記の私の今の構成はこうなってます。

/bbs_sp/ <777>
|
|-----/tmp/ <777>
|-----/data/ <777>
|-----/minibbs/ <777>
|
|---bbs2.cgi <755>
|---crypt.cgi <755>
|---cgi-lib217.pl<644>
|---jcode.pl<604>
|---/htdocs/<755>
|
|---help.html<644>
|---pin.gif<644>
|---copyright.gif<644>

なおtmpはダウンロードの際に含まれていないので新規フォルダで作成しました。
なにか問題点ありましたら是非教えて下さい

設置先
http://members3.tsukaeru.net/nobuyuki/bbs_sp/minibbs/bbs2.cgi

質問者 彦ちゃん  [削除]  投稿日 6/2(土) 14:17:06
今(14:00)は使えるネットのサーバーがダウンしてますが先日からうまく表示出来てません。トクトクのサーバーでもパーミッション変えて設置試してるのですがやはりうまくいきません
回答者 呑兵衛  [削除]  投稿日 6/2(土) 20:37:41
呑兵衛といいます。

うまくいかないエラーの内容を教えてください。
それから各ディレクトリへのパスは通っていますでしょうか。
/bbs_sp/  が cgi を置くディレクトリならば、
pin.gif や copyright.gif はサーバーの仕様によっては cgi とみなされる設定になっている
かもしれませんので、再現されないかもしれません。
通常の html が置かれるディレクトリに置くなどするといいと思います。
質問者 彦ちゃん  [削除]  投稿日 6/3(日) 07:44:00
使えるネットがまだ復旧していないのでトクトクの方で説明させてもらいます。
トクトクは #!usr/bin/perl で777・666が禁止対象になっていますので多少はいじりました。が構成は同じです。

設置先http://www16.tok2.com/home/puka2/cgi-bin/bbs_sp/minibbs/bbs2.cgi
<この設定>

/bbs_sp/ <701>(CGIを置くディレクトリ)
|
|-----/tmp/ <701>
|-----/data/ <701>
|-----/minibbs/ <701>
     |
     |---bbs2.cgi <700>
     |---crypt.cgi <700>
     |---cgi-lib217.pl<644>
     |---jcode.pl<644>
     |--- /htdocs/<701>
         |---help.html<644>
         |---pin.gif<644>
         |---copyright.gif<644>

CGI内部の設定(抜粋)ではこれだけ最初にしてくださいと書いてあります
# 初期設定
###############################################################################

# ↓各ライブラリを設定する

require "./jcode.pl";
require "./cgi-lib217.pl";

# ↓/data/ディレクトリの場所を設定(サーバパス)

$base_path = "../data/";

# ↓/tmp/ディレクトリの場所を設定(サーバパス)

$tmp_dir = "../tmp/";

サーバパスに問題があるのでしょうか?1階層上だからこれでいいと思うんですが。

また htdocsの中身がCGIと誤認されることがあるということですが、それならもう一つ上の階層にあげればいいということでしょうか?

回答者 呑兵衛  [削除]  投稿日 6/3(日) 10:02:12
呑兵衛です。

ページを拝見した限りでは
http://www16.tok2.com/home/puka2/cgi-bin/bbs_sp/minibbs/htdocs/help.html
は見れますし、copyright.gif も再現できました。

以下の設定が正しいか再度の確認をしてみてください。

$reload = "http://設置したURL/bbs.cgi";
$SETUP{'bye'} = "http://あなたのホームページなど/~user/";
$sendmail = '/usr/sbin/sendmail';
$UUENCODE = "/usr/bin/uuencode";
サーバーによってはsendmailが使えない設定になっている場合もあります。

それから
bbs2.cgi <700>
crypt.cgi <700>
とあるようですが、755の設定ではだめなのでしょうか。
質問者 彦ちゃん  [削除]  投稿日 6/4(月) 06:44:31
何度も回答ありがとうございます。
トクトクはパーミッションの制限のほか、sendmailも使用できないようです。
sendmail使用できないので返信メール設定とかは一切いじっていません。
ここにも問題があるのでしょうか?

「トクトクで推奨するパーミッション 」(参考)

CGI 700(777,766,722では動作しません)
CGIから読み書きするファイル 600
CGIでファイルを作成するためのディレクトリ(フォルダ) 701
CGIを置くディレクトリ 701(777,766,722では動作しません)

これは推奨の数字なので755でも設定が合えばいいと思うのですが?
707や745,755とかも試したりしています。


#$reload = "http://www16.tok2.com/home/puka2/cgi-bin/bbs_sp/minibbs/bbs2.cgi";

↓掲示板から抜けるためのリンク先とリンク名の設定

$SETUP{'bye'} = "http://www16.tok2.com/home/puka2/cgi-bin/bbs_sp/minibbs/bbs2.cgi";
$SETUP{'bye_name'} = 'ホームページへ';


# ↓/htdocs/ディレクトリの場所を設定(サーバパス) ... URLではなくサーバ内部のパス

$image_path = "./htdocs/";

ここも確認・修正しましたが・・・以前エラーのままです(TT)
質問者 彦ちゃん  [削除]  投稿日 6/4(月) 06:47:16
あっ戻り先はトップだから

$SETUP{'bye'} = "http://www16.tok2.com/home/puka2/";
$SETUP{'bye_name'} = 'ホームページへ';


ですね。訂正します

質問者 彦ちゃん  [削除]  投稿日 6/4(月) 07:33:14
たびたびの追加ですいません。
使えるネット復旧したようですので、パーミッション設定楽なこちらでもやってみたところcrypt.cgiは作動し、パスワード設定し暗号化して埋め込むとこまで進みました。

これでbbs2.cgi( cgi設定変えるの大変なので、使えるネットはsisupuri.cgiに名称変更)も動くと思ったのですが、やはりエラーでした。

それでKENTさんとこのPerlCheckのcgiを使って探索したらエラー箇所がこんなに出てきました。もしわかるところ有ればお願いします。(syntax OK と出力されれば文法上正しいことになります)

Backslash found where operator expected at ./sispuri.cgi line 1, near "rtf1\"
syntax error at ./sispuri.cgi line 1, near "rtf1\"
Backslash found where operator expected at ./sispuri.cgi line 1, near "ansi\"
Backslash found where operator expected at ./sispuri.cgi line 1, near "ansicpg932\"
Backslash found where operator expected at ./sispuri.cgi line 1, near "deff0\"
Backslash found where operator expected at ./sispuri.cgi line 1, near "deflang1033\"
Backslash found where operator expected at ./sispuri.cgi line 1, near "f0\"
Backslash found where operator expected at ./sispuri.cgi line 1, near "fnil\"
Backslash found where operator expected at ./sispuri.cgi line 1, near "fcharset128 \"
        (Do you need to predeclare fcharset128?)
Scalar found where operator expected at ./sispuri.cgi line 179, at end of line
  (Might be a runaway multi-line '' string starting on line 1)
        (Missing operator before ?)
Scalar found where operator expected at ./sispuri.cgi line 179, at end of line
        (Missing operator before ?)
Scalar found where operator expected at ./sispuri.cgi line 179, at end of line
        (Missing operator before ?)
Backslash found where operator expected at ./sispuri.cgi line 186, near "cgi\"
  (Might be a runaway multi-line // string starting on line 179)
String found where operator expected at ./sispuri.cgi line 198, near "$SETUP\{'title'\} = ""
  (Might be a runaway multi-line "" string starting on line 186)
        (Missing semicolon on previous line?)
Backslash found where operator expected at ./sispuri.cgi line 198, near "$SETUP\{'title'\} = "\"
        (Missing operator before \?)
Bad name after bye' at ./sispuri.cgi line 202.


回答者 呑兵衛  [削除]  投稿日 6/4(月) 14:42:19
こんにちは。

KENTさんのところのものは触ったことが無いのではずしてるかもしれませんが、
このエラーを見る限りtelnetでshell loginした時、perl -c コマンドを実行した時の
エラーの吐き出しに似てますね。

で、それを前提に・・・
まずスクリプトの1行目を触っていらっしゃいませんか。
1行目には
#!/usr/local/bin/perl なり #!/usr/bin/perl などサーバーに指定されている
perlのパスが ; なしで記述されていなければなりません。当然、この記述の前に
改行があってもだめです。

それから、これは行のどこかに最後に記述する }や ; とか / 等が抜け落ちていて
コマンドが区切りなしに続けて読まれているのではないかと推察されます。
そのあたりの点検をしてみてください。
質問者 彦ちゃん  [削除]  投稿日 6/5(火) 00:37:45
主原因?が判明しました。

1行目に改行等入れた心当たりはないのですが、念のため新たにダウンロードし、何もいじらずにアップしたところ無事作動しました。それで基本設定を少しずつ加えてアップしてみたらエラーが出ました。

ここでCGIのファイルサイズが72kから125kに倍に増えているのに気づきました。というのも普段CGIの編集はメモ帳で行っており、今回はサイズが大きいため自動的にワードパッドにで作業してたわけです。保存するときにそのまま保存すると「!テキスト形式で保存すると書式情報が全て失われます」と警告が出るので慌ててかわりに「リッチテキスト形式」で保存していたんです。

この結果サイズが125kになったものだと思われます。
それに気づいたので、試しに書式情報がダメになってもいいからテキスト形式で保存してみようととやってみたらうまくいったのです。

試験的に掲載実験してみたところ今は問題ないようです。
お手数かけてスイマセンでした。またなにかあればお願いします。

設置先http://members3.tsukaeru.net/nobuyuki/bbs_sp/minibbs/bbs.cgi

返信(回答)する


Web裏技