WEBサーバ構成パターン覚書

まずはシンプルな構成から

  • Webサーバのみ(Apache,IIS...)
WAN --- Web Server
  • アプリケーションエンジンを追加した場合(PHP,JSP,ASP...)
WAN --- Web Application Server
  • DBサーバを追加(Oracle,PostgreSQL,MySQL,SQL Server,...)
WAN --- Web Application Server --- DB Server

WEBサーバの多重化を考える

負荷・リスク分散

  • Webサーバを多重化(iptables,Squid+mod_rewrite,LVS,...)
WAN --- Load Balancer --- Web Server
                       |- Web Server
  • Webサーバを多重化+共有ストレージ (NFS,...)
1. ネットワーク部分を共有
WAN --- Load Balancer --- Web Server
                       |- Web Server
                       |- NAS
2. ストレージ専用ネットワーク(SAN)
WAN --- Load Balancer --- Web Server --- NAS
                       |- Web Server -|

DBサーバの多重化

Oracle9 のRAC、Oracle10g のグリッド、MySQLのレプリケーション、PostgreSQL+PGCluster/商用レプリケーション製品など

...眠いから続きは後で

最終更新時刻: 2007年12月31日

約1年ぶりのYahoo!オークション / PostgreSQL 7.4 RC1 released

約1年ぶりのYahoo!オークション

出品者としての最後の取引は1年以上前かも。

Yahoo!ペイメントとYahoo!ゆうパックというサービスが便利そう。

PostgreSQL 7.4 RC1 released

http://www.sra.co.jp/people/t-ishii/PostgreSQL/

副問い合わせの性能向上に期待してます

最終更新時刻: 2008年07月12日

Webサーバへの DoS 攻撃を防ぐ / [PHP]ファイルの内容を全部読み込む / PHP 4.3.4 released!

Webサーバへの DoS 攻撃を防ぐ

iptables で実現できそう。--limit-burst を使うらしい。

こちらも参考になりそう

実際に攻撃してテストしよっと。

ファイルの内容を全部読み込む

file_get_contents

いつの間にかこんな便利な関数があった。

PHP 4.3.4 released!

http://www.php.net/

今回はマルチバイト関数にいろいろ変更が加わっているので、数日様子をみてから導入する予定。(最近リリースサイクル短くて恐い・・・)

最終更新時刻: 2008年07月23日

[PHP] PHP_Accelerator / PHP と SSI を両方パースする / [book]WEB+DB PRESS vol.17

PHP_Accelerator

エラーが出てたので改めて入れなおし

/usr/local/lib/php.ini

zend_extension="/usr/local/lib/php/extensions/php_accelerator_1.3.3r2.so"

error_log

[warn-phpa] No shm_user is set and so no shm cache will be created (pid 28084)
[warn-phpa] unable to get shm cache (pid 28084)

/usr/local/lib/php.ini

phpa.shm_user = httpd
phpa.shm_group = httpd

error_log

[notice-phpa] Acquiring cache : uid 80 gid 80 perms 666 (pid 28084)
[notice-phpa] PHPA 1.3.3r2 on linux_i686_glibc2.1.3 (pid 28084)
[notice-phpa] Initialised 8MB cache at 0x4078f000 with 512 process entries (pid 28084)
[notice-phpa] Lock thresholds 10/10 (pid 28084)

phpa.html

<? var_dump($GLOBALS['_PHPA']); ?>

PHP と SSI を両方パースする

Options +Includes
<FilesMatch "\.html(\..+)?$">
    SetOutputFilter INCLUDES
</FilesMatch>

AddType application/x-httpd-php .html

WEB+DB PRESS vol.17

最終更新時刻: 2008年11月03日

NEC AtermWR7600H/TC を手放すことに

NAT切ってローカルルータとして使用することができないうえに、NAT経由でDMZ内のサーバにSSH接続してると数分で切れる。

ローカルルータモードが一般的な「ローカルルータ」と違う。RIPがLAN側にしか使用できない。モノとして悪くは無いけど、もうNECのネットワーク製品は買わない。

代替無線ルータの条件

  • IEEE802.11g 対応
  • ローカルルータとして使用できる(RIP対応)
最終更新時刻: 2008年09月01日

朝5時 / SetOutputFilter PHP

朝5時

作業効率落ちるってのはわかってるんですけどね・・・

後から見たら意味不明なコード書いてたり

SetOutputFilter PHP

PHP 4.3.2 からはデフォルトでは Apache 2.0 のフィルタが使えない。これって4.3.2からは apxs2handler を使ってるからだと思うので apxs2filter を明示的に指定してやれば多分いいはず。

