PC関係のメモ
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/商用レプリケーション製品など
...眠いから続きは後で
約1年ぶりのYahoo!オークション / PostgreSQL 7.4 RC1 released
約1年ぶりのYahoo!オークション
出品者としての最後の取引は1年以上前かも。
Yahoo!ペイメントとYahoo!ゆうパックというサービスが便利そう。
Webサーバへの DoS 攻撃を防ぐ / [PHP]ファイルの内容を全部読み込む / PHP 4.3.4 released!
Webサーバへの DoS 攻撃を防ぐ
iptables で実現できそう。--limit-burst を使うらしい。
こちらも参考になりそう
実際に攻撃してテストしよっと。
ファイルの内容を全部読み込む
file_get_contents
いつの間にかこんな便利な関数があった。
PHP 4.3.4 released!
今回はマルチバイト関数にいろいろ変更が加わっているので、数日様子をみてから導入する予定。(最近リリースサイクル短くて恐い・・・)
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
NEC AtermWR7600H/TC を手放すことに
NAT切ってローカルルータとして使用することができないうえに、NAT経由でDMZ内のサーバにSSH接続してると数分で切れる。
ローカルルータモードが一般的な「ローカルルータ」と違う。RIPがLAN側にしか使用できない。モノとして悪くは無いけど、もうNECのネットワーク製品は買わない。
代替無線ルータの条件
- IEEE802.11g 対応
- ローカルルータとして使用できる(RIP対応)
朝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 成功
続く・・・
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 を手放す
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
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ベースアプリケーションとバーチャルホストを 管理・インストールするのを支援するために導入されます。
・・・次にインストールするディストリビューションが決定しました。
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 に草稿保存の機能があると嬉しいかも
考えながら発行(保存)してるから間違いがいっぱい。
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
カーネルの再構築 / 教訓 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 を組むときはデータベースエンジンの気持ちになって考えよう
思いやりが足りないとパフォーマンスが著しく低下しやがります
番組ランキング
つーわけで思いやりも足りたし「試験運用」外してもいいかな
でもどうせなら本運用開始の目玉があるといい、たとえば
* デザインに力を入れる * 全ジャンルランキングを追加
その前にコードを見直ししよっと、それが済んでから
全ジャンルランキング追加
全部の番組のランキングなんてものに需要があるのかどうか疑問だけど、手間もかからないししばらく様子見ということで。
各種パッケージをインストール / 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
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
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
サーバセグメントに設置 / サーバリプレース / 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
- CVS pserver 構築メモ
- http://ccvs.cvshome.org/fom/fom.cgi?_recurse=1&file=217
- http://www.sugoiconsulting.com/bits/index.php?bit_id=32
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
.htaccess で制限かけるの忘れてました(1日ほど) / Google が月ごとの日記ページを拾いやすい / カレンダープラグイン導入
.htaccess で制限かけるの忘れてました(1日ほど)
誰だ顔文字書いたのーΣヽ(゜Д゜; )ノ
おかげで気づきましたが(笑)
Google が月ごとの日記ページを拾いやすい
日別の日記ページを優先してほしい。そもそもの原因は上のリンクが月ごとのページだからなのでカレンダープラグインを入れるのが手っ取り早い。
カレンダープラグイン導入
calendar2.rb と calendar3.rb を入れてみた。文字が小さくてリンクが押しにくいので CSS 弄る必要ありそう。
PostgreSQL 7.4 released!! / 使用している tDiary を 1.5.6 にバージョンアップ / SquirrelMail 1.4.2 install / [buy][book]Linux World 2003年12月号
PostgreSQL 7.4 released!!
ついにリリースされました。
移行前の確認
今回はメジャーバージョンアップなので通例だとデータベースのフォーマットの変更があり、プロトコルも変更されてる可能性がある。
データベースのバックアップ
pg_dump foo > foo.db
リストア
createdb foo psql -e foo < foo.db
プロトコルが変更されているとデータベースへ接続する各クライアント(PHP等)が使うライブラリもバージョンアップする必要があるが、プレスリリースを読む限りプロトコルの変更には触れられていない。
SquirrelMail 1.4.2 install
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 作者「ただただし」さんへのインタビュー記事が楽しみ
SPI / Bフレッツ VDSL の引き込み工事 / [[Hiki]] を入れる / theme/themebench を試す / ASAHI ネット
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
金曜日のOracleセミナー / [buy][book]Software Design 12月号 / 新聞番組表 Ver.up
金曜日のOracleセミナー
予定がかぶった・・・
基調講演後に参加すればいっか
Software Design 12月号
「Good Will 情報百貨店」の書籍コーナー、先月号が置いてるから紛らわしい。今月号まだ置いてないのかと思う。
なんで今月号と先月号を棚の両側に分けて置くかなー。せめて同じところに陳列して欲しい。
新聞番組表 Ver.up
- 内部の時間処理を大幅に変更
- 7チャンネルだったのを9チャンネル表示にした
- 番組強調表示をつけた
時間処理以外はおまけです。
番組強調表示にバグ発見。「(テスト中)」で逃げといてよかった(ぉ
これやっぱり家の17インチ液晶で見るとちょうどいい。会社の15インチ液晶では少し狭い。
FormHandler.cgi をPHPに移植
元のコードが861行。それに加えていくつかのサブルーチンを読み込む。
サブルーチンは PHP では関数として実装されているものがほとんどなので移植後は単一のファイルで済む。
サーバの IP アドレスを変更
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円

LOAS USB2.0 4ポートHUB 3980円
UH-214GM

CVS を利用する / ident パケットを拒否(メールサーバ) / tDiary + Namazu / InterVideo Home Theater / フォームメーラいろいろ / [Apache] htdocs を NFS で共有したい / NFS のセキュリティ / ディスクレスクライアント / フォームから iptables のルールを生成 / [tDiary]日記データを CVS で管理 / [tDiary]プラグイン tdiarytimes.rb
CVS を利用する
ident パケットを拒否(メールサーバ)
iptables -A INPUT -p tcp --dport auth -j REJECT --reject-with icmp-port-unreachable
破棄(DROP)すると TIMEOUT 待ちになったりしてまずいので拒否(REJECT)する
tDiary + Namazu
InterVideo Home Theater
12月12日発売予定。TV、DVD、ピクチャ、オーディオ再生ができる
WinDVD、WinDVR を統合したのかな?両方とも愛用しているので期待。
htdocs を NFS で共有したい
Web サーバを複数台設置(冗長化)してもデータを一括管理できる
ロックについて
- ファイルシステムに書き込む CGI をデータベースに保存するものに置き換える
- CGI のロック機構を NFS 対応にする
- rpc.lockd を利用
将来的には
- カーネル2.6で実装される予定の NFSv4 に期待
- DAFS はまだ先?
- Webサーバは 1-CD Linux でもいい。
ディスクレスクライアント
PXE を使う完全なディスクレス
フロッピーからのブート
フォームから iptables のルールを生成
日記データを 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%>
Hiki 運用開始 / mingplot: Flash 形式のグラフを生成するツール / Apache の error_log が肥大化 / error_log を分割するスクリプト
Hiki 運用開始
日記だと埋もれていったりするので、ドキュメント書きのために Wiki を置いてみた。
TODO:
- ページ名.html で閲覧してもらう
- Namazu で検索
- フォーマットを RD に変更
- CVS で履歴管理
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
スケジュール管理ソフトウェア / [PHP]キャッシュモジュール / [PHP]Turck MMCache / [Apache]rotatelogs / [Apache]アクセスログのIPアドレスの名前解決 / [PHP] notice-phpa 発生条件
スケジュール管理ソフトウェア
卓上カレンダーがよく行方不明になるのでカレンダーソフトが欲しい。
どうせなら予定が入力できるほうがいいということでスケジュール管理のソフトを探す
希望
- 軽量
- データ形式が汎用的
- palm と同期できるといい
- できればオープンソース
単独アプリケーション
どっかで見たなーと思ったらCSN1ムービーチャンネルのMY番組表で利用されてるソフトだ。面白そうだし綺麗。
デスクトップに常駐
なぜかDelphiで作られたものが多いように感じた
- デスクトップカレンダー
- 壁カレ
- TCalendar
プラグイン等
キャッシュモジュール
- 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 しただけでも発生する
I/O error
SAMBA からマウントしているファイルが見えなくなった。REBOOT コマンドを打つと「I/O error」。端末の画面には sector なんたらというエラー。
一瞬焦ったが電源 OFF/ON で回復。
もう一度 RAID 、あるいは USB メモリにデータを保存することを考える。


_ いちえ [そんな時間まで何しとったの?(w]
_ hajime [tDiaryのソース読んでました!]