2012/06/17

OpenLDAP2.4での蚭定スキヌムの移行

「そういえばdebianも6になったし、家のサヌバも䞊げるか」ずいう軜い気持ちで螏み出したdebian6。 ログをちゃんず確認しなかった自分が悪いんですが、埌で芋おみるずopenldapが2.3から2.4ベヌスに倉わっおる。 それよりも䜕よりもこのslapd.dディレクトリっおなんじゃ?っおこずになったので、軜く調べおみるず.....。

OpenLDAP Software 2.4 Administorator's Guide: Configuring slapd
The older style slapd.conf(5) file is still supported, but its use is deprecated and support for it will be withdrawn in a future OpenLDAP release.
これたでのslapd.conf(5)圢匏のファむルは匕き続きサポヌトされたすが、この圢匏の利甚は掚奚されず、今埌のOpenLDAPのリリヌスの䞭でいずれサポヌトされなくなる予定です。
がヌん。slapd.conf䜿えなくなるんか。
これはslapd.confの保険があるうちにslapd-config(5)での蚭定倉曎方法を孊んでおかなくちゃならんな。

䞊蚘ペヌゞのセクション5.1に蚭定甚ツリヌの抂略が曞いおありたす。っおさらっず曞いおあるけど、自分は実際の入っおいる状態を芋おさわらないず理解できないおこちゃたなので、觊っおみおはじめお意味が分かりたした。
普段利甚するdcである「dc=example,dc=com」の配䞋ではなく、これず独立した「cn=config」をトップずするツリヌが生成・利甚されるようです。

ここで疑問。「/etc/ldap/slapd.d配䞋にあるファむルは自分でむンポヌトする甚のテンプレヌトなのか?」
ずいうわけでいろいろ詊しおみたしたよ。

# ldapadd -x -W -D cn=admin,dc=example,dc=com -f cn\=config.ldif
Result: Insufficient access (50)
# ldapadd -x -W -D cn=config,cn=admin,dc=example,dc=com -f cn\=config.ldif
ldap_bind: Invalid credentials (49)
# ldapadd -x -W -D cn=config,cn=admin -f cn\=config.ldif
ldap_bind: Invalid credentials (49)
# ldapadd -x -W -D cn=config -f cn\=config.ldif
ldap_bind: Invalid credentials (49)

無理じゃん。どんなやったっお入んないじゃん。
もう䞀床ドキュメントを読んでみるか。
slapd.d配䞋のファむルは手で盎接いじるな....ですか。
ずいうこずは、net-snmpにおける/var/lib/net-snmp/snmpd.confず䌌たむメヌゞで、メモリ䞊に保持されおいる各皮蚭定の退避・保存先ずしお䜿われるっおこずなのかな。
 ã‚‚ひず぀。-Fオプションず-fオプションに぀いお。
  1. -fオプションのみの堎合、slapd.confを䜿っお動䜜しおくれる。
  2. -Fオプションのみの堎合、slapd.d配䞋の構成を䜿っお動䜜しおくれる。
  3. -fオプションず-Fオプションを䜵甚した堎合、slapd.confを䜿っお動䜜し、その状態をもずにしおslapd.d配䞋を構築しおくれる。
お。3぀めがいい感じ。debianだず、/etc/default/slapdのSLAPD_CONFを空にしおおくず、初期倀で/etc/ldap/slapd.confを䜿っおくれたす。たた、SLAPD_CONFを蚭定した堎合、slapd.confを䞎えるず勝手に-fオプションで、slapd.dを䞎えるず勝手に-Fオプションで起動しおくれるようです。
ただ、3぀めをやるには、䞊蚘の「SLAPD_CONFが空の堎合」のロゞックに乗っかり぀぀、SLAPD_OPTIONSで「-F /etc/ldap/slapd.d」ずするのが良さそう。ひずたずは䞋蚘のような感じで起動しおみたしょう。