./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--with-apxs2filter=/usr/local/apache2/bin/apxs

両方指定したら案の定 make で失敗。apxs2filter だけだと make 成功

続く・・・

最終更新時刻: 2008年08月27日

[buy] LINKSYS 54M無線LAN アクセスポイント WAP54G 税抜11800円 / [buy]LINKSYS ブロードバンドルータ BEFSR41C-JP 税抜5900円 / [buy]コードコンプリート 中古 3000円 / [buy]玄人志向 TVチューナーカード SAA7130-TVPCI/B 税抜 2980円 / PC-9821As を手放す

LINKSYS 54M無線LAN アクセスポイント WAP54G 税抜11800円

ルータの上に重ねようと思ったらサイズが昔の大きいサイズだった。親亀、小亀状態

LINKSYS ブロードバンドルータ BEFSR41C-JP 税抜5900円

2度目の購入。1台目はichieさんのHHKと交換

コードコンプリート 中古 3000円

本棚の飾りになりそうな悪寒

玄人志向 TVチューナーカード SAA7130-TVPCI/B 税抜 2980円

外部入力で使用。XPでは勝手にドライバがインストールされたが、標準設定がPALになっていた。ドライバのインストールに工夫が要る。

http://pc.2ch.net/avi/kako/1031/10316/1031630276.html より

一応まとめときます。CAP7130.INFの修正は必要ないかも
しれません。でも、内蔵チューナーは、噂どおりあんまりよくないですね

[PHTVTUNE.INF]

60行目
HKR,,TunerType,,FI1236 ; "FI1236"

77行目
HKR,,DefaultStandard,,0x00000002 ; KS_AnalogVideo_NTSC_M_J

[CAP7130.INF]

61行目
HKR, "Decoder", "Preferred Video Standard",0x00010001,0x00000002
; KS_AnalogVideo_NTSC_M_J

136行目
HKR, "", "CountryCode",,"81"; Japan

PC-9821As を手放す

最終更新時刻: 2008年07月26日

USBメモリにhtdocsを置くという案 / PHP 4.3.4 install / xyzzy / Hiki / mod_proxy

USBメモリにhtdocsを置くという案

HDD の代替メディアを検討していて思いついた。

けど良く考えたらフラッシュメモリなんだから頻繁に書き換えちゃ駄目か・・・

PHP 4.3.4 install

wget http://jp.php.net/get/php-4.3.4.tar.gz/from/jp2.php.net/mirror
tar xvfz php-4.3.4.tar.gz
cd php-4.3.4
./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-pgsql=/usr/local/pgsql/ \
--with-mysql \
--enable-mbstring \
--enable-zend-multibyte \
--with-zlib \
--with-xml \
--with-gettext \
--enable-ftp \
--with-xmlrpc \
--with-gd \
--enable-gd-native-ttf \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-freetype-dir=/usr
make
make install
# 以前の php.ini をそのまま使う場合は不要
# cp php.ini-dist /usr/local/lib/php.ini

マルチバイト拡張モジュールの実装が独立して libmbfl になった

--enable-mbstring を指定すれば mbregex も組み込まれるようになった模様。 --enable-mbregex をつけなくてもいいはず。

画像・フォント関係のライブラリも必要であれば入れておく

* freetype-devel-*
* libjpeg-devel-*
* libpng-devel-*

configure --help を眺めていたら --enable-gd-jis-conv を 発見、今度試してみる

xyzzy

tDiary-mode for xyzzy を NetInstaller でバージョンアップ

編集した日記をローカルに保存する設定を追加(.xyzzy)

(setf *tdiary-text-save-p* t)

Hiki

静的なページも欲しいので入れてみようと思う

mod_proxy

テスト機に導入

./configure \
--enable-so \
--enable-deflate \
--enable-dav_fs \
--enable-dav \
--enable-rewrite \
--enable-proxy

make
make install

/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
最終更新時刻: 2008年07月25日

[book] Linux Magazine 2003年12月号 / [book]日経Linux 2003年12月号 / [book]Unix User 2003年12月号 / [server]Proftpd / Gentoo Linuxはバーチャルホスティングウェブサイトのサポートを向上します。

Linux Magazine 2003年12月号

SAMBA 3.0特集

日経Linux 2003年12月号

  • SAMBA 3.0特集
  • KNOPPIX 3.3 CD
  • HDDレコーダ・サーバー構築

SAMBA のウイルスチェックの話が興味深い

