長い間(3年3ヶ月)自宅サーバを稼動させていて、こんな経験は初めてでした。
一昨年秋より、Perl や PHP を使った CGI プログラムをレンタルしています。その中に、PHP で ImageMagick を利用し、画像を縮小するコマンドを実行させ送信された画像のサムネイル(小さな画像)を自動的に作るものがあります。画像アップロードツール(レンタル画像スペース)いうプログラムなんですが、このプログラムの、サムネイルを作る機能が、どういう訳か昨年末より働かなくなってしまいました。2日程原因究明にかかりました。
初めは、後からインストールしたプログラムの何かが悪さをしているのかなと思いましたが、最近インストールしたものは全文検索システムの NAMAZU しかありません。う?ん NAMAZU かな?、とも思いましたが、どうもピンときません。仕方なく一度 ImageMagick を make deinstall し、再び make reinstall し、ブログのシステムチェックスクリプト mt-check.cgi を使ってチェックしてみますと、
Image::Magick
サーバーには、Image::Magickがインストールされています。(バージョン: 6.2.2)
と出ましたので、やれひと安心と思ったのですが、翌日実際にレンタル画像スペースに画像を送信してみたところ、なんとサムネイルを作る機能が機能しないではないですか。(^^;)
縮小するサイズが読み取れていないのかとも思い、縮小サイズの値を表示時させてみたところ、ちゃんと表示されます。PHP スクリプトからコマンドを実行させるスクリプトの記述に誤りがあるのかとも思い、ImageMagick を利用した画像縮小コマンドでなく、単にコピーのみするコマンドで試してみると、これは問題なく行われます。ssh でサーバにログインし、PHP スクリプトのあるディレクトリで ImageMagick を利用した画像縮小コマンドを実行してみると、root でも一般ユーザでも実行できます。ディレクトリのパーミッションを全て 777 にしてみたり、オーナーを PHP スクリプトと同じ www にしてみたりもしてみましたが、全てだめでした。で、最後に駄目元とばかりに Apache を再起動させてみたところ、何と自動サムネイル作成機能が復活したではないですか。(^^;)
えっどうして…、これが正直な感想です。結局昨年末に導入した Apache の自動起動スクリプト が原因だった訳ですね。今までこのスクリプトを使えばサーバの起動と同時に Apache が起動されることは知っていたのですが、使わずにいつも自分で
/usr/local/apache2/bin/apachectl start
のコマンドを打っていました。それにしても自動起動しようと root がコマンドで起動しようと、httpd は www の権限で動作しているのだから違いはないと思うんだけどな?。