先の「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で良さそうなのですが、しっかり調べきれていません。
(プラグインは、あまりたくさんインストールしていないので、手動で対応しても問題はないような気がしますが・・・)