2007/12/1
携帯では、temporary moved(302)を返すべき!
moved permanent (301)を返すと、DoCoMoで警告がでちゃいます。auでは出ないことを確認しました。
警告を出さないようにするためには、Found(302)を返します。RedirectディレクティブのデフォルトがFoundなので、以下のように書けば問題ないです。
Redirect /service http://foo2.bar.com/service
以下でも同義
Redirect temp /service http://foo2.bar.com/service
mod_rewriteだと以下のように
RewriteRule ^/service/(.*) http://foo2.bar.com/service/$1 [R=302,L]
Read more
2007/11/30
複数台のフロントエンドサーバでapacheが動いている場合を想定します。
その場合、アクセスログが複数のサーバにまたがってしまいます。
こんなかんじ。
- web-01.access-log.20071130
- web-02.access-log.20071130
- web-03.access-log.20071130
webalizerやawstatsといったアクセスログ解析ソフトではこのファイルの状態では解析できない。
なぜなら、webalizerやawstatsのデフォルトでは1つのファイルのみを入力として受け付け、時系列順に記録されていなければならない。
この問題を解決するスクリプトを発見しました。awstatsの中に入っているlogresolvemerge.plというperlスクリプトです。
使い方は超簡単。引数に統合したいファイルを指定して実行すると、標準出力に時系列順にそろったレコードが出力される。
例:
% perl logresolvemerge.pl /path/to/log/*access.log.20071130|more
引数にgz圧縮されたファイルを指定してもちゃんと動きます。至れり尽くせりなスクリプト。
★おまけ情報★
ある日まで、commonフォーマットでアクセスログを取っていて、ある時点からcombinedフォーマットでログを取りだした場合、1つのアクセスログの中に2種類のフォーマットのログが混入してしまう。
そこで見つけたのがこの方法。commonフォーマットをcombinedフォーマットにする方法。
http://www.trisweb.com/archives/2007/02/15/convert-apache-common-logs-to-combined-logs/
3回シェルのコマンドを実行すればできちゃう!CUIはすばらしい。
参照:
http://awstats.sourceforge.net/
2007/10/1
% ./configure --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl
% make
# make install
subversion-1.4.5 on linux CentOS 4.4.
2007/8/30
新規案件のサーバをセットアップしているときに、pearでライブラリを入れていたら、
「Webのインストーラあるよ」と表示されたからちょっと試しに使ってみた。
PEAR: Optional feature webinstaller available (PEAR’s web-based installer)
PEAR: Optional feature gtkinstaller available (PEAR’s PHP-GTK-based installer)
PEAR: Optional feature gtk2installer available (PEAR’s PHP-GTK2-based installer)
To install use “pear install pear/PEAR#featurename”
初期設定はこんな感じ。ホームディレクトリは /home/matsu/ ね。
cd public_html
mkdir go-pear
cd go-pear
wget http://pear.php.net/go-pear
mv go-pear go-pear.php
chmod 777 /home/matsu/public_html/go-pear
go-pear.phpにアクセスしたところ。

1 start up, originally uploaded by supermatsubokkuri.
Read more
2007/7/12
PHP5.2.3の configureオプションである–disable-allを指定した場合にどの程度パフォーマンスに影響するかを実験する。
–disable-allとは、PHPをインストールする際にデフォルトでインストールされる機能をインストールしないようにするオプション。デフォルトでは不要なも機能まで入ってしまうため、無駄が発生する場合がある。例えば、XML,JSON、filter、PDOなどである。
PHP実験環境
- 共通環境
- ゲスト:CentOS release 4.4 (Final) (on Vmware server 1.0.2)
- ホスト:Windows XP Professional
- CPU: Intel Core2 Duo 6600 2.4G
- Apache:2.2.4
- ./configure –prefix=/usr/local/apache2 –enable-ssl –enable-rewrite –enable-so
- 環境1
- ./configure \
–enable-mbstring \
–enable-soap \
–enable-zend-multibyte \
–with-apxs2=/usr/local/apache2/bin/apxs \
–with-mysql=/usr/local/mysql \
–with-pdo-mysql=/usr/local/mysql \
–with-curl \
–with-curlwrappers \
–with-gd \
–with-jpeg-dir=/usr/lib \
–with-png-dir=/usr/lib \
–with-zlib-dir=/usr/lib \
–with-mcrypt
- 環境2
- ./configure \
–enable-mbstring \
–enable-soap \
–enable-zend-multibyte \
–with-apxs2=/usr/local/apache2/bin/apxs \
–with-mysql=/usr/local/mysql \
–with-pdo-mysql=/usr/local/mysql \
–with-curl \
–with-curlwrappers \
–with-gd \
–with-jpeg-dir=/usr/lib \
–with-png-dir=/usr/lib \
–with-zlib-dir=/usr/lib \
–with-mcrypt \
–enable-libxml \
–disable-all
- 環境1には入っていて、環境2には入っていないモジュール
- ctype
- dom
- filter
- hash
- iconv
- json
- pcre
- PDO
- pdo_mysql
- pdo_sqlite
- posix
- session
- SimpleXML
- SPL
- SQLite
- tokenizer
- xml
- xmlreader
- xmlwriter
結果
ファイルサイズ
|
環境1 |
環境2 |
環境2/環境1
(100%以下なら小さい) |
| libphp5.soのファイルサイズ(B) |
17268191 |
11998616 |
69% |
| /usr/local/bin/phpのファイルサイズ(B) |
16307443 |
11306924 |
69% |
| apache起動直後のメインプロセスVSZ (kB) |
19572 |
17332 |
89% |
| apache起動直後のサブプロセスVSZ (kB) |
19704 |
17468 |
89% |
コマンドラインベンチマーク
コマンドラインにてfunction callの速度を計測。PHPのソースコードに付属している ./Zend/bench.php を利用。 5回実行した結果の平均を記載。
% php ./Zend/bench.php|awk ‘{print $2}’
|
環境1 |
環境2 |
環境2/環境1
(100%以下なら環境1が高速) |
Webベンチマーク
Webでアクセスした際のパフォーマンス測定。コマンドラインと同じスクリプトを利用
| 環境1 |
環境2 |
環境2/環境1
(100%以下なら環境1が高速) |
結論
Webで利用した場合は、環境1と環境2において差異は無さそう。
ファイル容量がモジュールを削減した分、20%程度減っているため、プロセス起動が頻繁に発生する場合に環境2はアドバンテージがある。
環境1

環境2

2007/5/20
apache 2.2.4 へアップグレードしようとしたら、aprが古いってエラーだされた。
checking for APR-util… yes
configure: error: Cannot use an external APR-util with the bundled APR
解決するためには、いつものconfigureに–with-included-apr を追加すればOK!
こんな感じで。
./configure --enable-rewrite --enable-so --enable-ssl --with-mpm=prefork --with-included-apr
2006/8/16
物理マシンのCPUがほとんどidleなのに全然CPUを割り当ててくれてない。
そして、遅い。 PHPのコンパイルに20分かかる。
追記:やっぱり、おそい。おそすぎる。ぜんぜんCPUリソースを割り当ててくれていない。
そして、プロセス数の最大が60とか70だと全然足りない。
daemontoolsでデーモンを管理し出すと軽いプロセスが1サービスにつき4つできちゃうし、
Apache,PHP,MySQLを入れたらもう60プロセス。もちろんいらないサービスはuninstallしまくり。
なので、claraのVPSはやめて他のを探した。
条件は、プロセス数が100以上。CPUリソースの割り当てが500MHz程度。
そしたら、@YMCのVPSのホスティングが一番よかった。YMCでは、サーバのプロセス数の上限なし、CPUリソース300MHz保証。
CPUに空きがあったら全部割り当ててくれる。この情報はWebでは公開されておらず、電話で問い合わせた。
YMCは費用対パフォーマンスは最高!!!!
レンタルサーバーもすすんだなー。個人で1つのホストを借りられちゃう。
2003/6/15
RPMって馬鹿だなぁ。
# apt-get remove perl
パッケージリストを読みこんでいます… 完了
依存情報ツリーを作成しています… 完了
以下のパッケージが削除されます:
MHonArc WMSoundSet WindowMaker analog apache apache-devel apache-manual autoconf automake bind bind-devel control-center
control-center-devel cvs fetchmail fetchmailconf fvwm2 gmc gnome-applets gnome-core gnome-core-devel gnome-utils groff
helptool im jman_pages kakasi kernel-source kernel-utils latex2html libpcap libtool libungif-progs magicdev man mc
metamail mew mkkpkg mod_ssl namazu namazu_JFdb namazu_JMANdb namazu_VineDocsdb ncurses-devel ntp openssh openssh-askpass
openssh-askpass-gnome openssh-clients openssh-server openssl-devel postgresql postgresql-devel postgresql-jdbc
postgresql-odbc postgresql-perl postgresql-python postgresql-server postgresql-tcl postgresql-test postgresql-tk procinfo
proftpd pygnome rail rpm-build samba samba-client sawfish-gnome sharutils svgalib svgalib-devel tcpdump uucp w3m wdm
wmakerconf xchat xlockmore xmms-gnome xscreensaver yenapp zsh
2003/6/15
メモ
Perl CPAN shell
% perl -MCPAN -e shell
% perl -MCPAN -e 'install("Bundle::Apache")'
こんな風にもできるらしい。