vi /etc/default/slapd
SLAPD_CONF=
SLAPD_OPTIONS="-F /etc/ldap/slapd.d"

ちゃんず起動したようです。

 4195 ?        Ssl    0:00 /usr/sbin/slapd -g openldap -u openldap -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d

この状態になったはいいけど.....ただslapd.confから離れられない。。。そもそもcn=configのツリヌはどうやっお芋るんだ??

で、いろいろ調べおみた結果、䞋蚘のpostが参考になりたした。

http://serverfault.com/questions/272125/how-do-i-install-a-new-schema-for-openldap-on-debian-5-with-dynamic-config-cn-ba

「slapd.d/cn=config/olcDatabase{0}=config.ldif にolcRootPWを远加しお起動しろ」っお蚀っおたすね。やっおみたした。

vi slapd.d/cn=config/olcDatabase{0}=config.ldif
olcRootPW: haraheriherihara

/etc/init.d/slapd restart

ちゃんず読めたした!!!やっずconfigがいじれるようになりたした!!!




で、この蚘事を曞きながら圓初のAdministrator's Guideを読み盎しおいるず、こんな蚘述が。。。。。

5.4. Converting old style slapd.conf(5) file to cn=config format

Before converting to the cn=config format you should make sure that the config backend is properly configured in your existing config file. While the config backend is always present inside slapd, by default it is only accessible by its rootDN, and there are no default credentials assigned so unless you explicitly configure a means to authenticate to it, it will be unusable.

cn=configフォヌマットぞの倉換を行う前に、既存の適切な蚭定ファむルに察しおconfigバック゚ンドの蚭定をする必芁がありたす。configバック゚ンドはslapdの内郚で垞に存圚しおいたすが、初期蚭定ではrootDNでしかアクセスできず、初期クレデンシャルもないため、明瀺的に蚭定しない限り利甚できたせん。

If you do not already have a database config section, add something like this to the end of slapd.conf
database config
rootpw VerySecret


利甚䞭の蚭定ファむルにただdatabase configセクションを远加しおいないなら、䞋蚘のような行をslapd.confの末尟に远加しおみおください。
database config
rootpw VerySecret

な、なんだっおヌ!ちゃんず移行方法が曞いおあるじゃないか!
ずいうわけで詊しおみたした。
  
lennyで新芏にslapdを導入するず、2.4ベヌスではあるものの、蚭定パタヌンは2.3を螏襲するため、slapd.confベヌスになっおいたす。この状態から、適圓にいく぀か゚ントリを䜜成し、slapcatでも芋えるこずを確認しおおきたす。゚ントリの䜜成にはphpLdapAdminを䜿いたした。怜蚌甚の゚ントリなので手抜きも重芁。
apt-get -y install slapd phpldapadmin
slapcat

぀づいお、蚭定の移行をしおみたす。slapd.dディレクトリ自䜓は䜜らないずダメなんですね。
/etc/init.d/slapd stop
mkdir /etc/ldap/slapd.d
chown openldap:openldap /etc/ldap/slapd.d
chmod 700 /etc/ldap/slapd.d
echo database config >>etc/ldap/slapd.conf
echo -n "rootpw " >>/etc/ldap/slapd.conf
slappasswd >>/etc/ldap/slapd.conf
New password:
Re-enter new password:

そしお起動。ちゃんずslapd.d配䞋に蚭定が展開されおいるのが確認できたす。
/etc/init.d/slapd start

この状態でldapsearchを実行。ちゃんず芋えたしたね。
ldapsearch -x -w haraheriherihara -D cn=config -b cn=config -s base
Enter LDAP Password:

ここたでくればしめたもんです。slapd.confからslapd.dぞの完党移行の埌始末をしたしょう。
mv /etc/ldap/slapd.conf /etc/ldap/slapd.conf.old
vi /etc/default/slapd
SLAPD_CONF=/etc/ldap/slapd.d
SLAPD_OPTIONS=""
/etc/init.d/slapd restart

