安全

【Wordpress Memo】

versionを3.2にupdateしようと思い、自動更新したら次のようなエラーが発生.

[php]Warning: touch() [function.touch]: SAFE MODE Restriction in effect.
The script whose uid is xxxxx is not allowed to access /tmp owned by uid 0 in /public_html/wp/wp-admin/includes/file.php on line 174[/php]

調べてみたら,XREAはPHPをセーフモードで動作するとかしないとか.
よって,CGIモードで動くように設定を書かなくてはならないらしい.たぶん.

そもそも対処方法は大きく2種類あって,

1. /tmpフォルダを作成,権限を与えておく方方法
2. CGIモードで動くように設定を記述する方法

1はパスのあたりがよくわかんなかったんで,今回は2で対応しました.
興味のある方は以下続きへ.

 【対応方法】

FFFTPでも何でもいいんだけど,/wp-admin/の下に.htaccessを作成し,以下を書く.

[php]AddHandler application/x-httpd-phpcgi .php[/php]

これでWordpressの更新やプラグインの更新は容易にできるようになる(エラー吐かない)けど,
管理画面であるダッシュボードのデザインが大幅に崩れる副作用的エラーが発生.

そこで,

[php]<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>
<files update-core.php>
AddHandler application/x-httpd-phpcgi .php </file>[/php]

といったような風に書き換え.しかし,何故かこれでは更新ができないエラーが再発.
これはもはや更新するときだけ.htaccessを上のに書き換えるしかないのか...とよぎる.

しかし,もうちょい見てみたらどうやら以下でうまく行くらしい.

[php]AddHandler application/x-httpd-phpcgi .php
<files load-styles.php>
AddHandler application/x-httpd-php .php
</files>[/php]

ただしこれは/wp-admin/の.htaccessではなく,wpルートの.htaccessに記述する.

これで完了.お疲れ様でした.