XREA で WordPress ファイルアップロード機能を利用する

2006/08/16

私は XREA のサーバースペースを使っています。
XREA では PHP は SAFE MODE 環境で動くようになっています。

このため、WordPress のファイルアップロード機能を使う際にセーフモードの制限を受けてしまっていました。

例えば、WordPress でサーバーに新しくディレクトリを作成した場合、ディレクトリの権限が Apache になってしまうのもセーフモードの制限によるものです。ディレクトリの権限が Apache になってしまうと、WordPress からファイルをアップロードすることができなくなります。
つまり PHP からディレクトリを作成すると、ファイルのアップロードが出来ないディレクトリになってしまう、ということです。これでは不便です。

ファイルアップロード機能が使いたいのならば、回避策として WordPress Japan の wiki に載っている (ファイルアップロード機能の利用 – WordPress Japan)を参考に、「PHP を CGI として動かしてあげる」もしくは「フォルダだけは手動で作っておく」という方法を使えば良かったのですが、ふと XREA のサイトを見ていたら「XREA SUPPORT BOARD – PHPをCGIとして動かす方法について」という記事が。

これは!?と思って読んでみたところ…

パーミッション:644などCGIとして必須のオーナー実行権限がなくても実行できますので、標準のモジュール版PHPの設定を引き継いで動作します。
また、先頭行に「#!/usr/local/bin/php」を入れていただく必要はありません。

XREA SUPPORT BOARD – PHPをCGIとして動かす方法について 』より引用

とのこと。どうやら今年の春から可能になったようです。今頃気がつきました。
できるだけ手をかけずに動かすことができるなら、それに越したことはないので早速試してみました。

XREA 限定ではありますが、この方法で動かしてあげるとパーミッションの設定を変える必要がなく、PHP ファイル自体にも「#!/usr/local/bin/php」と書かなくてよいのでアップグレードの都度 PHP ファイルへに変更を加える必要がなくなります。

XREA で WordPress のファイルアップロード機能を CGI として動かす

.htaccessでカスタマイズができるので、全ての PHP を CGI として動かすのではなく指定のファイルのみ CGI として動かすことが可能です。XREA SUPPORT BOARD にも「モジュール版PHPに比べて、動作が遅くなる。負荷が掛かる。」と書かれていますので、全部を CGI として動かすのではなく、ピンポイントで CGI として動くようにしてあげるのが良いのではと思います。

ファイルアップロード機能のみ CGI として動かしたい場合は、
wp-admin/inline-uploading.php
を CGI として動くようにすればよいので以下のようにします。

  1. 適当なテキストエディタに下記の内容を書き、「.htaccess」と名前をつける。
    2008/01/07 改訂
    WP のアップロードに関する php ファイルが変わっているので、それにあわせ内容を変更

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

    以下、2010/08/04 追記

    WordPress バージョン 1.5 以降は、アップロードに関係している php が変更になりました。以下の様に指定すれば OK のはずです。

    <files async-upload.php>
    AddHandler application/x-httpd-phpcgi .php
    </files>
    
  2. .htaccess ファイルを、wp-admin ディレクトリの中にアップロード。

XREA で IImage browser も CGI として動かす

IImage browser については 日本語版を出してくださっている MMRT さんに
詳しく載っていますので、そちらをご覧ください。

IImage-browser 日本語版 ≪ MMRT daily life

IImage-browser 日本語版 ≪ MMRT daily life

IImage browser は簡単に言うと、WordPress のファイルアップロード機能を使いやすくして強化したようなものです。普段私はこちらを使っているのですが、やはりこれもセーフモードの制限を受けてしまうので、FTP でディレクトリをあらかじめ作りパーミッションを設定しておくという方法を取っていました。

こちらもファイルアップロード機能同様、CGI として動くようにしてあげてみました。IImage browser からディレクトリ作成をして、ディレクトリ権限を確認すると…当然ですが Apache ではなく、画像アップロードもすんなりできました :D これなら FTP でいちいちディレクトリを作ってあげる必要もなくて楽チンです。

IImage browser を CGI として動かすには、
wp-admin/iimage-browser.php
を CGI で動くようにすれば OK です。

  1. 適当なテキストエディタに下記の内容を書き、「.htaccess」と名前をつける。
    <files iimage-browser.php>
    AddHandler application/x-httpd-phpcgi .php
    </files>
    
  2. .htaccess ファイルを、wp-admin ディレクトリの中にアップロード。

WordPress のファイルアップロード機能と併用する場合は、 .htaccess にさきほどのものと両方を書いておけば OK です。

この方法だと元となる PHP ファイルに変更を加えなくて良いので、お手軽でいいですね。
XREA をお使いの方にはお勧めです。

07/03/03 改稿
少し文章を読みやすくなるよう改稿しました。たいして変わっていなかったらスミマセン…!

カテゴリー

関連記事