• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「セーフモードによる制限と対処方法」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(2.9 対応に更新。CGIモードの記述方法は「まとめ」にまとめる。「変更履歴」節追加。/絶賛情報募集中!)
(表記ゆれ)
 
(他の1人の利用者による、間の1版が非表示)
30行目: 30行目:
 
=== 方法 1: 事前にアップロードディレクトリを作成しておく ===
 
=== 方法 1: 事前にアップロードディレクトリを作成しておく ===
  
事前にアップロードディレクトリを作成し、[[用語集#パーミッション|パーミッション]]の書き込み権限を与えておきます。作成するディレクトリ名は [[管理パネル]] > [[管理パネル#Settings - Configuration Settings|設定]] > [[Settings Miscellaneous SubPanel|その他の設定]] の設定値によって異なります。
+
事前にアップロードディレクトリを作成し、[[用語集#パーミッション|パーミッション]]の書き込み権限を与えておきます。作成するディレクトリ名は [[管理画面]] > [[管理画面#Settings - Configuration Settings|設定]] > [[Settings Miscellaneous SubPanel|その他の設定]] の設定値によって異なります。
  
 
年月ディレクトリに整理する設定の場合:
 
年月ディレクトリに整理する設定の場合:
69行目: 69行目:
 
== プラグイン新規インストール ==
 
== プラグイン新規インストール ==
  
[[Version 2.7|WordPress 2.7]] より、管理パネルからプラグインを検索・新規インストールできる機能が搭載されました([[Version 2.7#Plugin Installer|参考]])。
+
[[Version 2.7|WordPress 2.7]] より、管理画面からプラグインを検索・新規インストールできる機能が搭載されました([[Version 2.7#Plugin Installer|参考]])。
  
 
=== 方法 1: 事前に作業ディレクトリを作成しておく ===
 
=== 方法 1: 事前に作業ディレクトリを作成しておく ===
83行目: 83行目:
 
== テーマ自動アップグレード ==
 
== テーマ自動アップグレード ==
  
WordPress x.x より、管理パネルから[[テーマの使い方|テーマ]]を最新版にアップグレードできる機能が搭載されました。
+
WordPress x.x より、管理画面から[[テーマの使い方|テーマ]]を最新版にアップグレードできる機能が搭載されました。
  
 
通常は、新バージョンをダウンロード・展開するディレクトリを WordPress が自動作成しますが、セーフモードだと次のようなエラーが出ます。
 
通常は、新バージョンをダウンロード・展開するディレクトリを WordPress が自動作成しますが、セーフモードだと次のようなエラーが出ます。
108行目: 108行目:
 
[[Version 2.7|WordPress 2.7]] より、WordPress 本体を 1クリックで新バージョンにアップグレードできる機能が搭載されました([[Version 2.7#WordPress Upgrader|参考]])。通常は、新バージョンをダウンロード・展開するディレクトリを WordPress が自動作成します。
 
[[Version 2.7|WordPress 2.7]] より、WordPress 本体を 1クリックで新バージョンにアップグレードできる機能が搭載されました([[Version 2.7#WordPress Upgrader|参考]])。通常は、新バージョンをダウンロード・展開するディレクトリを WordPress が自動作成します。
  
セーフモードの場合、[[管理パネル]] > [[管理パネル#Tools|ツール]] > [[Tools Upgrade SubPanel|アップグレード]]画面で [自動アップグレードを実行] ボタンをクリックしたときに次のメッセージが表示され、そのままでは実行できません。<br />
+
セーフモードの場合、[[管理画面]] > [[管理画面#Tools|ツール]] > [[Tools Upgrade SubPanel|アップグレード]]画面で [自動アップグレードを実行] ボタンをクリックしたときに次のメッセージが表示され、そのままでは実行できません。<br />
 
public_html/wp/ ディレクトリに WordPress をインストールしている場合の例:
 
public_html/wp/ ディレクトリに WordPress をインストールしている場合の例:
 
<div class="screen">
 
<div class="screen">
130行目: 130行目:
 
## <code>// 編集が必要なのはここまでです !</code> より前に次の1行を挿入。<pre>define ('WP_TEMP_DIR', '/{アカウントのディレクトリ}/tmp/');</pre>
 
## <code>// 編集が必要なのはここまでです !</code> より前に次の1行を挿入。<pre>define ('WP_TEMP_DIR', '/{アカウントのディレクトリ}/tmp/');</pre>
 
## '''UTF-8 BOM なし'''で保存し、サーバへアップロード。
 
## '''UTF-8 BOM なし'''で保存し、サーバへアップロード。
# [[管理パネル]] > [[管理パネル#Tools|ツール]] > [[Tools Upgrade SubPanel|アップグレード]]画面を開く。
+
# [[管理画面]] > [[管理画面#Tools|ツール]] > [[Tools Upgrade SubPanel|アップグレード]]画面を開く。
 
## [自動アップグレードを実行] ボタンをクリック。
 
## [自動アップグレードを実行] ボタンをクリック。
## [[User:Bono/管理パネル/Connection Information‎|「接続情報」画面]]が表示されたら、'''FTP 接続時の情報'''を入力して [開始] ボタンをクリック。(詳細はリンク先参照)
+
## [[User:Bono/管理画面/Connection Information‎|「接続情報」画面]]が表示されたら、'''FTP 接続時の情報'''を入力して [開始] ボタンをクリック。(詳細はリンク先参照)
 
## 自動アップグレード処理が続行されます。
 
## 自動アップグレード処理が続行されます。
 
# アップグレードが成功したら、上記 1 で作成した <code>tmp</code> ディレクトリを削除。
 
# アップグレードが成功したら、上記 1 で作成した <code>tmp</code> ディレクトリを削除。
163行目: 163行目:
 
AddHandler application/x-httpd-phpcgi .php
 
AddHandler application/x-httpd-phpcgi .php
 
</Files>
 
</Files>
 +
# カスタムヘッダー・カスタム背景 アップロード
 +
<files themes.php>
 +
AddHandler application/x-httpd-phpcgi .php
 +
</files>
 
</pre>
 
</pre>
 
<code>#</code> の行はコメントです。削除して構いません。そのまま記述する場合は UTF-8 BOM なしで保存してください。
 
<code>#</code> の行はコメントです。削除して構いません。そのまま記述する場合は UTF-8 BOM なしで保存してください。
170行目: 174行目:
 
* WordPress のバージョンによって、指定するスクリプト名が異なります。
 
* WordPress のバージョンによって、指定するスクリプト名が異なります。
 
* WordPress 設置ディレクトリの <code>.htaccess</code> に <code>AddHandler application/x-httpd-phpcgi .php</code> と書かないこと。
 
* WordPress 設置ディレクトリの <code>.htaccess</code> に <code>AddHandler application/x-httpd-phpcgi .php</code> と書かないこと。
** [[Version 2.8/FAQ・トラブルシューティング#PHP がセーフモードのサーバで、管理パネルのレイアウトが崩れる|管理パネルの表示が崩れる等の不具合が生じます。]]
+
** [[Version 2.8/FAQ・トラブルシューティング#PHP がセーフモードのサーバで、管理画面のレイアウトが崩れる|管理画面の表示が崩れる等の不具合が生じます。]]
 
** WordPress 全体が CGI モードで動きます。次項デメリット参照。
 
** WordPress 全体が CGI モードで動きます。次項デメリット参照。
 
* 設定方法・メリット・デメリット: [http://sb.xrea.com/showthread.php?t=10744 XREA&CORE SUPPORT BOARD &raquo; PHPをCGIとして動かす方法について]
 
* 設定方法・メリット・デメリット: [http://sb.xrea.com/showthread.php?t=10744 XREA&CORE SUPPORT BOARD &raquo; PHPをCGIとして動かす方法について]

2015年8月15日 (土) 17:34時点における最新版

PHP がセーフモードで動作するサーバの場合、WordPress の一部の機能に制限が生じます。このページでは、セーフモードにより問題が生じる機能とその対処方法をまとめています。

セーフモードとは:

情報募集中 次の情報を求めています。 協力できることがあれば、該当部分を編集するか、このページのノートまたはフォーラム等で教えてください。

  • 措置をしていない場合のエラーメッセージまたはスクリーンショット
  • XREA・CORESERVER.JP 以外のサーバで PHP を CGI モードで動かす方法
  • 旧バージョンの対処方法も残した方がよい?
  • キャッシュ -- WPJ のセーフモードの対処法についてのドキュメント(ME 2.0.x 当時)に「キャッシュ機能の利用」という項目があったのですが、内容を覚えている人いませんか?/最新版では使われていない機能なのかな。。
  • 影響のあるプラグイン
  • 他にも影響のある機能があれば


キャッシュ

ファイルアップロード

投稿画面に、ローカルコンピュータ上の画像をサーバへアップロード(サムネイルも作成)する機能があります。通常、アップロードディレクトリは WordPress により自動作成されますが、セーフモードの場合、ディレクトリを自動作成できないため、アップロードができません。

方法 1: 事前にアップロードディレクトリを作成しておく

事前にアップロードディレクトリを作成し、パーミッションの書き込み権限を与えておきます。作成するディレクトリ名は 管理画面 > 設定 > その他の設定 の設定値によって異なります。

年月ディレクトリに整理する設定の場合:

  • wp-content/uploads
  • wp-content/uploads/2010/01
  • wp-content/uploads/2010/02
  • ...
    (使う分が出来ていれば OK)

年月ディレクトリを使わない場合:

  • wp-content/uploads/

方法 2: PHP を CGI モードで動かす

アップロード処理を行なうスクリプトを CGI モードで動かします。

プラグイン自動アップグレード

WordPress 2.5 より、プラグインの最新バージョンを 1クリックでダウンロード・アップグレードできる機能が搭載されました(公式プラグインリポジトリに登録され、当機能に対応しているプラグインのみ)。通常は、新バージョンをダウンロード・展開するディレクトリを WordPress が作成するため、セーフモードでは正常に動作しません。

方法 1: 事前に作業ディレクトリを作成しておく

(参考)

方法 2: PHP を CGI モードで動かす

アップグレード処理を行なうスクリプトを CGI モードで動かします。

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

WordPress 2.7 より、管理画面からプラグインを検索・新規インストールできる機能が搭載されました(参考)。

方法 1: 事前に作業ディレクトリを作成しておく

(情報募集中)

方法 2: PHP を CGI モードで動かす

インストール処理を行なうスクリプトを CGI モードで動かします。

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

WordPress x.x より、管理画面からテーマを最新版にアップグレードできる機能が搭載されました。

通常は、新バージョンをダウンロード・展開するディレクトリを 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

Warning: fileowner() [function.fileowner]: 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 628

Warning: fileowner() [function.fileowner]: stat failed for /tmp/xxxxxxxxxx in /{アカウントのディレクトリ}/public_html/wp/wp-admin/includes/file.php on line 628

Warning: unlink() [function.unlink]: 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 630

方法: PHP を CGI モードで動かす

アップグレード処理を行なうスクリプトを CGI モードで動かします。

コアアップグレード

WordPress 2.7 より、WordPress 本体を 1クリックで新バージョンにアップグレードできる機能が搭載されました(参考)。通常は、新バージョンをダウンロード・展開するディレクトリを WordPress が自動作成します。

セーフモードの場合、管理画面 > ツール > アップグレード画面で [自動アップグレードを実行] ボタンをクリックしたときに次のメッセージが表示され、そのままでは実行できません。
public_html/wp/ ディレクトリに 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

Warning: fileowner() [function.fileowner]: 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 628

Warning: fileowner() [function.fileowner]: stat failed for /tmp/xxxxxxxxxx in /{アカウントのディレクトリ}/public_html/wp/wp-admin/includes/file.php on line 628

Warning: unlink() [function.unlink]: 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 630

xxxxx は数字)

方法 1: 事前に作業ディレクトリを作成しておく

あらかじめアップグレードスクリプトが使用する作業ディレクトリ tmp を作成し、書き込み可能なパーミッションを設定しておく方法です。

  1. 自分のアカウントのトップディレクトリの直下に tmp ディレクトリを作成し、パーミッションを 707 に設定。
    • XREA の場合、/virtual/{アカウント名}/tmp/
  2. サーバより wp-config.php をダウンロードし、テキストエディタで開く。
    1. // 編集が必要なのはここまでです ! より前に次の1行を挿入。
      define ('WP_TEMP_DIR', '/{アカウントのディレクトリ}/tmp/');
    2. UTF-8 BOM なしで保存し、サーバへアップロード。
  3. 管理画面 > ツール > アップグレード画面を開く。
    1. [自動アップグレードを実行] ボタンをクリック。
    2. 「接続情報」画面が表示されたら、FTP 接続時の情報を入力して [開始] ボタンをクリック。(詳細はリンク先参照)
    3. 自動アップグレード処理が続行されます。
  4. アップグレードが成功したら、上記 1 で作成した tmp ディレクトリを削除。

(参考) Binsan’s Cafe » wordpress2.6.1に(問題発生)

方法 2: PHP を CGI モードで動かす

アップグレード処理を行なうスクリプトを CGI モードで動かします。

XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)

XREACORESERVER.JP にて、PHP を CGIモードで動かすことにより対処したい場合、次の内容を書いた .htaccess ファイルを wp-admin/ ディレクトリに置きます。

WordPress 2.9.x の場合:

# 画像・ファイルアップロード
<files async-upload.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
</Files>
# カスタムヘッダー・カスタム背景 アップロード
<files themes.php>
AddHandler application/x-httpd-phpcgi .php
</files>

# の行はコメントです。削除して構いません。そのまま記述する場合は UTF-8 BOM なしで保存してください。

注意

旧バージョンの場合

WordPress 2.7.x:

# 画像・ファイルアップロード
<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
</Files>
# プラグインアップグレードも update.php?

それ以前のバージョン:

プラグイン

セーフモードの影響を受けるプラグインについての情報です。他にもあれば書き込んでください。

  • WP-Cache -- キャッシュディレクトリを手動作成し、パーミッション設定しておくことにより対処可能。
  • WP Super Cache -- "The plugin does not work very well when PHP's safe mode is active. This must be disabled by your administrator."(FAQ - Troubleshooting 10.

関連ページ

変更履歴