Unix User 2003年12月号

SAMBA 3.0特集

Proftpd

Port                            21
ServerName                      "mylab.jp"
ServerType                      inetd
DefaultServer                   on
Port                            21
Umask                           022
MaxInstances                    30
User                            nobody
Group                           nobody
<Directory />
  AllowOverwrite                on
</Directory>
TimesGMT                        off
UseReverseDNS                   off
AuthPAMAuthoritative            On
AuthPAMConfig                   ftp
ListOptions                     "-a"
DefaultRoot                     ~ !wheel

<Limit LOGIN>
  Order Allow, Deny
  AllowGroup httpd
  AllowGroup wheel
  Deny from All
</Limit>

Gentoo Linuxはバーチャルホスティングウェブサイトのサポートを向上します。

Gentoo Linux Users Group Japan より

Gentoo Linuxプロジェクトは1つ以上のwebサイトをGentoo Linuxで使用することをより容易にするために、
Apacheとwebベースのパッケージの最新版を数週間以内にリリースします。
この変更の一部として、webサイトが置かれる'htdocs'ディレクトリのデフォルトが
/home/httpd から /var/www/localhostへ変更になります。
そして、複数のwebサイトをサポートを同時にする必要のあるサーバーのために、
新しいツールwebapp-configとvhost-configが、
また'vhosts' USEフラグがwebベースアプリケーションとバーチャルホストを
管理・インストールするのを支援するために導入されます。

・・・次にインストールするディストリビューションが決定しました。

最終更新時刻: 2008年11月13日

Gentoo Linux 1.4 install / tDiary 1.5.5 install / root 消してしまいました / [SQL]インデックス / [SQL]開始時間と終了時間 / tDiary-mode に草稿保存の機能があると嬉しいかも

Gentoo Linux 1.4 install

Pentium3 用の CD イメージをダウンロード。LiveCD から起動

fdisk でパーティションを作成

/dev/hda1 83  Linux
/dev/hda2 82  Linux swap
/dev/hda3 83  Linux

インストール

# ファイルシステムの作成
mke2fs -j /dev/hda1
mkswap /dev/hda2
mkreiserfs /dev/hda3
badblocks - badblocks.txt -v /dev/hda1
badblocks - badblocks.txt -v /dev/hda2
badblocks - badblocks.txt -v /dev/hda3

# パーティションをマウントする
swapon /dev/hda2
mount /dev/hda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/hda1 /mnt/gentoo/boot
cd /mnt/gentoo
tar -xvjpf /mnt/cdrom/stages/stage1-*.tar.bz2

# chrootを使ってGentoo Linuxシステムに「入る」
 mount -t proc proc /mnt/gentoo/proc
cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile

# 最新のPortage ツリーを取得する(GRPを使用しない)
emerge sync
nano -w /etc/make.conf
CHOST="i686-pc-linux-gnu"
CFLAGS="-O3 -mcpu=pentium3 -funroll-loops -pipe"
# binutils、gcc、gettext、glibcを構築し、glibcが構築された後、gettextを再構築(ステップ1)
cd /usr/portage
scripts/bootstrap.sh
# 残りのシステムをインストール(ステップ2)
emerge system
# ステップ3 ならここから

ln -sf /usr/share/zoneinfo/Japan /etc/localtime

# カーネルソースをemerge
emerge -k sys-kernel/gentoo-sources
# genkernelをemerge
emerge -k genkernel
# genkernelを使ってカーネルを構築する
genkernel
# hotplugをemergeし有効にする
emerge -k hotplug
rc-update add hotplug default
# システムロガーのインストール
emerge -k app-admin/sysklogd
rc-update add sysklogd default
# cron デーモン
emerge -k sys-apps/vcron
rc-update add vcron default
# ファイルシステムツールのemerge
emerge -k sys-fs/reiserfsprogs
nano -w /etc/fstab
/dev/hda1           /boot       ext3            noauto,noatime	 1 2
/dev/hda3           /           reiserfs        noatime         0 1
/dev/hda2           none        swap            sw              0 0
/dev/cdroms/cdrom0  /mnt/cdrom  iso9660         noauto,ro       0 0
proc                /proc       proc            defaults        0 0
# root パスワードの設定
passwd
# 日常的に使うユーザの登録
useradd your_user -m -G users,wheel,audio -s /bin/bash
passwd your_user
# ホスト名を設定
echo inspiron > /etc/hostname
echo mylab.jp > /etc/dnsdomainname
echo 3c59x > /etc/modules.autoload
nano -w /etc/conf.d/net
rc-update add net.eth0 default
# 基本設定
nano -w /etc/rc.conf

