とあるシステム管理者とプログラマの休日
13:30 つかの間の休息
Let's noteのWindowsXPを立ち上げ、附属のDVDプレイヤーで、レンタルしてきた「あずまんが大王」を見る。
13:48〜 虫の知らせ(携帯MLより)
○○○です。Apacheを再構築するので、ちょっとの間、ウェブサーバを落とします。
なんとなく、嫌な予感がしたので、昼寝しようとするが、昨日、体調を崩して1日中寝てたせいか、
全く眠くならないので、とりあえず、「あずまんが大王」をそのまま見る。
14:18〜 電話が鳴る
用件:「PHPとSmartyをアップデートしたらWikitccがエラー吐いた」
SSHでサーバにログインし、トップページをメンテナンス画面に変更して、
エラーメッセージを確認した後、原因調査。Smartyがエラー吐いてるのを確認する。
14:30〜 原因不明
index.tplがunable resourceになっているので、パスがおかしいと睨んで、
echoしまくって確認するが、パーミッション含め、問題なし。
ファイルの絶対パスを直接放りこんでみたら、エラーは消えたが、画面も消えた。
ここ1週間、php.iniとhttpd.confを含め、Wikiパーサのバグ以外のコードは変更してないし、
昨日も普通に使用していたので、自分のコードにバグはないと信じて、
Smartyのソースを直接読むことにする。
15:20〜 Smartyソース読み
Smarty.class.phpの1095行目でエラーとあったので、
エラーメッセージを元にSmartyのソースを読むが、
単にtrigger_errorを呼び出してるだけで、スタックトレースできてないので、
必死に読む。しかし、未だ原因不明。
16:30〜 Smartyをローカルのと同じバージョンにする
結局、どこがおかしいのかさっぱりわからず、Smartyのバージョンを、
正常に動作しているローカル上のWikitccで使用している最新版のに変更する。
しかし、バージョン間のdiffを取ってみて、そもそもほとんど変更されてないのに気づく。
17:00〜 PHP再インストール
もう何がおかしいんだかわからず、最初からやり直す。
17:30〜 httpd.conf書き換え
PHPの再インストールが長引きそうなので、エンジニアのための時間管理術を読んだりした後、
ふら〜っとhttpd.confを眺めてみる。*.tplファイルをDeny from allしていたorz
19:00 完了
Apacheを再起動して、正常に動作しているのを確認。後輩2人とラーメン屋へ行く。
21:30 忘れ物
トップ画面がメンテナンス画面のままだったのに気付いて、慌てて変更する。
tplファイルを.htaccessじゃなくて、httpd.confでDeny from allするようにしてたのは、
去年の秋にWikitccをリリースする際に、設定ミスかなんかで.htaccessがうまく動作しなかったので、
httpd.confに直接書いて、それから.htaccessがちゃんと動作するようになった後も
そのまま放置してたからなんだけど、何で今日まで問題なく動いてたんだろ?
最初に、パスに問題がなかった時点で、何かしらの理由で、アクセスが制限されていると考えて、
素直にhttpd.confあたりを見るべきだったと反省(_ _)。