とあるシステム管理者とプログラマの休日

13:30 つかの間の休息


Let's noteのWindowsXPを立ち上げ、附属のDVDプレイヤーで、レンタルしてきた「あずまんが大王」を見る。

13:48〜 虫の知らせ(携帯MLより)

○○○です。Apacheを再構築するので、ちょっとの間、ウェブサーバを落とします。


なんとなく、嫌な予感がしたので、昼寝しようとするが、昨日、体調を崩して1日中寝てたせいか、
全く眠くならないので、とりあえず、「あずまんが大王」をそのまま見る。

14:18〜 電話が鳴る


用件:「PHPSmartyをアップデートしたらWikitccがエラー吐いた」


SSHでサーバにログインし、トップページをメンテナンス画面に変更して、
エラーメッセージを確認した後、原因調査。Smartyがエラー吐いてるのを確認する。

14:30〜 原因不明


index.tplがunable resourceになっているので、パスがおかしいと睨んで、
echoしまくって確認するが、パーミッション含め、問題なし。
ファイルの絶対パスを直接放りこんでみたら、エラーは消えたが、画面も消えた。
ここ1週間、php.iniとhttpd.confを含め、Wikiパーサのバグ以外のコードは変更してないし、
昨日も普通に使用していたので、自分のコードにバグはないと信じて、
Smartyのソースを直接読むことにする。

15:00〜 OS切替え


Windows+Putty+vi or emacs(主にWindows)が使いにくくてしょうがないので、Ubuntu起動。

15:20〜 Smartyソース読み


Smarty.class.phpの1095行目でエラーとあったので、
エラーメッセージを元にSmartyのソースを読むが、
単にtrigger_errorを呼び出してるだけで、スタックトレースできてないので、
必死に読む。しかし、未だ原因不明。

15:50〜 Xdebugでトレース&リモートデバッグ


ソースの流れは理解したが、原因は分からず、埓が明かないので、
Xdebugをインストールして、トレース&リモートデバッグをON

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あたりを見るべきだったと反省(_ _)。