■ bbs.cgi(SpeedyCGI)の巻 part1 (2004/12/01-) (112レス)
■ bbs.cgi(SpeedyCGI)の巻 part1 (2004/12/01-) http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: root ★ [] 04/12/01 17:39:45 ID:??? ■ bbs.cgi(SpeedyCGI)の巻 part1 (2004/12/01-) とりあえず、SpeedyCGI化は成功。 しかし、先は長そう。さてどうすべきか。 1) bbs.cgi の改良(再入可能化?)により、speedy -- -r1 以外で起動可能にする 2) speedycgiの設定チューニング(並列度とかいろいろ) あたりから詰めていくことになるのかなと。 参考スレ: ■ read.cgi(DSO味)の巻 part1 (2004/12/01-) http://dso.2ch.net/test/read.cgi/myanmar/1101888913/ 【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part15 http://qb5.2ch.net/test/read.cgi/operate/1093068260/ http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/1
2: root ★ [sage] 04/12/01 17:41:09 ID:??? …しかし、私はPerlがからっきし(りゃ なので、 Itadaいたり不動の楽しみをお持ちだったりする方々などのお力を、 ぜひお借りしたいところかも、かも。 http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/2
3: FOX ★ [sage] 04/12/01 17:42:08 ID:??? あっしも、、、 Perl はワからンのです、はい http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/3
4: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo [sage] 04/12/01 18:00:16 ID:??? 一部dso化できればいいんですがねー 今のあばうと処理手順をかいてみてくださいまし http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/4
5: FOX ★ [sage] 04/12/01 18:07:28 ID:??? 私なりに考えてみると 1) main はどうかけばいいのか、 2) 変数(とくにグローバル)はどう書けばいいのか、 あたりなんです。 枠組みが理解できれば、書き直す人も増えるかも、 http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/5
6: FOX ★ [sage] 04/12/01 18:10:16 ID:??? 現在の流れは(bbs.cgi) test/bbs.cgi ← 小さい導入部、なるべく叩き落せるのはここでやる。 require '本体bbs.cgi' 以降処理は'本体bbs/cgi'へ ほとんど(多分全部かも)は戻ってこない、どっかで exit; 本体bbs.cgi いろんな処理をして、どっかで exit; されている http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/6
7: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo [sage] 04/12/01 18:21:43 ID:??? >>6 まずtest/bbs.cgiは 1)環境変数を整理 2)setting.txtを読み込む 3)ふるい落とし処理 バーボンハウスチェック>bbqまたはbbmチェック>sambaチェック>rockチェック # バーボンとsambaが機能的に一部かぶっている希ガスのですが・・・ 4)その他処理?(なんかあったっけ) ですかね http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/7
8: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo [sage] 04/12/01 18:30:56 ID:??? >>7 3)のところ(bb?チェックまで) if(barbon(ip)){ error(barbon); exit; } endif; if(けーたい) if(callbbm(id)==だめぽ){ error(bbm); exit; }endif; else if(callbbq(ip)==だめぽ){ error(bbq); exit; }endif; endif; http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/8
9: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo [sage] 04/12/01 18:42:44 ID:??? あ、これ(>>7)じゃちとまずい。いろいろ軽め且つはじき要素が入ってない。 特にrockは本文のチェックが入るから処理が重いと思われなので後回し。 処理の原則は環境変数>別途ファイルに格納されている設定値>本文の順かな http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/9
10: FOX ★ [sage] 04/12/01 18:44:32 ID:??? というか 目的は SpeedyCGI のフル機能を実現するには どのようにコーディングすればいいか? なんですよ。 http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/10
11: 名無しさん@お腹いっぱい。 [sage] 04/12/01 18:51:09 ID:??? http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod > speedyが他のリクエストを開始したとき、どのくらいの量のperlの状態が保持されますか? > グローバルはその値を保持していますか?リクエストの後にデストラクタが走りますか? > > グローバルはその値を保持します。リクエストの後は何も破壊されません。 STDIN/STDOUT/ > STDERRはクローズされます -- 他のファイルはそうではありません。 %ENV と @ARGVだけが > リクエストの間で変更されるグローバルになります。 http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/11
12: ▲ 某ソレ511 [sage] 04/12/01 18:59:07 ID:??? ファイルハンドルは基本的に毎回クローズすべき、 変数も初期化しないとだめ、か。 %ENVと@ARGVは呼び出された時に ソースの処理の前に値が代入されるからな、 http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/12
13: FOX ★ [sage] 04/12/01 19:02:25 ID:??? bbs.cgi が呼び出されて その処理が終らないうちに次ぎづぎにbbs.cgi が立ち上がる(呼ばれる)ので 都度初期化するというよりは、完璧に分離しなきゃならないってことかと つまり スタックを使うしか無いんだと思うんだな、 Perl ではどうやってやるの? http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/13
14: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo [sage] 04/12/01 19:04:29 ID:??? >>12 setting.txtとsamba設定、rockワードリストの読み込みぐらいしかできることがなさそう・・・ 固定値はこれらだけのはず・・・ # これらもあやしかったりするけど・・・ perlでスタックはこんなんありました。 http://www2u.biglobe.ne.jp/~MAS/perl/waza/stack.html http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/14
15: 名無しさん@お腹いっぱい。 [sage] 04/12/01 19:09:07 ID:??? んにゃ、こっちか。 > 私のperlアプリケーションがspeedyで動くためには変更する必要があるかは、どうすれば判断 > することができますか?あるいは何も変更は必要ないのでしょうか? > > 変更する必要があるかもしれません。 > > グローバルが実行の間で保持されます。例えば永続的なデータベース・ハンドルを保つという > ことではいいことかもしれませんが、あなたのコードがそれらが未定義であることを想定して > いればよくありません。 > > また、グローバル変数を"my"で作成するならば、サブルーチンの中からそれらの変数を参照し > ようとするべきではありません - その代わりにそれらをサブルーチンに渡すべきです。ある > いは完全に問題をさけるために、単にmyの代わりに"use vars"でグローバル変数を宣言したほ > うが、まだましです。 > > ここに、この問題についての素晴らしい説明があります - これはmod_perlについてですが同 > じことがspeedycgiにも当てはまります: > > http://perl.apache.org/faq/mod_perl_cgi.html#Variables_retain_their_value_fro > > 全てが失敗するのであれば、MaxRunsを1に設定することにより常駐を無効にすることができま > す。これが通常のperlに比較しての唯一の利点は、speedyがスクリプトを事前にコンパイルす > ることにあります。 http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/15
16: ▲ 某ソレ511 [sage] 04/12/01 19:14:20 ID:??? my @stack = (); push @stack, '1'; #@stack=('1') push @stack, '2'; #@stack=('1', '2') pop @stack; #@stack=('1') push @stack, '3'; #@stack=('1', '3') pop @stack; #@stack=('1') pop @stack; #@stack=() かねぇ。これがスタックではなくキューだと、popじゃなくてshiftか。 ---- push 末尾に要素(スカラー変数/リスト変数)を追加、追加後のリストの要素数をリターン pop リストから末尾の1要素を取り除く、取り除いた要素をリターン shift リストから先頭の1要素を取り除く、取り除いた要素をリターン http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/16
17: 名無しさん@お腹いっぱい。 [sage] 04/12/01 19:16:00 ID:??? そんなややこしいことしなくても 単にグローバル変数を使わなければすむと思う。。 http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/17
18: FOX ★ [sage] 04/12/01 19:18:42 ID:??? >>17 使わないとすれば たとえばどんなコーディングすればいいのかなぁ (すんません Perlしらんもんで) http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/18
19: ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo [sage] 04/12/01 19:21:46 ID:??? >>18 グローバルなしだとmod_perlと大差ないらしいっすよ・・・>speedy http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/19
20: ▲ 某ソレ511 [sage] 04/12/01 19:22:54 ID:??? sub{ } でくくってないところでは変数を極力使わない方向で、ってところですかね。 あと、sub{ } のなかでも変数宣言なしでの変数の使用はしちゃいけないとか。 http://mevius.5ch.net/test/read.cgi/myanmar/1101890385/20
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 92 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.551s*