WordPress 2.7からWordPress 2.7.1へ(補足)

先の「WordPress 2.7からWordPress 2.7.1へ」で、PHPをCGIモードで動かす方法を使いました。

複雑な内容ですので、整理して自分用のメモとしてここに残しておこうと思います。

「PHPのセーフモード」とは、「WordPressの自動更新とPHPのセーフモード – IT1616(it1616.blogsite.org)」によると

レンタルサーバなどで「1つのWebサーバプロセスを複数の利用者で共有する」ような場合、PHPをモジュールで実行すると「PHPがWebサーバのユーザ権限で実行される」ため共有する他の利用者のデータにアクセスできてしまい問題が生じる可能性があります。(モジュールはWebサーバのダイナミックリンクライブラリとして動作するため)そこで、PHPを「セーフモード」に設定して「システムやファイル/ディレクトリの操作などの危険な関数に制限を加える」ことにより安全性を高めるようにできるようになっています。

だそうです。こうして安全性が高まるのはいいことなんだけど、逆にWordPressの自動アップグレード(コアアップグレード)機能が使えないといった問題も生じることになるのですね。

「PHPをCGIモードで実行」した場合、同じく「WordPressの自動更新とPHPのセーフモード – IT1616」によると

CGIモードでは、PHPはWebサーバとは別のプロセスとしてが実行されるため、各々の利用者のユーザ権限で実行されますので、通常モードでも上記のような複数利用者の共有による問題は生じません。

だそうです。

この方法によるメリット、デメリットについては、「PHPをCGIとして動かす方法について – XREA&CORE SUPPORT BOARD(sb.xrea.com)」にまとめられていましたので、引用します。

○メリット

・ユーザー権限で実行され、セーフモードがOFFになっているため、様々な制限がない。

・負荷率が管理画面で見られる。

○デメリット

・モジュール版PHPに比べて、動作が遅くなる。負荷が掛かる。

・XREAサーバー特有の機能で、汎用性がない。

今回は、「自動アップグレード(コアアップグレード)機能」を利用するため、下記の内容のみを書いた.htaccessファイルをwp-adminディレクトリに置きました。

<Files update-core.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

その他の機能を利用する場合は、その機能に対応した記述を.htaccessファイルに書き加え、wp-adminディレクトリに置くことになります。

ファイルアップロード機能

<Files async-upload.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

プラグイン新規インストール機能

<Files plugin-install.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

テーマ自動アップグレード機能

<Files update.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

プラグイン自動アップグレード機能の記述については、調査中です。update.phpで良さそうなのですが、しっかり調べきれていません。

(プラグインは、あまりたくさんインストールしていないので、手動で対応しても問題はないような気がしますが・・・)