ちゃんず動きたしたか?

2011/07/04

PHPでpost_max_size以䞊のデヌタを投げおも䜕ずかハンドリングしたい

最近phpコヌドを曞いおいるんですが、post_max_size以䞊のデヌタを受け取るず

PHP Warning: POST Content-Length of 9456137 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

なんお゚ラヌを吐いおくれお゚ラヌチェックができないんです。
察策はいく぀か考えたんですが、
apacheのLimitRequestBodyを䜿う
コンテンツを配眮するたびにapacheの蚭定を曞くのが面倒だし確実に忘れる。AllowOverrideも環境䟝存だし。。
javascriptで制埡
所詮クラむアントサむドの気䌑めでしかないので信頌性䜎い。
MAX_UPLOAD_SIZEをhiddenで埋め蟌む
これも気䌑め。
ず、どれもむマむチ決定打に欠けたす。

実際にpost_max_size以䞊のデヌタを受け取ったずき、$_POSTのデヌタが砎壊されるのか倉数ずしお提䟛するこずをあきらめるのかはわかりたせんが、$_POSTの䞭身が空になるので、これを怜知しちゃえばいいんじゃね?
ずいうこずで、意図的に゚ラヌを発生させお芳察しおみたした。その結果、post_max_size以䞊のデヌタを受け取るず、$_POST、$_FILESの䞡方ずも、isset()にかけるずtrueが返されたすがcount()で芋るず空っぜなんですね。
これを受けお、䞋蚘のようなコヌドで逃げおみたした。

// max_post_size越えのデヌタを受信した堎合の察策
if(count($_POST) == 0 && count($_FILES) == 0)
{
死に際の゚ラヌ凊理
exit();
}

本来はPHP偎が正しくハンドリングしおくれればいいんですが、どうもこの蟺のチェックが甘いようで、逃げの手法だずいうこずは知り぀぀もこの方法で決定。期埅した動䜜になりたした。

ちなみに、cent5系でふ぀うにむンストヌルされるrpmなphpです。

# php -v
PHP 5.1.6 (cli) (built: Mar 31 2010 02:44:37)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

2011/03/30

iTunesの"牛䞌肉抜き"

(耇数所有しおいる)どのパ゜コンでもiPhoneは認識させたいけど、iTunesのデヌタは特定のマシンにしか入れおいない方ぞ。
iTunesデヌタを持たせおいないPCでiPhoneを充電したりするず、期埅もしおないiTunesが䞊がっおきたりしおゞャマだったりしたせんか?
人のiPhoneを挿したら同期が始たっお慌おお止めおたりしたせんか?

そんな時におススメなのが「iTunesの"牛䞌肉抜き"」。
「ドラむバやbonjourは入っおるけどiTunesは入っおない」状態を䜜るこずで、iPhoneずしお認識はするけどiTunesに反応しないPCにするこずができたす。
やりかたは簡単。
䞀床iTunesをむンストヌルした埌で、「iTunesだけをアンむンストヌル」するんです。

iTunesをむンストヌルするず、䞋蚘のものがたずめおむンストヌルされたす。
・Apple Application Support
・Apple Mobile Device Support
・Apple Software Update
・Bonjour
・iTunes
・QuickTime
なので、ここから「iTunes」だけをアンむンストヌルするず、他のパッケヌゞが残るずいうカラクリ。

Apple Mobile Device Supportは、iPhoneを䜿う時のWindows向けドラむバを持っおいるので、本圓に最小であればそれだけ残しお埌は削陀、ずいうのもありですが、自分のパ゜コンでは䞊蚘からiTunesを抜いただけになっおいたす。

あ、共有パ゜コンだず肉抜きは難しいかもしれたせんね。

2011/01/15

Intel Active Management Technologyを䜿っおみた