CLOCK="local"
KEYMAP="jp106"
# GRUB
emerge -k grub
grub
grub> root (hd0,0)
grub> setup (hd0)

nano -w /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=My example Gentoo Linux (genkernel)
root (hd0,0)
kernel (hd0,0)/boot/kernel-2.4.20-gentoo-r8 root=/dev/hda3
initrd (hd0,0)/boot/initrd-2.4.20-gentoo-r8

無事起動

tDiary 1.5.5 install

root 消してしまいました

いつものように su - したら

root というユーザは存在しません

と言われる。

シングルユーザモードで起動して vipw してみると

oot:x:0:0:/root:/bin/bash

となってる。

昨日 vipw したときに最初の r を消してしまったらしい

かなり反省しつつ修正。無事元に戻りました。

インデックス

TIMESTAMP 型のフィールドにインデックスを作成したけど値が分散しすぎていてインデックスが効率よく使われない

時間だけで集計することもあるし DATE と TIME に分ける。

開始時間と終了時間

こうしたら先に書いたようにインデックスの意味がない

-- list1
CREATE TABLE event (
time1 TIMESTAMP, -- 開始日時
time2 TIMESTAMP  -- 終了日時
);

集計を考えるとこのほうがいい

-- list2
CREATE TABLE event (
-- 開始日時
date1 DATE,
time1 TIME,
-- 終了日時
date2 DATE,
time2 TIME
);

list2 を list1 の VIEW にする手もあるか

-- list3
CREATE VIEW event_view AS
SELECT
   ...略

どうせ VIEW 作るなら list1 の終了時間は期間でもいい

-- list1'
CREATE TABLE event (
time1 TIMESTAMP, -- 開始日時
intervals INTEGER  -- 期間(秒)
);

いずれにせよパフォーマンスの良いものを選択する

tDiary-mode に草稿保存の機能があると嬉しいかも

考えながら発行(保存)してるから間違いがいっぱい。

最終更新時刻: 2008年09月01日

Gentoo 環境構築

Portage ツリーの更新

emerge sync

まずは iptables を検索

emerge -s iptables
rc-update add iptables default

iptables をインストール

emerge iptables

PCMCIA-cs を忘れてた

emerge -k sys-apps/pcmcia-cs

OpenSSH をインストール

cd /usr/portage
emerge net-misc/openssh
rc-update add sshd default

/etc/init.d/sshd start

Apache の確認

emerge -p -u apache

Calculating dependencies ...done!
[ebuild  N    ] dev-util/yacc-1.9.1-r1
[ebuild  N    ] net-www/apache-2.0.48-r1
最終更新時刻: 2008年07月15日

カーネルの再構築 / 教訓 SQL を組むときはデータベースエンジンの気持ちになって考えよう / 番組ランキング / 全ジャンルランキング追加

カーネルの再構築

NetFilter が組み込まれてなかった

