たろマーク (はてなブックマーク)
-
[ api ][ phone ][ webservice ]
- Colorful Bokeh Effect in Pixelmator | Abduzeedo | Graphic Design Inspiration and Photoshop Tutorials
[ pixelmator ] -
[ pixelmator ]
-
[ python ] 結構ボリュームあるw python のみならず、チームの開発サイクルとか、実際にどう活用していくかと言うことが書いてありそうで wktk
■サーバ移行しました
EC2 に移行しました。mysql の db とか /home とかメールディレクトリとかを EBS に置いた。
あと qmail から postfix + dovecot に移行したり。
postfix はバーチャルドメイン対応で、/ebs/<domain>/<account>/Maildir/{cur,new,tmp} なメールディレクトリに配置するようにして、dovecot の sasl を用いて SMTP-AUTH 対応したので、/etc/postfix/virtual と /etc/dovecot-passwd に追記しつつ、メールディレクトリも作ってくれるツールが欲しいなと思って、探さずに書いたw
まぁ、qmail + vpopmail からアカウント移行するのにバッチ処理したかったんだけども。
http://github.com/vkgtaro/taroweb-server-utility
bin/add_mailuser.pl hoge@taro-web.com p4ssw0rd ってやると追加される感じ。
dovecot-passwd は salt された SHA1-Digest を使おうと思って、Perl Advent Calendar に投稿されてた Crypt::SaltedHash を使用してみました。
後は何気に Mouse::Util::TypeConstraints で型変換とか初めてやってみたくらい。
それと、yum でインストールした apache の suExec が /var/www で動くようになってるのでどうしたものかと思ってたんだけど、mount --bind 使えば、ディレクトリを mount できると AzureStone さんに教わった。
mount --bind /ebs/home /var/www/home
こんな感じで後は VirtualHost の DocumentRoot を /var/www/home 以下にすればいいだけ。
SuexecUserGroup vkgtaro vkgtaro
DocumentRoot /var/www/home/vkgtaro/public_html
ServerName vkgtaro.jp
うう、今年もうあとわずかしかない >_<
■mod_ext_filter でコンテンツを書き換える
EC2 はサーバがアメリカ東海岸(とヨーロッパ)にあるため、画像などふんだんに使用していると体感的にも遅く感じます。特に css や javascript ファイルが早くダウンロードできないとその差が大きく出ます。なので、静的なファイルは S3 に置いて CloudFront を使用して配信します。
EC2 を使う場合、大抵は動的なコンテンツだと思うので、ココまでは問題ないと思うのですが、弊社は試しに EC2 を使おうと言うことで http://plucore.jp を置いているのでほぼ全部静的なファイルのため html の書き換えをどうしようかといった問題が発生しました。
そこで apache の mod_ext_filter モジュールを使用して、コンテンツの書き換えを行いました。
ExtFilterDefine static2cdn mode=output intype=text/html \ cmd="/usr/local/bin/img2cdn.pl"
filter を用意して、Location ディレクティブ内で使用します。
<Location />
SetOutputFilter static2cdn
</Location>
/usr/local/bin/img2cdn.pl はこんな感じ。cdn.plucore.jp は CloudFront へ CNAME で割り当てたサブドメインです。
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
my $cdn_host = 'http://cdn.plucore.jp';
while (<STDIN>) {
# src="http://plucore.jp/common/image/common/sidebar/webservice.png"
# -> src="/common/image/common/sidebar/webservice.png"
s{src="(http://plucore.jp)(.+)(png|jpg|gif|js)"}{src="$2$3"}xmsgi;
# src="/common/image/common/sidebar/webservice.png"
# -> src="http://cdn.plucore.jp/common/image/common/sidebar/webservice.png"
s{src="([^:]+)(png|jpg|gif|js)"}{src="$cdn_host$1$2"}xmsgi;
# href="/common/css/import.css"
# -> href="http://cdn.plucore.jp/common/css/import.css"
s{href="(.+)(css)"}{href="$cdn_host$1$2"}xmsgi;
print $_;
}
1;
これで非 SSL 領域の画像、CSS、Javascript ファイルへのアクセスは CloudFront へ向くようになりました。
後残る問題は CloudFront がカバーしていない SSL 領域です。
CloudFront を使えばいいと思っている方で SSL を使用しようと考えている方は注意が必要です。
そこで、SSL 領域に関しては browser にキャッシュしてもらう方向で考えました。
該当する virtual host 内で Expires を設定することにしました。
ExpiresActive On ExpiresDefault "access plus 4 weeks" Header onsuccess append Cache-Control public
なお、Firefox は SSL 領域だと全くキャッシュしないのですが、Header onsuccess append Cache-Control public と設定することで Firefox にもキャッシュしてもらえるようになります。
Expires の設定が間違えたのかと少しハマりましたがこれで解決です。
最初のアクセス時こそ少し重く感じますが、一度アクセスするとキャッシュが効くので体感レベルでは問題がないように思えます。
https://plucore.jp/contact/us.fcgi
ちなみに、plucore.jp は表向き静的なファイルばかりで EC2 的に無駄なようですが、社内向けなものをいくつか立ち上げたりしててあまり無駄になってません。(というかそれがあって、引っ越し先を探してたのもあったり)
追記(2009/04/08 10:33:29)
plucore.jp を全面的に更新するとのことで、一時的に mod_ext_filter を外してます。
cloudfront は1日キャッシュされるので明日まで解除しているかと。
追記(2009/04/09 23:57:41)
cloudfront 戻した。
■Amazon EC2 の Reserved Instances で安く使える!
Pricing - Amazon Elastic Compute Cloud (Amazon EC2)
これは良いですね! cool!
Web サーバ的な使い方して、立ち上げっぱなしにしておくなら reserved instances にしておいて間違いなさそうです。
先に(1|3)年の予約をしておくと running cost が $0.1/hour → $0.03/hour になるそうです。
$325 固定になるんじゃなくて、$325 払った上で running cost が安くなるという話っぽい。
転送料は今まで通り変わらずですね。
On-Demand Instances (今までと同じ)で1年使った場合は
0.1 * 24 * 365 = $876
Reserved Instance で1年使った場合は
( 0.03 * 24 * 365 ) + 325 = $587.8
なので、年間 2/3 くらいになりますね。
3年先払いだと3年間で
( 0.03 * 24 * 365 ) * 3 + 500 = $1288.4
On-Demand だと3年で $2628 だから約半分ですね。
EC2 は今東海岸とヨーロッパにしかサーバがないんですが、日本を含めたアジア地域でも早期に直接提供する意向を示していて凄く期待してます!
ちなみに使ってみた感覚だと画像や CSS, JS ファイルなど static なデータを CloudFront で配信すると体感的には大して遅く感じないかなと思います。
最初のキャッシュされるときが遅いのと SSL 領域は適用できないくて遅いのはあるけど、他のメリットと比べれば今でも十分実用的に思えます。
日本に来て SSH がさくさく使えるようになると最高だなぁ。
■linux 機に USB HDD をつけた。
linux が動いてるマシンに USB HDD をつけた。何気に初体験なので記念に記録を残しておきます。
OS は CentOS 4.3。
接続前の状態
HDD が IDE で一台つながってるだけです。
[admin@vkgtd log]$ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
116015556 21196144 88926088 20% /
/dev/hda1 101086 12249 83618 13% /boot
none 513484 0 513484 0% /dev/shm
接続時の messages ログ
tail して接続時の様子を見てみました。
[admin@vkgtd log]$ sudo tail -F mesasges Jul 4 23:11:40 vkgtd kernel: usb 1-3: new high speed USB device using address 2 Jul 4 23:11:41 vkgtd kernel: SCSI subsystem initialized Jul 4 23:11:41 vkgtd kernel: Initializing USB Mass Storage driver... Jul 4 23:11:41 vkgtd kernel: scsi0 : SCSI emulation for USB Mass Storage devices Jul 4 23:11:41 vkgtd kernel: Vendor: I-O DATA Model: HDC-U Rev: 1.09 Jul 4 23:11:41 vkgtd kernel: Type: Direct-Access ANSI SCSI revision: 02 Jul 4 23:11:41 vkgtd kernel: usbcore: registered new driver usb-storage Jul 4 23:11:41 vkgtd kernel: USB Mass Storage support registered. Jul 4 23:11:41 vkgtd scsi.agent[8203]: disk at /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0/host0/target0:0:0/0:0:0:0 Jul 4 23:11:41 vkgtd kernel: SCSI device sda: 488397168 512-byte hdwr sectors (250059 MB) Jul 4 23:11:41 vkgtd kernel: sda: assuming drive cache: write through Jul 4 23:11:41 vkgtd kernel: sda: sda1 Jul 4 23:11:41 vkgtd kernel: Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
認識した(・∀・)
パーティション切り直してフォーマットして mount
[admin@vkgtd log]$ sudo fdisk /dev/sda
このディスクのシリンダ数は 30401 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
コマンド (m でヘルプ): p
Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sda1 1 30401 244196001 c W95 FAT32 (LBA)
コマンド (m でヘルプ): d
Selected partition 1
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-30401, default 1):
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-30401, default 30401):
Using default value 30401
コマンド (m でヘルプ): p
Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sda1 1 30401 244196001 83 Linux
コマンド (m でヘルプ): w
領域テーブルは交換されました!
ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
[admin@vkgtd log]$ sudo mkfs -t ext3 /dev/sda1
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
30539776 inodes, 61049000 blocks
3052450 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=62914560
1864 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[admin@vkgtd log]$ sudo mount -t auto /dev/sda1 /mnt/usb
作業後の状態
[admintaro@vkgtd log] $ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
116015556 21198700 88923532 20% /
/dev/hda1 101086 12249 83618 13% /boot
none 513484 0 513484 0% /dev/shm
/dev/sda1 240362656 21368632 206784224 10% /mnt/usb
■Software Design 2006年4月号に lighttpd の記事
Software Design 2006年4月号に lighttpd の記事を AzureStone(あーじゅ・すとーん)さんが執筆されたという事で買ってきました。lighttpd インストールしてみたけどそのまま放置してる自分にはもってこいの記事でした。設定例と説明も載ってます。
技術評論社 (2006/03/18)
ちょっと気になったところを野暮なツッコミ。(2006/03/21 追記:以下は当方の間違いです。コメント欄にて、AzureStoneさんから補足していただきました。)
p76 FastCGI による CGI の高速処理
また、Apache の mod_perl では対象言語は Perl に限られますが、FastCGI では Perl 以外にも Ruby や PHP など複数の言語をサポートしています。
って書いてあるけど、Apache でも mod_ruby とか mod_php とか mod_python とかあると思うんだけど(;'-')
p81
「落ちる」と「落ちない」は別「速い」と「落ちない」は別
「Apache と lighttpd とで負荷検証したら、Apache は落ちたけど、lighttpd は落ちなかった!」と言う話です。
この話は、Apache と lighttpd が逆になってませんか?
「lighttpd は落ちたけど、Apache は落ちなかった!」としないと次に続く話につながっていかないような('-';)
■cdb ファイルを make コマンドで更新する
tcpserver で使われる cdb 形式のルールを make コマンドで更新してみる。
#tinydns の data が make で更新できて便利だな~と感じてたので、他のも!
Makefile:
# 生成されるファイル(.cdb) CDB= tcp.test.cdb # 生成に使用するファイル SRC= tcp.test $(CDB): $(SRC) tcprules $@ cdb.tmp < $<
こんな感じで、Makefile 書いておいておく。
んで、tcp.test にルール追加したりして、make すると、自動的に tcp.test.cdb 生成!
[taro@taroweb cdb]$ make tcprules tcp.test.cdb cdb.tmp < tcp.test
ちょっとだけ楽チン!(いや、make 使ってみたかっただけです('-';))
■qmailmrtg の Memory Usage 取得設定
自分内締め切りで追い詰められに追い詰められて、テンパッている今日この頃です。ギーギー。
またしても、たろうぇぶがサーバダウンしやがりまして、どーしてこう忙しいときを狙って落ちるんだ?こいつぅ、とかまぁ、錯乱気味に原因究明とかしつつ、原因究明の際に qmailmrtg の一部がずっと前から気になっていた個所が気に入らなくなって対処してみた。
qmailmrtg が吐くデフォルトの設定ファイルは、free の取得部分が以下のようになっている。
Target[mem]: `free | /usr/bin/awk '/Mem: /{print $3*1000; print $4*1000; print ""; print ""}'`
これだと起動後からじわじわとメモリーを食いつぶしてく様に見えて、「ぐは、メモリー足らねぇのかヨ!」とか勘違いして危うくメモリー増設とか検討したくなっちゃうんだけれども(おばかさん)、どうやら、 -/+ buffers/chche
を見たほうがいいらしい。
ということで、
Target[mem]: `free | /usr/bin/awk '/cache: /{print $3*1000; print $4*1000; print ""; print ""}'`
てな風に変えてみた。
awk はこんな書き方で合っているかは不明(゚ロ゚;)
■qmail のロギング
おかしいおかしい。なんで、/var/log/maillog にたまるんだろう?と思ったら、
/var/qmail/rc に、splogger (syslog)の記述があった(バカ
#!/bin/sh exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Maildir/ splogger qmail
splogger 以降を消して、daemontools で問題なくロギング。
■MySQL で、ユーザに DB 作成権限を与える。
ものすごい引っかかったのでメモφ(,_,*)メモメモ(*'-')ノ□ペタッ
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP ON `hogehoge%`.* TO foo@localhost;
ユーザに自由に、hogehoge(.*)なデータベースを作成させるには、
バッククォートで括って、"%" をワイルドカードにする。
"*" だと思ってずっと引っかかってた(ノ∀`)
■qmailmrtg7 入れてみた。
週末サーバダウンした原因は結局つかめてないんだけども、ここのところ、SMTP に対してものすごい勢いでアクセスがあったことが発覚。
ヘタレな自分にはグラフで見えると何かと気がつきやすいかもってことで、qmailmrtg7を入れてみた。

いやぁ、MRTG って、snmp 無くても動くのね(誤認識
qmailmrtg7 の吐き出した設定ファイル見て、「おぉ、なるほど」とか思ってしまいました('-';)
■たろうぇぶ落ちた orz
週末の話ですが、01/27 22時40分から23時頃まで、たろうぇぶ落ちました_| ̄|○
どうやら、メールサーバ(smtp)はもっと前から落ちていた模様。
再起動専用電話番号があって助かりました。
さくらインターネットさんに感謝( ´∀`)
いやほんと、相当動揺してたので(笑)、すいません orz
結局原因がつかめず、内心ちょっと怖ヒ(;゚ロ゚)
#AzureStoneさん、色々ありがとうヽ( ´∀`)ノ
■続・Image::Magick rpmでハマる(5.5.7-10 RPM)
色々試行錯誤した結果、rpmで入れればいいじゃないって事にして、try したところハマった_| ̄|○
[Magick-bugs] Fwd: Imagemagick 5.5.7-10 RPM
I had to force it with..
ln -s libMagick.so.0.0.0 /usr/lib/libMagick.so.5
rpm -hiv --nodeps ImageMagick-perl-5.5.7-10.i386.rpm
シンボリックリンク張ればいいじゃないってことで、解決ヽ( ´∀`)ノ
■外から Web ページが見えない(つД`)
Apache + mod_ssl デキターとか思ったら、
外から見えない_| ̄|○
今朝からずっと、原因究明してるけど不明。
SSH で接続してて、lynx とかで、localhost とか、
192.168.1.15 (サーバに振られてる Local IP)では見えるんだけども・・。
ちゃんと、port 80 で待機してるし、ワケがワカランヽ(`Д´)ノ
というか、apache のログに足跡が残ってないけど、
アクセスが apache までいってないとか?!
(*'へ'*) ムー
SSH で接続できてるってことは、機械的な原因とか、ルータ周りではないよね。
nmap の結果(SSL はまだ使ってない)
Starting nmap V. 3.00 ( www.insecure.org/nmap/ ) Interesting ports on (192.168.1.15): (The 1599 ports scanned but not shown below are in state: closed) Port State Service 22/tcp open ssh 80/tcp open httpNmap run completed -- 1 IP address (1 host up) scanned in 3 seconds
外から、telnet で port 80 へアクセスすると、
telnet: Unable to connect to remote host: No route to host
って言われる。
(*'へ'*) ムー
──追記─────
Firewall だった_| ̄|○
redhat 系の firewall は lokkit コマンドで設定可能と(メモメモ
誰か時間を返してください(つД`)
■PostgreSQL で、createdb できない
ガリガリとセットアップしまくってるわけですが、
久々の PostgreSQL のセットアップでハマッたハマッた。
と言う事で、メモメモ。
initdb して、起動させた後、createdb ができなかった。
WARNING: could not remove database directory "/usr/local/pgsql/data/base/12345" DETAIL: Failing system command was: rm -rf '/usr/local/pgsql/data/base/12345' HINT: Look in the postmaster's stderr log for more information. ERROR: could not initialize database directory; delete failed as well DETAIL: Failing system command was: cp -r '/usr/local/pgsql/data/base/1' '/usr/local/pgsql/data/base/12345' HINT: Look in the postmaster's stderr log for more information.
エラー見ると、$PGDATA のパーミッションかなんかだろうと思ったけど、
まったくもってうんともすんともいかない。
んで、エラーログ見たら、
sh: line 1: cp: command not found sh: line 1: rm: command not found
ん?コマンドが無い??
起動スクリプト見たら、PATH に、/bin が通ってなかった_| ̄|○<ウッカリウッカリ
#たろうぇぶん時もやったミスだな(;´Д`)
気が付くの遅いかも_| ̄|○
#Failing system command was って言われてるしね。<そこで気がつけよ・・・
■SpamAssassin その後
む~。
メルマガ系は、SPAM 扱いになりやすいな・・・。
早速、ユーザから、[SPAM] って付いちゃってるぞ!ってなメールが来てる^^;
というか、転送されると転送したメーラでヘッダも本文も書き換わって送られて、
どうしたもんかなぁ。
メールはそのまま、添付しると言ってるのにΣ(゚口゚;
まぁ、添付しろと言われてもワカランわな_| ̄|○
■SpamAssassin メモ3
qmail の再コンパイルは、たいしたことなかった^^;
qmailqueue-patch 充てたら、make setup しただけ。
あんなにあっさり行くもんだったっけ?Σ(゚口゚;
一応設定ファイルとかご丁寧に tar で固めて別なトコに置いたりしたけど、
./config しなければ、上書きされる事もなかった^^;
んで、問題の qmail-scanner だけど、
こいつのために、suidperl まで入れてやってしまったぜ。
LANG 環境変数が、jp-JP.EUC じゃないとか、(うちは、jp-JP.ujis ってしてた)
いろいろ言われたりなんだりだったけど、無事組み込み完了。
その後、テストしてください!と言わんばかりに、spam がとどいたんだけど、
微妙に挙動が違うのでチェック・・。
qmail-scanner-queue.pl の中身もがんばって読もうと試みたけど眠い(違
どうも、こっちはこっちで処理してる部分があるようで気持ちが悪い^^;
んで、SpamAssassin の README とか、読み返していたら、
qmail-spamc なんてのが同梱されてるのを発見!
早速、ビルドして、install。
問題なく動いてます。
以下、翻訳にもあるように、ウイルススキャンな機能がいらなければ、
これを使った方がよさげ。
英語わかんないので、翻訳にかけて多少手直ししたものを置いておく。
qmail-scanner のより最近のバージョンは、spamc および spamassassin の両方のサポートを含んでいます。
However, since qmail-scanner is itself a Perl script, it can use significant resources while running.
しかしながら、qmail-scanner がそれ自体 Perl スクリプトであるので、それはランニングの間著しいリソースを使用することになります。
If you don't need the antivirus features of qmail-scanner, you can use qmail-spamc instead.
qmail-scanner のアンチウイルスの特徴を必要としなければ、qmail-spamc を代わりに使用してもよいでしょう。
This small wrapper program (written in c) can be used to insert spamc into the stream ahead of qmail-queue.
この小さな(C の中で書かれた)ラッパープログラムは qmail-queue に先立つ流れに spamc を挿入するために使用することができます。
It is used in much the same fashion as qmail-scanner, which requires patching qmail to use the QMAILQUEUE environment variable.
それは、qmail-scanner(それはQMAILQUEUE環境変数を使用することをパッチングqmailに要求する)としてほとんど同じ流行の中で使用されます。
From a system startup file (like /etc/profile), set QMAILQUEUE like this:
export QMAILQUEUE='/usr/bin/qmail-spamc'
and add a similar line to the run script for the smtpd service.
そして、smtpdサービス用の実行スクリプトに同様のラインを加えてください。
If you are using the recommended daemontools installation, you can do something like this instead:
あなたがそうである場合推奨された daemontools をインストールしていたら、このようなものを代わりにすることができます。
echo /usr/bin/qmail-spamc > /service/smtpd/env/QMAILQUEUE
Now, all e-mail sent through qmail (either by smtp or qmail-inject) will be
processed by spamc/spamd before being scheduled for delivery.
さて、qmail(smtp か qmail-inject のどちらか)によって送られた電子メールはすべて、
配達の予定の前に spamc/spamd によって処理されるでしょう。
You will have to have both qmail-queue and spamc in a directory in the system PATH in order for this to work correctly.
正確に働くためにこのためにシステム PATH にディレクトリー中の qmail-queue および spamc の両方を持たなければならないでしょう。
John Peacock
jpeacock@rowman.com
July 8, 2002
To build qmail-spamc, type
make qmail/qmail-spamc
at the top level. (Nov 20 2002 jm)
■SpamAssassin メモ2
打ち合わせから戻って受信してワロタ。
自ら SPAM だと主張する SPAM メールw
自分にとっての SPAM の8割が、SPAM として Subject を書き換えられてました。
#本文やヘッダ、Subject の書き換えはそういう風に設定しているからです。
がんばって、qmail-scannner 組み込んで、受信するメール全て、SpamAssassin 通すようにするかぁ。
qmail の再コンパイルめんど~
■SpamAssassin メモ1
打ち合わせに出なくちゃならんので、忘れそうなところをメモ^^;
○すでに、spamd はサーバとして立ち上げてる
○自分の spam メールばかりなアドレスだけ、.procmail でフィルターかけた。
これでしばらく様子見。
.procmail の理解に苦しんだw
─今後の作業─
上記で上手くいってるぽかったら、
qmail-scannner をいれて、qmail を再構築(メンドクサ
さらに、spam なメールはサーバ側で捨てるようにする。
#また、.procmail と格闘だな^^;
■DB_File.pm
ちょっと、SpamAssassin に必要っぽいものをガリガリ入れてるんだけど、
いいかげん、CPAN モジュール使おうか検討中。
DB_File は、Berkeley DB が必要ってことで、インストールを試みて、結構こけたのでメモ。
#どうでもいいけど、おいしそうな名前だなぁと思ってたら、
#ベーカリーじゃなくてバークレーΣ(゚口゚;<英語弱いのなんとかしる
#DB_File は、Required Modules じゃ無いので、あったらいいな程度みたいです;)
自分は、最新 Ver の 4.2.52 を入れました。
configure スクリプトが直下にないんだけど、
dist ディレクトリ以下にあります。
しかし、dist/configure ってすると怒られるので、
build_unix に移動してから、../dist/configure ってやればオッケー。
この辺は、README に書いてあったかも^^;
んで、install すると、
/usr/local/BerkeleyDB.4.1 以下にインストールされるんだけども、
DB_File make 時に、db.h がねぇよ、と怒られるので、
/usr/local/BerkeleyDB にシンボリックリンクを張って、
DB_File インストール前に、
export LD_PRELOAD=/usr/local/BerkeleyDB/lib/libdb.so
とする。(README のとおりにやっただけ。)
あ~、db.h とか、libdb.a とかは、別途、/usr/local/include や、/usr/local/lib にシンボリックリンク張った。
これでOKと。
BerkeleyDB 2.x 以上の機能を使いたい場合は、
DB_File じゃなくて、BerkeleyDB モジュール使えとさ。
必要になったらまた入れるべぇ。
■アップデート(n‘∀‘)ηしまくり!!
せっかくなんで、たろうぇぶのカーネルとかアップデートしまくったw
ついでに、どーにも気がすまなかったので、gd を入れた。
libjpeg、libpng、freetype2、gd で、perl モジュールが GD、GD::TextUnit、GD::graph、GD::graph3d と勢ぞろいです。
全てテストも successful!ヽ(´ー`)ノヤッタ
そして、何で今更 GD に、こだわったかと言うと、
Template-Toolkit がすごいらしいってことで、
入れようとしたら GD 周りで意義申し立てを食らったのです^^;
GD に関するところを外しても良かったんだけど、せっかくだしね。
今後 MRTG を入れたいだとか、GD 自体、ちゃんと入ってれば役に立つ代物だし。
んで、この辺参考に、やってみましたさ!
Javascript を吐かせてそのまま貼り付け。
鳳千華: 検索結果を自動取得
確かにすごい。
モジュール作者様様です。CPAN 万歳!
正規表現に弱い自分にも分かりやすかったです。
■さくらさんのセキュリティアドバイザリー
さくらインターネットの専用サーバなどのサービスに向けて、
Redhat linux 9 のセキュリティアドバイザリー情報の公開を開始した模様。
専用サーバ Red Hat Linux セキュリティアップデートサービス
Red Hat社のRed Hat Linux9に対する公式サポート終了に伴い、専用サーバをご利用のお客様に対して、Red Hat Linuxセキュリティアドバイザリーの無償提供を開始致します。
カーネルが、rpm でアップデートできるって言うのは、いまだに少し不思議(;゜〇゜)
普通に -ivh とかのオプションでできるんかな?<知らんのかいなΣ(゚口゚;
rpm は良くわかってないんです(;´Д`)
だから、rpm で入れられた GD がどうにもならんわけで^^;
■apache のログローテーション
ちょっと考えるところあって、
apache のログを各ユーザディレクトリに置くように変更した。
実はデフォルトでローテーションしてるんだろうと思ってたら、
ログが肥大化してたなんてことはないですよ、えぇ(;゜〇゜)
そんなわけで、apache 付属の rotatelogs を使って、ローテーションする事に。
んで、ローテーションされて切り出されたログをさらに、
gzip 圧縮したり、rm -rf したりする sh スクリプトを一生懸命書いて見たりする。
logrotate を使わなかったのは、なんか嫌だからだΣ(゚口゚;
#結局、suexec_log のために使ったけど、いちいち apache 再起動させるのがなんかイヤ。
しっかし、全ての作業を終えて、 ps したらえらい事になってた(;゜〇゜)
rotatelogs だらけ(゚ロ゚;)
まぁ、仕方あるまい orz
■久々にサーバセットアップ
仕事で、サーバのセットアップしてました^^;
打ち合わせで、たろうぇぶと同じ環境に構築もできるように話を進めてたので、
苦労しないで住むかと思いきや、はまったはまった^^;
なにぶん、たろうぇぶのセットアップももう半年前なのねΣ(゚口゚;
忘れてる事多すぎ。
相変わらず、DJB 漬けな構成にセットアップしたんだけど、
vpopmail とか、qmailadmin がいつのまにか version up してて、
ちょっとつまづいた。
qmailadmin 1.2.0 (・∀・)イイ!!
Redhat 9 に DJB 系ツールをインストールするときは、
error.h の4行目を #include <errno.h> に変更するのは忘れてなかった。
#というか、自前の Install メモが役に立ったヽ(´ー`)ノ
#なぜそう変更すると、make がとおるのかは覚えていないw
#バッドノウハウだなw
あとは、サーバ会社さんから渡された状態のままだと思うんだけど、
apache が、2.x系で、ソースから構築されていたので、
そのまま使用することにしようと思ったら、
/var/www 以下に公開ディレクトリを置く事に~Σ(゚口゚;
どうも、--suexec-root=/var/www で構築してるようだ(;゜〇゜)ヤラレタ
ココ以外に置いたとき、バーチャルドメイン時に suExec が無効になってしまうので、
useradd -d /var/www/user user
って感じで、user 作るときにそこのディレクトリ以下をホームディレクトリにして構築する事に決定!(行き当たりばっt(ry
#シンボリックリンクを張るとか、vsftpd のコンフィグいじってあわせるとかも考えたけど、
#これがいいカナ~と^^;
#パーティションは、 / にいっぱいいっぱい振ってあったしΣ(゚口゚;
何にしても、ドメインの多さでヘトヘト。
tinydns にしても、 apache にしても、 vpopmail にしてもね^^;
後の苦労話は全部ポカ話なんでこの辺で^^;
#sshd 落としちゃったりねΣ(゚口゚;
#あぁ、でも、reboot したら、ファイルの所有者が変わるあのサーバが悪いw
#reboot は、自動起動のテストです。
#多分、起動時 /var をマウントするときか何かに所有者を変えられてしまうのではないかと。
#あのサーバは、しばらく reboot 出来ないw
■SPAMメールブラックリスト
携帯の転送設定外すついでに、
SPAMブラックリスト参照先を relays.ordb.org に変更した。
#どこがついでなんだか^^;
■続・Sambaサーバの設定
ブラウズできるだけでした_| ̄|○ガクッ
書き込みができねぇ~~
と思って、 /home/hoge ディレクトリに対して、 chmod して、
other にも書き込み権限を与えたところ、書き込みはできた。
しかし、当たり前のように、今 Windows にログインしている User が書き込んだことになっちゃって、 hoge で書き込みされてない。
そのディレクトリのユーザとして書き込む方法を、これから、暇を見ては探していこうかと思う^^;
■Sambaサーバの設定
しばらくいじってなかったから、完全に失念していたらしい^^;
僕ト云フ事: XML::PaserとXML::RSSで、
個別のディレクトリにマイネットワーク越しにアクセスできないと書いたけど、
できたできたw
ただ単に、共有設定増やして無かっただけw
他のuserのhomeディレクトリは、homesとは別に、設定する必要がある、と。
#既にアクセスしてるディレクトリは、
#Winのユーザ名とLinuxのユーザ名が揃ってたから、
#homeディレクトリにアクセスできてたというね、
#大丈夫かよ、おまえさん(;´Д`)
■XML::ParserとXML::RSS
表題のモジュールが、テスト環境(Local)に入ってなかった(鬱
今までどうやってテストしてたんだYO?!と思ったら、
前に使ったときは、サーバ再インストールする前だったのね(トホホ
んで、急いで入れてやろうと思ったら、expatも入ってなかった(二重鬱
どうでもいいけど、Localのサーバ、構築しなおしたくなってきたw
http://192.168.1.12/~hogehoge/ の /~hogehoge/ が邪魔くさい^^;
後は、せめてsambaの設定を変えるべきだなぁ。
Localなのに、FTPで頑張ってるお馬鹿さんです・゚・(ノД`)・゚・。
#win2kで、ドライブ割り当てしてると、今ログインしてるuser以外の
#他のuserディレクトリが見れないΣ(゚口゚;
■GDモジュールで詰まった
毎度毎度コケてる気がしますが;;
たろうぇぶにGD入れてないことを確認してしまい、
仕事のテスト用サーバとしてもこれじゃぁ使えないって事で、
インストールを始める。
やっぱり、ネックになったのは、rpmでインストールされちゃってるgdライブラリと、その軍団(libjpeg、libpng)でして、何でgdのversion、1.8.4なのよ・゚・(ノД`)・゚・。
rpmは依存関係よくわからんのが引っかかってるし、
UPDATEしようか、別途、違うディレクトリに、gdをソースから入れてやろうか迷ったけど、
GD.pmを最新版ではなく、1.41を入れることにした。
んで、make testで100%falseとか言われちゃって焦ったけど、
よく見ると、t/GD.tがGD.pmを見つけられない様子^^;
無視して、suしてmake install。
ばっちり、GD.pm入りました^^
動作も確認~。
と云う事で、たろうぇぶはGDも入りました~
■このサイトのダブルドメイン
辞めたw
明確に言うと、http://sky.flipflap.netを別なディレクトリに割り当てて、
.htaccessで、sky.taro-web.comへリダイレクトするようにした。
#httpd.confでやる方法があったら、誰か教えてくださいm(_ _)m
httpd.confに、Redirect命令で飛ぶのかな?^^;
でも、<VirtualHost>の中じゃダメっぽいよね。
まぁ、301でリダイレクトさせられれば、なんだっていいんですw
google対策だし^^;
■たろうぇぶドメインDNS伝播中
というか、仕事から帰ってきたら、見事に伝播は伝わったようです。
#まだ、伝わりきってるかは知らんがw
ということで、このサイトのURLは、http://sky.taro-web.com/です。
これでようやく、トラックバックも気兼ねなく打てるぞ~!
#っていうか、打つ先が今んとこなしw
ユーザ様方も、flipflap.netをtaro-web.comに置き換えても
アクセスできるようになっております~
■D・N・S!!D・N・S!!
む~、たろうぇぶのドメインはさくらさん預かりなので、
先方の言うとおりにしなければならず、セカンダリネームサーバを用意されてしまったw
#イラネw
おかげで、今のところ不要だった、ゾーン転送の準備までやってみたり。
この作業は難なく出来たんだけど、
たろうぇぶドメインの登録時にテストしていてどうしようもない事に気がついた。
# dnsq A www.tamagraphics.net dns.flipflap.net
1 www.tamagraphics.net:
145 bytes, 1+1+1+4 records, response, authoritative, noerror
query: 1 www.tamagraphics.net
answer: www.tamagraphics.net 86400 A 202.222.28.175
authority: tamagraphics.net 259200 NS dns.flipflap.net
additional: dns.flipflap.net 259200 A 202.222.28.175
additional: dns.flipflap.net 259200 A 202.222.28.175
additional: dns.flipflap.net 259200 A 202.222.28.175
additional: dns.flipflap.net 259200 A 202.222.28.175
えぇ~。additionalが重複した返事されてるじゃないですか_| ̄|○
taro-web.com/flipflap.net/tamagraphics.net/min-web.com、見事に4つ分。
ドメインひとつに付き、"."行で登録しているのが問題のようだけど、
それをやめたドメインから検索できなくなった_| ̄|○
(多分、"Z"行と"&"行でSOAレコードを登録せねばならないと思われ。)
DNS 入門
「多くの場合になんとなく動けばいい」のではありません。
_| ̄|○<オッシャルトオリデス
ヽ(`Д´)ノ
■サーバのリブート
新たろうぇぶサーバの設定不備のため、22時~24時の間に何度か再起動しました。
まぁ、サーバごと再起動する必要は無いんだけど、
プロセスがだんだん大きい番号になっていくのがいやだったのと、
Apacheの自動起動のテストです^^;
アクセスした人がいたらごめんなさい。
↓メモ
/home/packageのパーミッションは変更するべからず。
daemontools関係でsetuidgidしているものから、multilogを起動できてませんでした。
■旧たろうぇぶサービス
本日、仕事の合間を縫って、現状たろうぇぶに上がっているデータをすべて、バックアップ。
新サーバに必要な分だけアップ、動作確認を行った。
そしてとうとう、さくらインターネットに解約届けを出しちゃいました。
これが受理されて、ドメインを新サーバに書き換えれば年明けからの計画はすべて終了~♪
2000年5月から独自ドメインにて運用開始して、早4年、
ようやく専用サーバです。
解約受理されたのは良いが、
一回解約届けだしただけで、ものすごい量の返事が返ってくるのは、
過剰サポートですなw>さくらインターネット
まぁ、返事が無いのと比べたらこっちのほうが良いけど。
で、どのメールに返信すれば良いんだw
■たろうぇぶ:vsftpdの設定
どーも、FTPサーバの具合が悪いような。
うちのCATVのメンテ後、回線の調子が悪いのもあるから、
こっち側の問題かもしれんが^^;
一度、設定を見直してみてもいいかも。
■新たろうぇぶサーバの内容
CPU :Celeron 2.4GHz
メモリ :512MB
HDD :80GB
回線速度:10BASE-T(最大10Mbps)
OS:RedHat Linux 9
DNSサーバ:djbdns-1.05
Webサーバ:apache_1.3.29
mailサーバ:qmail-1.03
POP3サーバ:vpopmail-5.2.2
メーリングリスト:ezmlm-0.53
管理画面:qmailadmin-1.0.6
CGI:
perl 5.8.0
php 4.3.4 with GD/PostgreSQL/MySQL/mbstrings
ruby 1.6.8
DB:
postgresql-7.4.1
mysql-4.0.17

![Software Design (ソフトウエア デザイン) 04月号 [雑誌]](http://sky.taro-web.com/img/sd0604.jpg)