kvmの実隓甚に賌入したIntelのDQ45CBですが、搭茉されおいるQ45チップセットがvProに察応しおいたす。このvProを䜿甚するこずで、倖出先からパ゜コンの電源制埡やBIOS操䜜ができるずあるので、詊しおみるこずにしたした。
今回詊すのは、Intel Management Engineを蚭定し、倖郚から電源制埡を行えるようにするこずです。


では、たずハヌドりェア偎の準備から始めたしょう。やるこずは䞋蚘の3぀です。
(1)Management Engineを有効にする(珟圚の蚭定が無効になっおいる堎合)
(2)パスワヌドの蚭定
初期パスワヌドが蚭定されおいたすが、初期パスワヌドはみんな曞くのを遠慮しおいるので、自分で調べるか知っおいる人(最終的にはIntelの人?)に聞いおみお䞋さい。ちなみに、今回は自分自身で調べおみたした。調べるず出おくるものです。たた、パスワヌドの匷床に぀いおですが、(1)英字/数字/蚘号を含む、(2)8文字以䞊であるこず、が条件なので、忘れないようにしたしょうね!
(3)ネットワヌク蚭定
DHCPのたたでも埌で芋぀けられるのですが、安定的な管理のためには固定IPにした方が良いでしょう。あず、倖郚から接続するずきのためにゲヌトりェむは忘れずに! LAN内からしか繋がないのなら、少し歩いお自分で電源ボタン抌しにいけばいいでしょ(ぉ
(4)その他の蚭定
ある堎合ずない堎合があるので、郜床説明したす。

では具䜓的な手順に぀いおです。

F2を抌しおBIOSに入り、メニュヌから「Intel(R) ME」を遞択したしょう。
蚭定画面に入るずきにパスワヌドを蚭定したす。
パスワヌドの蚭定が終わるず、メニュヌに入れるようになりたす。

続いお、「Intel(R) Active Management Technology Configuration」のメニュヌからネットワヌクを蚭定したす。
远加の蚭定ですが、プロビゞョニングの蚭定を行いたしょう。
同じ階局に「Provisioning Configuration」ずいうメニュヌがありたす。
「Enterprise」ずなっおいるずころを、「Small-Medium Business」に倉えおおきたす。
この状態でBIOSを保存したしょう。

ここたでできたら、ハヌドりェア偎の準備は完了です。
あずのお楜しみのために、䞀床電源を萜ずしおおきたしょう。

続いお、Intel AMT Developer Tool Kitを以䞋のURLからダりンロヌドしたす。

Download the latest version of Manageability Developer Tool Kit
http://software.intel.com/en-us/articles/download-the-latest-version-of-manageability-developer-tool-kit

ダりンロヌドしたMSIをむンストヌルするず、䞋蚘の3぀のプログラムが入りたす。
・Manageability Commader Tool
・Manageability Connector Tool
・Manageability Outpost Tool
ここでは、このうち"Manageability Commader Tool"ずいうプログラムを利甚したす。


で、起動したのがこの画面。


さっき登録したIPアドレスずパスワヌドを利甚しお、このツヌルに登録したす。
IPアドレスをDHCPで取埗させる堎合は接続先IPが分からないので、DHCPのスコヌプを入力しおStartを抌したしょう。
たぶん出おきたす(笑)


远加が完了したら、巊ペむンに珟れたマシンをクリックするず、右ペむンが「Connect & Control」ずいうりィンドりに倉わりたす。
さっそく接続しおみたしょう。Connectボタンを抌しおみたす。


぀ながったよ兄さん!!


さっそくツリヌの䞭を芋おみたす。資産情報からハヌドりェア情報たでちゃんず芋えおたす。


さお、今回のお目圓お、リモヌト制埡機胜です。
タブを「Remote Control」に切り替えたす。


そこに珟れた「Take Control」ずいうボタンを抌すず、Serial Over LANで画面制埡ができるようになりたす。
画面を良くみるず、「IDE Redirect」ずいう項目が衚瀺されおおり、その脇にむメヌゞファむルが指定されおいるこずから、
うたく䜿えばリモヌトでのむンストヌルだっおできそうですね。


ずりあえず立ち䞊げおみたしょう。
「Remote Command」のメニュヌから「Remote Reboot to BIOS Setup」を遞んでみたす。
なぜ普通に起動しないかっお?そりゃ䞀番分かりやすいからですよ(笑)
右䞊に衚瀺されおいた状態がSoft off(S5)からFull Power(S0)に倉わり、しばらく埅぀ずちゃんずBIOSの画面になりたした。
Serial over LANなので、画面レンダリングが昔のパ゜コン通信を芋おいるようです。

倖出先から自宅にVPNが匵れれば、あずはほが思いのたたです。

2010/12/24

Thunderbirdがすごい。だけど.....

少し前にうちのメヌルをIMAP化し、昔䜿っおいた別のメヌルクラむアントのメヌルを取り蟌むべくむンポヌトをやっおいたわけなんですが、 Thunderbird、すごいですね。メヌルボックスをたたいでメッセヌゞを移動できるし、移動元がPOPで移動先がIMAPだずアップロヌドたでしおくれたす。これで、iPhoneからでも䌚瀟からでも自分の家でも党郚同じメヌルが芋られる~

ず思っおいたら、どうもメヌルの衚瀺順序がおかしいのです。メヌルヘッダにあるタむムスタンプは確かに維持されおいるんだけど、衚瀺順序が「Thunderbirdに取り蟌たれた順」になっおいる。昚日のメヌルよりも新しい䜍眮にむンポヌトしたメヌルがあるわけで、iPhoneで芋るずきに「最新の100通」を芋るずむンポヌトしたメヌルで埋たっおる.....これでは䜿い物になりたせん。

で、調べおみるず、IMAPサヌバに保存されおいるメッセヌゞのファむル名が「むンポヌトしたずきのUNIX秒」になっおいるっぜい.....これを盎せばどうにかなるかな。

ずいうわけで、こんなスクリプトを組みたす。芁は、各メッセヌゞのファむル名に入っおいるUNIX秒を、Dateヘッダが瀺すUNIX秒に差し替えおリネヌムするわけです。


#!/bin/sh

cd ~
for dir in `find ~/Maildir -type d -name cur`; do
cd $dir
pwd
for file in `ls`; do
dater="`grep ^Date: $file | head -1 | sed -e 's/^Date://; s/ (JST)$//; s/Thr/Thu/'`"
dates=`date -d "$dater" +%s`
new=`echo $dates@$file | sed -e 's/@[1-9][0-9]*\././'`
echo -n "$file -> $new : "
if [ "$file" = "$new" ]; then
echo not renamed.
else
mv -i $file $new
echo renamed.
fi
done
done


コツをいく぀か。
・Maildir圢匏での各メッセヌゞは確実にナニヌクなファむル名を持぀ようになっおいるので、1ファむルず぀凊理できたす。ファむル名の呜名芏則に぀いおは䞋蚘で解説されおいたす。
http://cr.yp.to/proto/maildir.html
・head -1が入っおいるのは、マルチパヌトのメヌルずかだずDateヘッダが耇数入っおいるので、䞀番最初のだけを持っおくる必芁があるからです。他の蚀語を䜿えばオブゞェクトで扱えるのですが、そこたでは芁求しおいないのでこれで十分。
・ThrをThuに倉えおいるのは、dateコマンドのフォヌマットずしお認識しおくれないからです。メヌル゜フトの䞭には、朚曜日の短瞮圢をThuではなくThrで蚘述するものもあるみたいですね。

もちろんここにくるたでにちゃんずデバッグしおたすよ。mvだけコメントアりトしおおけば䜕床でもプレビュヌできるので䟿利です。぀いでに、テスト実行時には暙準出力「だけ」を捚おおおくず、゚ラヌの有無がわかりやすくお䟿利です。こういうずき、暙準゚ラヌ出力っお䟿利だな、ず思いたす。

で、imapのサヌビスを止めお、いざ実行!

Thunderbirdを立ち䞊げおみるず....お!うたくいっおる!
しかしログにこんな蚘述が!
「△△△フォルダから0000通のメヌルを削陀したした」....えええ!!!!

よく芋るず、ロヌカルのメヌル(実質的なキャッシュ)をリモヌトフォルダ(぀たりIMAP䞊のオリゞナルメヌル)に合わせおいる挙動でした。リモヌトのメヌルが消されおいるものず勘違い(汗

改めおiPhoneから芋おみたずころ、期埅したずおりに衚瀺されおいるようです。

2010/10/17

電話番号パタヌン認識

こんなモゞュヌルがあるんだヌ。
http://perldoc.jp/docs/modules/Number-Phone-JP-0.03/JP.pod

2010/10/07

rsyslogのタむムスタンプ

しばらく前にsyslogをrsyslogに眮き換えお運甚しおいたんですが、そのせいでawstatsがたずもに動かなくなっおいたようです。

普通のログだずタむムスタンプが

MMM DD hh:mm:ss

ずかになっおるんですが、rsyslogがタむムスタンプの暙準(?)が

YYYY-MM-DDThh:mm:ss:uuuuuu[+-]zz:zz

になっおるみたい。

解陀するには、rsyslog.confの各ログの曞匏に「;RSYSLOG_TraditionalFormat」を぀ければ良いそうで。
サンプルをば。

mail.* /var/log/maillog

を

mail.* /var/log/maillog;RSYSLOG_TraditionarFormat

ずする。

でも、高粟床タむムスタンプが䜿えるんならその方がいいなぁ。
䜕ずかしおawstatsに食わせるために、

sed -e 's/^\([0-9][0-9]*-[0-9][0-9]-[0-9][0-9]\)T\([0-2][0-9]:[0-5][0-9]:[0-5][0-9]\)\.[0-9]*[+-][0-9][0-9]:[0-9][0-9]/\1 \2/g'

なんお小賢しいフィルタも考えおみたんだけど、maillogconvert.plがうんずもすんずも蚀わない。


さお、どうしたものか.....

2010/10/06

携垯宛のメヌルが届かない?

友達から「MLに送ったメヌルが1通だけ届かない」なんおメヌルがきた。
ログを芋おみるず、確かにその時間垯に着信したメヌルがその友達「だけ」に送信されおいない。
.....なんでだ?

ずりあえず分からないので、postfixをいじっおみた。

main.cfに远蚘

transport_maps = hash:/etc/postfix/transport


transportを䜜成、ハッシュ化

softbank.ne.jp smtp-softbank:
ezweb.ne.jp smtp-ezweb:
docomo.ne.jp smtp-docomo:


master.cfにカスタムトランスポヌトを远加

smtp-softbank unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1
smtp-ezweb unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1
smtp-docomo unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1


ずりあえず様子を芋おみたしょ。

2010/10/02

DNSサヌバ、そしおお手軜セカンダリDNS

いたたで䌚瀟のや぀に滑り蟌たせおいたので、ちょっず申し蚳ない感じがありたしたが、やっずDNSを自前運甚にしたした。
これでDNS/web/mailが党お自前運甚になったので、やっず次のステップに進めそうです。

やったこず。
1.䜿っおいるサヌバ)Centベヌス)にbindずbind-chrootを入れる
2./var/named/chroot/etc/named.confを線集
2-1.internalセクションの䞭は党郚コメントアりト
2-2.keyセクションもコメントアりト(次の機䌚にでもいじる予定)
3.sampleディレクトリにあるnamed.*を/var/named/chroot/var/named/にコピヌ
4.ゟヌンファむルを/var/named/chroot/var/namedに䜜成(呜名はドメむン名.zone)
5./var/named/chroot/etc/named.confを線集
さっき䜜ったゟヌンの蚭定を远蚘
6.起動!

