■ bbs.cgi(SpeedyCGI)の巻 part1 (2004/12/01-) (112レス)
1-

1: root ★ 04/12/01 17:39 ID:??? AAS
■ bbs.cgi(SpeedyCGI)の巻 part1 (2004/12/01-)

とりあえず、SpeedyCGI化は成功。
しかし、先は長そう。さてどうすべきか。

1) bbs.cgi の改良(再入可能化?)により、speedy -- -r1 以外で起動可能にする
2) speedycgiの設定チューニング(並列度とかいろいろ)

あたりから詰めていくことになるのかなと。

参考スレ:
■ read.cgi(DSO味)の巻 part1 (2004/12/01-)
2chスレ:myanmar
省2
2
(1): root ★ 04/12/01 17:41 ID:??? AAS
…しかし、私はPerlがからっきし(りゃ なので、
Itadaいたり不動の楽しみをお持ちだったりする方々などのお力を、
ぜひお借りしたいところかも、かも。
3
(1): FOX ★ 04/12/01 17:42 ID:??? AAS
あっしも、、、
Perl はワからンのです、はい
4: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo 04/12/01 18:00 ID:??? AAS
一部dso化できればいいんですがねー

今のあばうと処理手順をかいてみてくださいまし
5: FOX ★ 04/12/01 18:07 ID:??? AAS
私なりに考えてみると

1) main はどうかけばいいのか、
2) 変数(とくにグローバル)はどう書けばいいのか、

あたりなんです。
枠組みが理解できれば、書き直す人も増えるかも、
6
(1): FOX ★ 04/12/01 18:10 ID:??? AAS
現在の流れは(bbs.cgi)

test/bbs.cgi ← 小さい導入部、なるべく叩き落せるのはここでやる。
require '本体bbs.cgi' 以降処理は'本体bbs/cgi'へ
ほとんど(多分全部かも)は戻ってこない、どっかで exit;

本体bbs.cgi
いろんな処理をして、どっかで exit; されている
7
(2): ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo 04/12/01 18:21 ID:??? AAS
>>6
まずtest/bbs.cgiは

1)環境変数を整理
2)setting.txtを読み込む
3)ふるい落とし処理
バーボンハウスチェック>bbqまたはbbmチェック>sambaチェック>rockチェック
# バーボンとsambaが機能的に一部かぶっている希ガスのですが・・・

4)その他処理?(なんかあったっけ)

ですかね
8: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo 04/12/01 18:30 ID:??? AAS
>>7
3)のところ(bb?チェックまで)

if(barbon(ip)){
error(barbon);
exit;
}
endif;
if(けーたい)
if(callbbm(id)==だめぽ){
error(bbm);
省8
9: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo 04/12/01 18:42 ID:??? AAS
あ、これ(>>7)じゃちとまずい。いろいろ軽め且つはじき要素が入ってない。
特にrockは本文のチェックが入るから処理が重いと思われなので後回し。

処理の原則は環境変数>別途ファイルに格納されている設定値>本文の順かな
10: FOX ★ 04/12/01 18:44 ID:??? AAS
というか
目的は SpeedyCGI のフル機能を実現するには
どのようにコーディングすればいいか? なんですよ。
11: 名無しさん@お腹いっぱい。 04/12/01 18:51 ID:??? AAS
外部リンク[pod]:perldoc.jp

> speedyが他のリクエストを開始したとき、どのくらいの量のperlの状態が保持されますか?
> グローバルはその値を保持していますか?リクエストの後にデストラクタが走りますか?
>
> グローバルはその値を保持します。リクエストの後は何も破壊されません。 STDIN/STDOUT/
> STDERRはクローズされます -- 他のファイルはそうではありません。 %ENV と @ARGVだけが
> リクエストの間で変更されるグローバルになります。
12
(1): ▲ 某ソレ511 04/12/01 18:59 ID:??? AAS
ファイルハンドルは基本的に毎回クローズすべき、
変数も初期化しないとだめ、か。
%ENVと@ARGVは呼び出された時に
ソースの処理の前に値が代入されるからな、
13: FOX ★ 04/12/01 19:02 ID:??? AAS
bbs.cgi が呼び出されて
その処理が終らないうちに次ぎづぎにbbs.cgi が立ち上がる(呼ばれる)ので
都度初期化するというよりは、完璧に分離しなきゃならないってことかと

つまり スタックを使うしか無いんだと思うんだな、
Perl ではどうやってやるの?
14: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo 04/12/01 19:04 ID:??? AAS
>>12
setting.txtとsamba設定、rockワードリストの読み込みぐらいしかできることがなさそう・・・
固定値はこれらだけのはず・・・
# これらもあやしかったりするけど・・・

perlでスタックはこんなんありました。
外部リンク[html]:www2u.biglobe.ne.jp
15: 名無しさん@お腹いっぱい。 04/12/01 19:09 ID:??? AAS
んにゃ、こっちか。

> 私のperlアプリケーションがspeedyで動くためには変更する必要があるかは、どうすれば判断
> することができますか?あるいは何も変更は必要ないのでしょうか?
>
> 変更する必要があるかもしれません。
>
> グローバルが実行の間で保持されます。例えば永続的なデータベース・ハンドルを保つという
> ことではいいことかもしれませんが、あなたのコードがそれらが未定義であることを想定して
> いればよくありません。
>
省13
16: ▲ 某ソレ511 04/12/01 19:14 ID:??? AAS
AA省
17
(1): 名無しさん@お腹いっぱい。 04/12/01 19:16 ID:??? AAS
そんなややこしいことしなくても
単にグローバル変数を使わなければすむと思う。。
18
(1): FOX ★ 04/12/01 19:18 ID:??? AAS
>>17
使わないとすれば
たとえばどんなコーディングすればいいのかなぁ
(すんません Perlしらんもんで)
19: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo 04/12/01 19:21 ID:??? AAS
>>18
グローバルなしだとmod_perlと大差ないらしいっすよ・・・>speedy
20
(1): ▲ 某ソレ511 04/12/01 19:22 ID:??? AAS
sub{ } でくくってないところでは変数を極力使わない方向で、ってところですかね。
あと、sub{ } のなかでも変数宣言なしでの変数の使用はしちゃいけないとか。
1-
あと 92 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.299s*