by shigemk2

当面は技術的なことしか書かない

SAFE MODE Restriction in effectなどというエラーが出たら

プラグインやテーマがインストールできない

セーフモードによる制限と対処方法 - WordPress Codex 日本語版

WordPressでテーマやプラグインをインストールしようとすると、
こんな感じのエラーが出ました。

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 がセーフモードで動作するサーバの場合、WordPress の一部の機能に制限が生じるからだそうです。

対処方法は上記のページを読んで頂ければよいとして、
僕の対処法はPHPをCGIモードで動かすことで対応しました。

次の内容を書いた .htaccess ファイルを wp-admin/ ディレクトリに置きます。

# 画像・ファイルアップロード

AddHandler application/x-httpd-phpcgi .php

# プラグイン・テーマ 新規インストール/アップグレード

AddHandler application/x-httpd-phpcgi .php

# 本体アップグレード

AddHandler application/x-httpd-phpcgi .php

僕の場合は上記の方法でエラーを出さずに無事インストールができました。
他にも作業ディレクトリを作成するとか、色々方法はあるみたいです。

あとがき

色々ぐぐって記事を巡り、パーミッションとかを変えたりしてうまくいかなかったので、
最終的にWordPress Codexにいきついた。

今回の教訓は、下手にググるよりドキュメントを読むべし
ということでした。