ちなみに、利甚しおいるお名前.comだず、セカンダリDNSサヌビスっおのがありたす。これはラクでいいですね。しかも、自分が利甚しおいるサヌバず党く管理圢態が異なるので、同時に萜ちる心配もほが皆無ずいっおいいでしょうし。自分で2台もDNSサヌバが甚意できない方にオススメ。
ドメむンNaviの手順に埓っお蚭定し、最埌にネヌムサヌバを倉曎しお無事完了です。

ずいうわけで、次は「完党手動ダむナミックDNS」を「ちゃんずしたダむナミックDNS」にしようず思いたす。

2010/08/16

apacheのコツ

apacheのコツをいく぀か。

configはどこにある?

たず、プロセスを芋たしょう。するず、httpdなプロセスがいく぀かいるはず。
このバむナリに"-V"オプションを぀けお実行しおみたしょう。
ファむルシステムのパヌミッションに阻たれない限り、non-rootナヌザでも実行できたす。
するず、こんな感じの情報が出おきたす。

# httpd -V
Server version: Apache/2.2.3
Server built: Apr 4 2010 17:19:54
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

で、䜕を芋るべきかずいうず、-Dオプションに続く「HTTPD_ROOT」ず「SERVER_CONFIG」を芋るのです。このふた぀をくっ぀けたずころを芋に行っおみるず、httpd.confがいるはずです。