* ((<URL:http://www.zdnet.co.jp/help/howto/linux/kernel24/>))
* ((<URL:http://www9.ocn.ne.jp/~pcvolu/pcnet/gentopage124.htm>))
* ((<URL:http://www.gentoo.org/doc/ja/alsa-guide.xml>))

教訓 SQL を組むときはデータベースエンジンの気持ちになって考えよう

思いやりが足りないとパフォーマンスが著しく低下しやがります

番組ランキング

つーわけで思いやりも足りたし「試験運用」外してもいいかな

でもどうせなら本運用開始の目玉があるといい、たとえば

* デザインに力を入れる
* 全ジャンルランキングを追加

その前にコードを見直ししよっと、それが済んでから

全ジャンルランキング追加

全部の番組のランキングなんてものに需要があるのかどうか疑問だけど、手間もかからないししばらく様子見ということで。

最終更新時刻: 2011年06月09日

各種パッケージをインストール / Gentoo やめて RedHat 入れる / Apache 2.0.48 install / PostgreSQL 7.3.4 install / PHP 4.3.4 install / Ruby 1.8.0 install / RDTool / SAMBA / ProFTPD 1.2.9

各種パッケージをインストール

いろいろ emerge する

* openssl
* vi
* proftpd

Gentoo やめて RedHat 入れる

Apache 2.0.48 install

20031110#p05

PostgreSQL 7.3.4 install

コンパイル・インストール

./configure
make
make install

自動起動の設定

cp contrib/start-scripts/linux /etc/rc.d/init.d/postgres
chmod 755 /etc/rc.d/init.d/postgres
chkconfig --add postgres
vi /etc/rc.d/init.d/postgres
PGDATA="/var/pgsql/data"

データ領域の作成

groupadd -g 70 postgres
useradd -u 70 -g postgres -d /var/pgsql postgres
mkdir /var/pgsql
chown postgres /var/pgsql
su - postgres
mkdir /var/pgsql/data
/usr/local/pgsql/bin/initdb -D /var/pgsql/data -E EUC_JP --no-locale

環境変数を設定

vi ~/.bash_profile
export PATH="$PATH":/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=/var/pgsql/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

設定を変更

vi /var/pgsql/data/postgresql.conf
tcpip_socket = true
silent_mode = true

PHP 4.3.4 install

画像処理のライブラリ

rpm -ivh libpng-devel-*.rpm
rpm -ivh libjpeg-devel-*.rpm
rpm -ivh freetype-devel-*.rpm

コンパイル・インストール

./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-pgsql=/usr/local/pgsql/ \
--with-mysql \
--enable-mbstring \
--enable-zend-multibyte \
--with-zlib \
--with-xml \
--with-gettext \
--enable-ftp \
--with-xmlrpc \
--with-gd \
--enable-gd-native-ttf \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-freetype-dir=/usr
make
make install

設定ファイルをコピー

cp php.ini-dist /usr/local/lib/php.ini

設定ファイルを変更

vi /usr/local/lib/php.ini
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP

Ruby 1.8.0 install

http://www.ruby-lang.org/ja/

./configure
make
make install

RDTool

tDiary で RD スタイルを使うためにインストール

RACC

tar xvfz racc-1.4.4-all.tar.gz
cd racc-1.4.4-all
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

amstd

http://www.loveruby.net/ja/prog/amstd.html

wget http://www.loveruby.net/archive/amstd/amstd-2.0.0.tar.gz
tar xvfz amstd-2.0.0.tar.gz
ruby install.rb config
ruby install.rb setup
ruby install.rb install

RDTool

http://raa.ruby-lang.org/list.rhtml?name=rdtool

ruby rdtoolconf.rb
make install

SAMBA

rpm -ivh samba-2.2.8a.ja-2.rh9.i686.rpm

ProFTPD 1.2.9

最終更新時刻: 2011年06月09日

サーバセグメントに設置 / サーバリプレース / Subversion 0.33 install / CVS サーバを用意する

サーバセグメントに設置

IPアドレス・ゲートウェイ・DNSサーバ等を変更

vi /etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/sysconfig/network
vi /etc/hosts
vi /etc/resolf.conf

サーバリプレース

NATの宛先とLAN向けDNSを変更

旧サーバは「SOTEC WinBook Eagle/X 266CTX」

  • CPU Celeron 266MHz
  • MEM 96MB
  • HDD 4.3GB

Subversion 0.33 install

コンパイル・インストール

./configure --with-apxs=/usr/local/apache2/bin/apxs
make
make install

CVS サーバを用意する

pserver

SSH の設定

/etc/sshd_config

PermitRootLogin no
RSAAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no

ログインしたいユーザでキーを作る

ssh-keygen -t rsa1
cp ~/.ssh/identity.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
最終更新時刻: 2008年07月31日

.htaccess で制限かけるの忘れてました(1日ほど) / Google が月ごとの日記ページを拾いやすい / カレンダープラグイン導入

.htaccess で制限かけるの忘れてました(1日ほど)

誰だ顔文字書いたのーΣヽ(゜Д゜; )ノ

おかげで気づきましたが(笑)

Google が月ごとの日記ページを拾いやすい

日別の日記ページを優先してほしい。そもそもの原因は上のリンクが月ごとのページだからなのでカレンダープラグインを入れるのが手っ取り早い。

カレンダープラグイン導入

calendar2.rb と calendar3.rb を入れてみた。文字が小さくてリンクが押しにくいので CSS 弄る必要ありそう。

最終更新時刻: 2008年07月20日

PostgreSQL 7.4 released!! / 使用している tDiary を 1.5.6 にバージョンアップ / SquirrelMail 1.4.2 install / [buy][book]Linux World 2003年12月号

PostgreSQL 7.4 released!!

ついにリリースされました。

移行前の確認

今回はメジャーバージョンアップなので通例だとデータベースのフォーマットの変更があり、プロトコルも変更されてる可能性がある。

PostgreSQL の FAQ

データベースのバックアップ

pg_dump foo > foo.db

リストア

createdb foo
psql -e foo < foo.db

プロトコルが変更されているとデータベースへ接続する各クライアント(PHP等)が使うライブラリもバージョンアップする必要があるが、プレスリリースを読む限りプロトコルの変更には触れられていない。

使用している tDiary を 1.5.6 にバージョンアップ

tdiary/ に rd_style.rb を入れ忘れてエラー

http://www.fkimura.com/tDiary0.html

SquirrelMail 1.4.2 install

http://www.squirrelmail.jp/

config/config_default.php を config/config.php にコピー

config/config.php を書き換える

$default_charset = 'iso-2022-jp';
$squirrelmail_default_language = 'ja_JP';
$imapServerAddress = 'localhost';

アッサリ動いた。

Linux World 2003年12月号

tDiary 作者「ただただし」さんへのインタビュー記事が楽しみ

最終更新時刻: 2011年06月09日

SPI / Bフレッツ VDSL の引き込み工事 / [[Hiki]] を入れる / theme/themebench を試す / ASAHI ネット

SPI

SPIと動的パケットフィルタリングの違い

NAT 切ってると使えなかったんだけどそういうものだっけ?

Bフレッツ VDSL の引き込み工事

30分程度で完了。

土曜日に申し込んだAsahiネットのIDが届かないので、急遽BB.exiteにオンライン登録。その場でIDを発行してもらえた。

付属のLANケーブルが短いから部屋までのものを買って来なきゃ。

で、ハーモネットの15mストレートケーブルを購入ついでに重役出勤した。

を入れる

theme/themebench を試す

themebench.rhtml を使うためには eruby が必要。

eruby をインストール

configure.rb
make
make install

theme/themebench.rhtml の設定

#!/usr/local/bin/eruby
theme_uri = './'
theme_path = '/var/www/www.mylab.jp/htdocs/diary/theme'

theme/.htaccess で rhtml を CGI として動作させるように設定

AddHandler cgi-script .rhtml
<Files "*.rhtml">
        allow from all
</Files>

本当は index.rb/update.rb と同じところに置くのかも。あと公開する必要も無いから制限かけてもいい。

ASAHI ネット

帰宅したら ID・パスワード発行のお知らせが来てた。早速試してみるがつながらない。

「料金プランの確認・変更」ページで確認すると「今月のプラン 開通待ち」、「申込中のプラン・来月のプラン BフレッツマンションコースMプラン」となってる。

ヲイヲイ、来月にならないと使えないの?しかもまだ開通待ちの状態らしいから固定IPのオプションも申し込めないし、ていうか入会のときにチェックさせることはできなかったのかと。

ということを質問出してみたので連絡待ち。

今は10分で申し込み完了した BB.exite で繋いでます。

VDSLモデム--ルータ1---ルータ2---AP〜無線〜無線PC
                   |-鯖      |-有線PC
最終更新時刻: 2008年07月12日

金曜日のOracleセミナー / [buy][book]Software Design 12月号 / 新聞番組表 Ver.up

金曜日のOracleセミナー

予定がかぶった・・・

基調講演後に参加すればいっか

Software Design 12月号

「Good Will 情報百貨店」の書籍コーナー、先月号が置いてるから紛らわしい。今月号まだ置いてないのかと思う。

なんで今月号と先月号を棚の両側に分けて置くかなー。せめて同じところに陳列して欲しい。

新聞番組表 Ver.up

  • 内部の時間処理を大幅に変更
  • 7チャンネルだったのを9チャンネル表示にした
  • 番組強調表示をつけた

時間処理以外はおまけです。

番組強調表示にバグ発見。「(テスト中)」で逃げといてよかった(ぉ

これやっぱり家の17インチ液晶で見るとちょうどいい。会社の15インチ液晶では少し狭い。

最終更新時刻: 2011年06月09日

FormHandler.cgi をPHPに移植

元のコードが861行。それに加えていくつかのサブルーチンを読み込む。

サブルーチンは PHP では関数として実装されているものがほとんどなので移植後は単一のファイルで済む。

最終更新時刻: 2008年07月30日

サーバの IP アドレスを変更

最終更新時刻: 2008年07月31日

[buy][book] Linux World 2003年5月号 / [buy]Microsoft Wheel Mouse Optical v1.1 USB 1900円 / [buy]LOAS USB2.0 4ポートHUB 3980円

Linux World 2003年5月号

2002年の全記事を収録したCD-ROMが付いていたので購入

Microsoft Wheel Mouse Optical v1.1 USB 1900円

Microsoft Wheel Mouse Optical v1.1

LOAS USB2.0 4ポートHUB 3980円

UH-214GM

USB HUB

最終更新時刻: 2008年11月11日

CVS を利用する / ident パケットを拒否(メールサーバ) / tDiary + Namazu / InterVideo Home Theater / フォームメーラいろいろ / [Apache] htdocs を NFS で共有したい / NFS のセキュリティ / ディスクレスクライアント / フォームから iptables のルールを生成 / [tDiary]日記データを CVS で管理 / [tDiary]プラグイン tdiarytimes.rb

ident パケットを拒否(メールサーバ)

iptables -A INPUT -p tcp --dport auth -j REJECT --reject-with icmp-port-unreachable

破棄(DROP)すると TIMEOUT 待ちになったりしてまずいので拒否(REJECT)する

InterVideo Home Theater

http://www.intervideo.co.jp/

12月12日発売予定。TV、DVD、ピクチャ、オーディオ再生ができる

WinDVD、WinDVR を統合したのかな?両方とも愛用しているので期待。

フォームメーラいろいろ

GNU GPL によってライセンスされたフォームメイラ

FormHandler の作者(Matt's)のサイト 

htdocs を NFS で共有したい

Web サーバを複数台設置(冗長化)してもデータを一括管理できる

ロックについて

  • ファイルシステムに書き込む CGI をデータベースに保存するものに置き換える
  • CGI のロック機構を NFS 対応にする
  • rpc.lockd を利用

将来的には

  • カーネル2.6で実装される予定の NFSv4 に期待
  • DAFS はまだ先?
  • Webサーバは 1-CD Linux でもいい。

ディスクレスクライアント

PXE を使う完全なディスクレス

フロッピーからのブート

フォームから iptables のルールを生成

LinWiz

日記データを CVS で管理

Hiki みたいに CVS で日記のバージョン管理ができると便利。たまに上書きしちゃうから。

プラグイン tdiarytimes.rb

http://nmnl.jp/hiki/software/?tDiary+::+Plugin#l8

日記を書き込んだ時間を記録して、タイムラインに沿った縦棒を表示。

  • ruby-gd をインストール
ruby extconf.rb --with-gd2_0 --with-jpeg --with-freetype --with-ttf
make
make install
  • GD をインストール
./configure
make
make install
#freetype, libpng, libjpeg は自動で検出された
vi /etc/ld.so.conf
--
/usr/local/lib # 追加
--
ldconfig
  • 空のPNGファイルを作成(tdiarytimes.png)
  • ヘッダに追加
<%=tdiarytimes%>
最終更新時刻: 2011年06月09日

Hiki 運用開始 / mingplot: Flash 形式のグラフを生成するツール / Apache の error_log が肥大化 / error_log を分割するスクリプト

Hiki 運用開始

日記だと埋もれていったりするので、ドキュメント書きのために Wiki を置いてみた。

PC関係のノート

TODO:

mingplot: Flash 形式のグラフを生成するツール

mingplot

zphoto: ズーミングする写真集を作るツール も面白そう

Apache の error_log が肥大化

[Sat Nov 15 04:02:04 2003] [notice] SIGHUP received.  Attempting to restart
[Sat Nov 15 04:02:07 2003] [notice] Apache configured -- resuming normal
operations
[Sat Nov 15 04:02:05 2003] [notice-phpa] Cache shared memory removed (pid
2118)
[Sat Nov 15 04:02:05 2003] [notice-phpa] Cache semaphores removed (pid 2118)
[Sat Nov 15 04:02:07 2003] [notice-phpa] Acquiring cache : uid 80 gid 80
perms 666 (pid 2118)
[Sat Nov 15 04:02:07 2003] [notice-phpa] PHPA 1.3.3r2 on
linux_i686_glibc2.1.3 (pid 2118)
[Sat Nov 15 04:02:07 2003] [notice-phpa] Initialised 8MB cache at 0
x405d5000 with 512 process entries (pid 2118)
[Sat Nov 15 04:02:07 2003] [notice-phpa] Lock thresholds 10/10 (pid 2118)
[Sat Nov 15 04:02:05 2003] [notice-phpa] Cache shared memory removed (pid
2118)
[Sat Nov 15 04:02:05 2003] [notice-phpa] Cache semaphores removed (pid 2118)
[Sat Nov 15 04:02:07 2003] [notice-phpa] Acquiring cache : uid 80 gid 80
perms 666 (pid 2118)
[Sat Nov 15 04:02:07 2003] [notice-phpa] PHPA 1.3.3r2 on
linux_i686_glibc2.1.3 (pid 2118)
[Sat Nov 15 04:02:07 2003] [notice-phpa] Initialised 8MB cache at 0x405d5000
with 512 process entries (pid 2118)
[Sat Nov 15 04:02:07 2003] [notice-phpa] Lock thresholds 10/10 (pid 2118)
[Sat Nov 15 04:02:05 2003] [notice-phpa] Cache shared memory removed (pid
2118)
[Sat Nov 15 04:02:05 2003] [notice-phpa] Cache semaphores removed (pid 2118)
[Sat Nov 15 04:02:07 2003] [notice-phpa] Acquiring cache : uid 80 gid 80
perms 666 (pid 2118)

以下同じ内容で数十万件/日

しかもログ時刻は一緒。

PHPA Support Forum でも同じエラー出てる人たちがいるけどまだ解決していない模様

error_log を分割するスクリプト

#!/usr/local/bin/perl
# divlog.pl
#  : apache の error_log を分割する
$filename = shift(@ARGV);
open(FILE, "<$filename") or die("file not found");
while(<FILE>) {
    $line = $_;
    if($line =~ /^\[\w{3} (\w{3}) (\d{2}) [^]]+(\d{4})\]/)  {
        open(OUT, ">>$filename.$3$1$2");
        print OUT $line;
    }
}

実行結果

$ sudo ./divlog.pl error_log
$ ls
error_log
error_log.2003Nov04.gz
error_log.2003Nov05.gz
error_log.2003Nov06.gz
error_log.2003Nov07.gz
error_log.2003Nov08.gz
error_log.2003Nov09.gz
error_log.2003Nov10.gz
error_log.2003Nov11.gz
最終更新時刻: 2008年09月03日

スケジュール管理ソフトウェア / [PHP]キャッシュモジュール / [PHP]Turck MMCache / [Apache]rotatelogs / [Apache]アクセスログのIPアドレスの名前解決 / [PHP] notice-phpa 発生条件

スケジュール管理ソフトウェア

卓上カレンダーがよく行方不明になるのでカレンダーソフトが欲しい。

どうせなら予定が入力できるほうがいいということでスケジュール管理のソフトを探す

希望

  • 軽量
  • データ形式が汎用的
  • palm と同期できるといい
  • できればオープンソース

単独アプリケーション

どっかで見たなーと思ったらCSN1ムービーチャンネルのMY番組表で利用されてるソフトだ。面白そうだし綺麗。

デスクトップに常駐

なぜかDelphiで作られたものが多いように感じた

プラグイン等

キャッシュモジュール

  • PHP Accelerator
  • APC
  • Turck MMCache

Turck MMCache

コンパイル・インストール

export PHP_PREFIX="/usr/local"
$PHP_PREFIX/bin/phpize
./configure --enable-mmcache=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make install

vi php.ini

zend_extension="/usr/lib/php4/mmcache.so"
mmcache.shm_size="16"
mmcache.cache_dir="/tmp/mmcache"
mmcache.enable="1"
mmcache.optimizer="1"
mmcache.check_mtime="1"
mmcache.debug="0"
mmcache.filter=""
mmcache.shm_max="0"
mmcache.shm_ttl="0"
mmcache.shm_prune_period="0"
mmcache.shm_only="0"
mmcache.compress="1"

キャッシュディレクトリを作成

mkdir /tmp/mmcache
chmod 0777 /tmp/mmcache

アクセスログのIPアドレスの名前解決

dnstran を使用する

CRON で定期的に実行

00 3 * * * /usr/local/bin/dnstran/dnstran \
           -cache /var/log/httpd/dnscache \
           /var/log/httpd/access_log

notice-phpa 発生条件

昨日の続き。

/bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid`

で数十行発生。

ブラウザで数回アクセスするだけでは発生せず、たとえば

ab -n 100 -c 100 http://localhost/index.html

などで大量のリクエストを送った場合に発生。おそらくプロセスが起動するたびに記録されてる。

追記: kill -HUP だけでなく apachectl で start/restart しただけでも発生する

最終更新時刻: 2008年11月07日

I/O error

SAMBA からマウントしているファイルが見えなくなった。REBOOT コマンドを打つと「I/O error」。端末の画面には sector なんたらというエラー。

一瞬焦ったが電源 OFF/ON で回復。

もう一度 RAID 、あるいは USB メモリにデータを保存することを考える。

最終更新時刻: 2008年09月01日