久しぶりにapache2とか触るなぁ

fastcgi的なものっていくつかあったと思ってzypperで探してみたら、いっぱいでてきた。

S Name Summary Type
FastCGI A Scalable, Open Extension to CGI package
FastCGI-devel A scalable, open extension to CGI package
apache2-mod_fcgid Alternative FastCGI module for Apache2 package
apache2-mod_scgi Apache module named mod_scgi that implements the client side of the protocol. package
namazu-cgi a CGI interface for Namazu package
nut-cgi Network UPS Tools Web Server Support (UPS Status Pages) package
perl-CGI-Application Framework for building reusable web-applications package
perl-CGI-Session Persistent session data in CGI applications package
perl-CGI-Simple A Simple totally OO CGI interface that is CGI.pm compliant package
perl-FastCGI A scalable, open extension to CGI package
php5-fastcgi FastCGI PHP5 Module package
python-fcgi Python FastCGI Module package
python-scgi Python implementation of the SCGI protocol. package
ruby-fcgi FastCGI bindings for ruby package
spawn-fcgi Spawn FastCGI applications independent of the webserver package

マホー。とりあえずふつうのfastcgi的なものでいいので…ってことで、apache2-mod_fcgidに目を付ける。zypperで情報をみてみた。なんか、kick out the corrupt fastcgi server as soon as possibleとかかいてあって穏やかじゃないが、別に穏やかである必要もないのでこいつを入れてみることにする。

bounoki@phorni:/srv/www/cgi-bin/fswiki> zypper info apache2-mod_fcgid
Loading repository data...
Reading installed packages...


Information for package apache2-mod_fcgid:

Repository: openSUSE-11.2-Oss
Name: apache2-mod_fcgid
Version: 2.2-97.1
Arch: i586
Vendor: openSUSE
Installed: No
Status: not installed
Installed Size: 150.0 KiB
Summary: Alternative FastCGI module for Apache2
Description:
What is mod_fcgid? It is a binary compatibility alternative to Apache
module mod_fastcgi.
mod_fcgid has a new process management strategy, which concentrates on
reducing the number of fastcgi server, and kick out the corrupt fastcgi
server as soon as possible.
To load the module into Apache, run the command "a2enmod fcgid" as
root.
See /etc/apache2/conf.d/mod_fcgid.conf and
/usr/share/doc/packages/apache2-mod_fcgid for configuration.
Authors:
              • -
Pan qingfeng

/etc/apache2/conf.d/mod_fcgid.conf とかいうファイルができたようなので、あとはこいつをみながら.fcgiをfcgid-scriptで動かすようにしてやればいいんだな(ってすでになっていますが)。そういえば研修で、IfModuleみたいにどう動くか一意にならんものは使うな、期待したとおりに動かないならエラー吐いて落ちるようにしろと教わったんで、常時評価されるようにコメントアウトしとこう。

んで、ただ闇雲にapache2起動するとSocketPathなんてネェよ!とぶち切れられるので、loadmoduleの設定してみて、それでもだめならこのへんみてがんばって解決します。
手元のopenSUSE11.2では /etc/apache2/sysconfig.d/loadmodule.conf ってのがありますが、開いてみると「このファイルは自動生成されているよ、/etc/sysconfig/apache2にリストされてるよ。」と生暖かく書いてありました。sysconfig/apache2のAPACHE_MODULESに"mod_fcgid"って書けばいいんすかね。

いまさらなpythonのメモについて

いまさらなpythonのメモ(備忘録)ってのを学生時代に書きためようとしていたのが、修了してアカウントが消えてから参照できなくなった。それをここに移そうとしたのだが元データにアクセスできないという罠なんだけど、自宅Linux PCが修復されたのでwikiをローカルで復活させようと画策中(やっとサルベージできる)。
コンテンツはせっかくなのでhatena diary上に書き溜めようかなと思っています。

公言しとかないと動かないと強く思ったのでここに書いてみる。

openSUSE11.2にiscsi enterprise targetを

openSUSE11.2にiscsi enterprise targetを入れて、Vistaのinitiatorから接続。CrystalDiskMarkで性能を見てみた。構成はこんな感じ。

[Vista PC]======[1Gスイッチハブ]======[openSUSE]-------[外付けRAID]
           Cat6                  Cat6            eSATA

そしたらこんな感じだった。ローカルのHDDが55〜60MB/sなので、そこそこの性能。Sequential Readにて、ボトルネックに近いところはopenSUSEのCPU、90%くらい使ってた。VistaのIFはタスクマネージャから25%くらいだった。外付けRAIDは1.5Gbpsのやつ。

                                                                                                  • -
CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo Crystal Dew World : http://crystalmark.info/
                                                                                                  • -
Sequential Read : 35.710 MB/s Sequential Write : 36.822 MB/s Random Read 512KB : 35.328 MB/s Random Write 512KB : 33.597 MB/s Random Read 4KB : 9.012 MB/s Random Write 4KB : 1.069 MB/s Test Size : 100 MB Date : 2010/02/04 0:12:00

bashのプロンプトを変更する

お疲れ様ですmotieです。とても長い日本語のディレクトリを掘ったら(掘ってあったのをOpenSUSE上にインポートしたら)そのディレクトリに入った時に右端が切れて見にくい。というわけでワークディレクトリしか表示されないように変更する。
プロンプトは$PS1っていう環境変数に入っているので、loginshellがbashな人は~/.bashrcとかに$PS1を上書きするように書いてやればいい。
以下のように変更してみた。

#\n\u@\h:\w>
export PS1="\n\u@\h:[\W]>"

あとはドット実行して適用。

motie@dorotea:~>. .bashrc
motie@dorotea:[~]>

現在のワークディレクトリを見たかったらpwdと打たないといけないけど、僕の場合はいつも表示内容なんか意識しちゃいないので手間は増えないな。

tabの変わりにスペースを入れたい

tabの変わりにスペースを入れたいことなんてザラにあるとおもう。でも「tabキーが押されたら全部スペースにする」みたいにしてしまうと、tabが欲しいときに入れられなくなっちゃう。
そこでちょっと調べ物をしていたらいい方法*1。を発見。「タブの気持ちで半角スペース」tab分の半角スペースを入れてくれる。
せっかくなのでShift+Tabとかにバインドさせてみようと思ったらこれが思い通りに行かないらしく、また調べてたらいい方法*2が紹介されていた。これはShift+TabをF20が押されたことにして、F20をglobal-set-keyで指定して処理してやるという方法。

;;; タブの気持ちで半角スペース改
(set-extended-key-translate-table exkey-S-tab #\F20)
(defun insert-space-like-tab ()
(interactive)
(let ((tab (tab-columns (selected-buffer))))
(insert " " (- tab (mod (current-column) tab)))))
(global-set-key #\F20 'insert-space-like-tab)