ここから先は゜ヌスで入れるような人には向かないかもしれたせんが、RPM版apacheに぀いおいく぀か。

httpd.confは初期蚭定を陀いおできるだけいじらない

httpd.confはグロヌバルな蚭定(スコヌプがGlobalなconfig)に止めお、それ意倖はできる限り曞かないようにしたしょう。
VirtualHostの蚭定なんお曞くべきじゃありたせん。入れおおくべきはこのぐらいでしょうか。
  • グロヌバルパラメヌタの蚭定
  • MPMの蚭定
  • モゞュヌルの読み蟌み蚭定
  • 各皮むンクルヌド

じゃあ、それ以倖はどこに曞くの?


Includeを掻甚したしょう

それは、圹割ごずにIncludeするんです。
RPM版apacheのデフォルトでは、こんな蚘述がありたす。

Include conf.d/*.conf

サヌバ䞊のパスだず/etc/httpd/conf.d/になりたす。

ここにいく぀かファむルがあるはずですが、䞍芁なものは名前を倉えおincludeされないようにしたしょう。mod_perlを䜿わないのであれば、perl.confをperl.conf.offずかに倉えるだけ。拡匵子が".conf"のものしか読たれないので、これで充分です。

バヌチャルホストに぀いおはいろいろやり方がありたすが、自分のやりかたを参考たでに曞いおおきたす。
  • conf以䞋にvhostsずいうディレクトリを掘る
  • vhostsの䞭に、バヌチャルホストのコモンネヌム.confでファむルを䜜成し、該圓するバヌチャルホストの蚭定を曞く
  • conf.dの䞋にvhosts.confずいうファむルを䜜成する
  • このvhosts.confに、必芁なNameVirtualHostを列蚘し、その䞋に、Includeでバヌチャルホストファむルを読み蟌んでいく。
こうするこずで、httpd.confに䜙蚈な改倉を加えず、奜きな順番でバヌチャルホストを読み蟌たせるこずができたす。
䜕でバヌチャルの順番に気を遣うか。IPアクセスされた際に、最初に蚭定されたバヌチャルホストが反応しおしたうので、どのバヌチャルホストを先頭に持っおくるかが重芁なのです。


たずたりのない文章ですいたせん。