再構築不要化カスタマイズ(MT3.3専用版)不具合修正

2007年3月7日
複数のBlogを運用する際に不具合が出ることがあったので、修正を行いました。
また、FastCGIにも対応させました。
詳細はこちらのページを参照してください。

再構築不要化カスタマイズ(MT3.3専用版)で、「一時ファイル(phptempディレクトリ内のファイル)が削除されず、ファイルがどんどん溜まる」という不具合のご指摘がありました。
この不具合の修正方法をお知らせします。

1.不具合の原因

このプラグインでは、一時ファイルをphptempディレクトリに保存します。そのため、初期化の際に、phptempディレクトリを作るようになっています。
ただ、phptempディレクトリのパーミッションを設定する処理が抜けていました。

一時ファイルの作成は、CGI(mt-perl-dynamic.cgi)で行っています。
一方、一時ファイルの削除は、PHP(mt-dynamic.php)で行っています。

サーバーの設定によっては、CGIはオーナー権限で実行され、PHPはその他ユーザーの権限で実行されることがあります。
その場合、phptempディレクトリのパーミッションが「705」や「755」になっていると、CGIで一時ファイル作成を行えても、PHPでファイル削除を行えない現象が起こります。
それによって一時ファイルが溜まるという結果になります。

2.すでにプラグインを導入している方の場合の対処方法

上に書いたように、phptempディレクトリのパーミッションが正しくないことが不具合の原因です。
phptempディレクトリにファイルが溜まっている方は、phptempディレクトリのパーミッションを「707」もしくは「757」に変えてください。
その後に、Blog内のどこかのページにアクセスすれば、phptempディレクトリ内の一時ファイルのうち、アクセスした時刻から1分以上前に作られたファイルが削除されます。

3.これから導入される方の場合の対処方法

この不具合に対応して、プラグインを修正しました。
初期化の際に、phptempディレクトリのパーミッションを707に設定するようにしました。

PerlDynamic_3_10.zip

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください