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

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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(テーマ自動アップグレード: XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ): 新セクション追加)
(2.9 対応に更新。CGIモードの記述方法は「まとめ」にまとめる。「変更履歴」節追加。/絶賛情報募集中!)
1行目: 1行目:
{{draft|このページ|全体的に情報募集中です。}}
+
__TOC__
 
+
'''PHP がセーフモードで動作する[[レンタルサーバ情報|サーバ]]'''の場合、WordPress の一部の機能に制限が生じます。このページでは、セーフモードにより問題が生じる機能とその対処方法をまとめています。
PHP がセーフモードで動作する[[レンタルサーバ情報|サーバ]]の場合、WordPress の一部の機能に制限が生じます。このページでは、セーフモードにより問題が生じる機能とその対処方法をまとめていきます。
+
  
 
セーフモードとは:
 
セーフモードとは:
 
* [http://jp.php.net/manual/ja/features.safe-mode.php PHP マニュアル » セーフモード]
 
* [http://jp.php.net/manual/ja/features.safe-mode.php PHP マニュアル » セーフモード]
 +
* [http://zone.maple4ever.net/blog/archives/657/ hiromasa.zone :o) » セーフモードの束縛]
 +
 +
{{募集中|
 +
* 措置をしていない場合のエラーメッセージまたはスクリーンショット
 +
* XREA・CORESERVER.JP '''以外'''のサーバで PHP を CGI モードで動かす方法
 +
* 旧バージョンの対処方法も残した方がよい?
 +
*[[#キャッシュ|キャッシュ]] -- WPJ のセーフモードの対処法についてのドキュメント(ME 2.0.x 当時)に「キャッシュ機能の利用」という項目があったのですが、内容を覚えている人いませんか?/最新版では使われていない機能なのかな。。
 +
* [[#プラグイン|影響のあるプラグイン]]
 +
* 他にも影響のある機能があれば
 +
}}
  
 
== キャッシュ ==
 
== キャッシュ ==
21行目: 30行目:
 
=== 方法 1: 事前にアップロードディレクトリを作成しておく ===
 
=== 方法 1: 事前にアップロードディレクトリを作成しておく ===
  
事前にアップロードディレクトリを作成し、パーミッションの書き込み権限を与えておきます。作成するディレクトリ名は [[管理パネル]] > [[管理パネル#Settings - Configuration Settings|設定]] > [[Settings Miscellaneous SubPanel|その他の設定]] の設定値によって異なります。
+
事前にアップロードディレクトリを作成し、[[用語集#パーミッション|パーミッション]]の書き込み権限を与えておきます。作成するディレクトリ名は [[管理パネル]] > [[管理パネル#Settings - Configuration Settings|設定]] > [[Settings Miscellaneous SubPanel|その他の設定]] の設定値によって異なります。
  
 
年月ディレクトリに整理する設定の場合:
 
年月ディレクトリに整理する設定の場合:
 
* <code>wp-content/uploads</code>
 
* <code>wp-content/uploads</code>
* <code>wp-content/uploads/2007/07</code>
+
* <code>wp-content/uploads/2010/01</code>
* <code>wp-content/uploads/2007/08</code> (使う分が出来ていれば OK)
+
* <code>wp-content/uploads/2010/02</code>
 +
* ... <br />(使う分が出来ていれば OK)
  
 
年月ディレクトリを使わない場合:
 
年月ディレクトリを使わない場合:
35行目: 45行目:
 
アップロード処理を行なうスクリプトを CGI モードで動かします。
 
アップロード処理を行なうスクリプトを CGI モードで動かします。
  
==== 一般的なサーバの場合 ====
+
* [[レンタルサーバ情報#XREA|XREA]]、[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] の場合は、下記 [[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)]]を参照のこと。
 +
* その他のサーバの対処方法は、まだ情報がありません。
 
<!-- WPJ 閉鎖のためコメントアウト。情報募集中。
 
<!-- WPJ 閉鎖のためコメントアウト。情報募集中。
 
* [http://wordpress.xwd.jp/me2.0-docs/index.php?%A5%D5%A5%A1%A5%A4%A5%EB%A5%A2%A5%C3%A5%D7%A5%ED%A1%BC%A5%C9%B5%A1%C7%BD%A4%CE%CD%F8%CD%D1#xde79800 Wordpress Japan &raquo; ファイルアップロード機能の利用 - エラー回避方法(2)]
 
* [http://wordpress.xwd.jp/me2.0-docs/index.php?%A5%D5%A5%A1%A5%A4%A5%EB%A5%A2%A5%C3%A5%D7%A5%ED%A1%BC%A5%C9%B5%A1%C7%BD%A4%CE%CD%F8%CD%D1#xde79800 Wordpress Japan &raquo; ファイルアップロード機能の利用 - エラー回避方法(2)]
 
-->
 
-->
(情報募集中)
 
 
==== XREA、CORESERVER.JP の場合 ====
 
 
[[レンタルサーバ情報#XREA|XREA]]、[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] の場合、次の内容を書いた <code>.htaccess</code> ファイルを <code>wp-admin/</code> ディレクトリに置きます。(セーフモードの影響を受ける全機能を CGIモードで動かすには、[[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|まとめを参照]])
 
<files async-upload.php>
 
AddHandler application/x-httpd-phpcgi .php
 
</files>
 
 
(注)
 
* <code>#!/usr/local/bin/php</code> の追加やパーミッションの変更は不要です。
 
* [[Version 2.5|WordPress 2.5]] 以降の設定方法です。WordPress のバージョンによって、指定するスクリプト名が異なります。
 
  
 
== プラグイン自動アップグレード ==
 
== プラグイン自動アップグレード ==
62行目: 61行目:
  
 
=== 方法 2: PHP を CGI モードで動かす ===
 
=== 方法 2: PHP を CGI モードで動かす ===
(情報募集中)
+
 
 +
アップグレード処理を行なうスクリプトを CGI モードで動かします。
 +
 
 +
* [[レンタルサーバ情報#XREA|XREA]]、[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] の場合は、下記 [[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)]]を参照のこと。
 +
* その他のサーバの対処方法は、まだ情報がありません。
 +
 
 
== プラグイン新規インストール ==
 
== プラグイン新規インストール ==
  
72行目: 76行目:
 
=== 方法 2: PHP を CGI モードで動かす ===
 
=== 方法 2: PHP を CGI モードで動かす ===
  
[[レンタルサーバ情報#XREA|XREA]]、[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] の場合、ファイルアップロード機能と同様に、次の内容を書いた <code>.htaccess</code> ファイルを <code>wp-admin/</code> ディレクトリに置きます。(セーフモードの影響を受ける全機能を CGIモードで動かすには、[[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|まとめを参照]])
+
インストール処理を行なうスクリプトを CGI モードで動かします。
  
<Files plugin-install.php>
+
* [[レンタルサーバ情報#XREA|XREA]]、[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] の場合は、下記 [[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)]]を参照のこと。
AddHandler application/x-httpd-phpcgi .php
+
* その他のサーバの対処方法は、まだ情報がありません。
</Files>
+
  
 
== テーマ自動アップグレード ==
 
== テーマ自動アップグレード ==
82行目: 85行目:
 
WordPress x.x より、管理パネルから[[テーマの使い方|テーマ]]を最新版にアップグレードできる機能が搭載されました。
 
WordPress x.x より、管理パネルから[[テーマの使い方|テーマ]]を最新版にアップグレードできる機能が搭載されました。
  
通常は、新バージョンをダウンロード・展開するディレクトリを WordPress が自動作成しますが、セーフモードだと次のエラーが出ます。
+
通常は、新バージョンをダウンロード・展開するディレクトリを WordPress が自動作成しますが、セーフモードだと次のようなエラーが出ます。
  
 
<div class="screen">
 
<div class="screen">
Warning: touch() [function.touch]: SAFE MODE Restriction in effect. The script whose uid is 10266 is not allowed to access /tmp owned by uid 0 in /{アカウントのディレクトリ}/public_html/wp/wp-admin/includes/file.php on line 174
+
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 10266 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]: 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/1241791851 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 10266 is not allowed to access /tmp owned by uid 0 in /{アカウントのディレクトリ}/public_html/wp/wp-admin/includes/file.php on line 630
+
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
 
</div>
 
</div>
  
 
=== 方法: PHP を CGI モードで動かす ===
 
=== 方法: PHP を CGI モードで動かす ===
  
[[レンタルサーバ情報#XREA|XREA]]、[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] の場合、次の内容を書いた <code>.htaccess</code> ファイルを <code>wp-admin/</code> ディレクトリに置きます。(セーフモードの影響を受ける全機能を CGIモードで動かすには、[[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|まとめを参照]])
+
アップグレード処理を行なうスクリプトを CGI モードで動かします。
  
<Files update.php>
+
* [[レンタルサーバ情報#XREA|XREA]]、[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] の場合は、下記 [[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)]]を参照のこと。
AddHandler application/x-httpd-phpcgi .php
+
* その他のサーバの対処方法は、まだ情報がありません。
</Files>
+
  
 
== コアアップグレード ==
 
== コアアップグレード ==
123行目: 125行目:
 
あらかじめアップグレードスクリプトが使用する作業ディレクトリ <code>tmp</code> を作成し、書き込み可能な[[ファイルパーミッションの変更|パーミッション]]を設定しておく方法です。
 
あらかじめアップグレードスクリプトが使用する作業ディレクトリ <code>tmp</code> を作成し、書き込み可能な[[ファイルパーミッションの変更|パーミッション]]を設定しておく方法です。
  
# アカウントのトップディレクトリの直下に <code>tmp</code> ディレクトリを作成し、パーミッションを <var>707</var> に設定。(XREA では <code>/virtual/{アカウント名}/tmp/</code>
+
# 自分のアカウントのトップディレクトリの直下に <code>tmp</code> ディレクトリを作成し、パーミッションを <var>707</var> に設定。
 +
#* XREA の場合、<code>/virtual/{アカウント名}/tmp/</code>
 
# サーバより [[wp-config.php の編集|<code>wp-config.php</code>]] をダウンロードし、[[用語集#テキストエディタ|テキストエディタ]]で開く。
 
# サーバより [[wp-config.php の編集|<code>wp-config.php</code>]] をダウンロードし、[[用語集#テキストエディタ|テキストエディタ]]で開く。
 
## <code>// 編集が必要なのはここまでです !</code> より前に次の1行を挿入。<pre>define ('WP_TEMP_DIR', '/{アカウントのディレクトリ}/tmp/');</pre>
 
## <code>// 編集が必要なのはここまでです !</code> より前に次の1行を挿入。<pre>define ('WP_TEMP_DIR', '/{アカウントのディレクトリ}/tmp/');</pre>
129行目: 132行目:
 
# [[管理パネル]] > [[管理パネル#Tools|ツール]] > [[Tools Upgrade SubPanel|アップグレード]]画面を開く。
 
# [[管理パネル]] > [[管理パネル#Tools|ツール]] > [[Tools Upgrade SubPanel|アップグレード]]画面を開く。
 
## [自動アップグレードを実行] ボタンをクリック。
 
## [自動アップグレードを実行] ボタンをクリック。
## '''接続情報'''を求められたら '''FTP の接続情報'''を入力する。
+
## [[User:Bono/管理パネル/Connection Information‎|「接続情報」画面]]が表示されたら、'''FTP 接続時の情報'''を入力して [開始] ボタンをクリック。(詳細はリンク先参照)
##* ホスト名: <code>localhost</code> または FTP 接続時のホスト名
+
## 自動アップグレード処理が続行されます。
##* ユーザー名、パスワード: FTP と同じ
+
##* 接続形式: FTPS 対応サーバでは「FTPS (SSL) 」を選択。XREA は「FTP」
+
## [開始] ボタンをクリック<br />→ 自動アップグレード処理が実行されます。
+
 
# アップグレードが成功したら、上記 1 で作成した <code>tmp</code> ディレクトリを削除。
 
# アップグレードが成功したら、上記 1 で作成した <code>tmp</code> ディレクトリを削除。
  
140行目: 140行目:
 
=== 方法 2: PHP を CGI モードで動かす ===
 
=== 方法 2: PHP を CGI モードで動かす ===
  
[[レンタルサーバ情報#XREA|XREA]]、[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] の場合、次の内容を書いた <code>.htaccess</code> ファイルを <code>wp-admin/</code> ディレクトリに置きます。(セーフモードの影響を受ける全機能を CGIモードで動かすには、[[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|まとめを参照]])
+
アップグレード処理を行なうスクリプトを CGI モードで動かします。
  
<Files update-core.php>
+
* [[レンタルサーバ情報#XREA|XREA]]、[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] の場合は、下記 [[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)]]を参照のこと。
AddHandler application/x-httpd-phpcgi .php
+
* その他のサーバの対処方法は、まだ情報がありません。
</Files>
+
  
== 影響のあるプラグイン ==
+
== XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ) ==
  
* [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache] -- キャッシュディレクトリを手動作成、パーミッション設定
+
[[レンタルサーバ情報#XREA|XREA]]・[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] にて、PHP を CGIモードで動かすことにより対処したい場合、次の内容を書いた <code>.htaccess</code> ファイルを <code>wp-admin/</code> ディレクトリに置きます。
* [http://wordpress.org/extend/plugins/wp-super-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."([http://wordpress.org/extend/plugins/wp-super-cache/faq/ FAQ - Troubleshooting 10.])
+
  
== XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ) ==
+
WordPress 2.9.x の場合:
 +
<pre>
 +
# 画像・ファイルアップロード
 +
<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>
 +
</pre>
 +
<code>#</code> の行はコメントです。削除して構いません。そのまま記述する場合は UTF-8 BOM なしで保存してください。
 +
 
 +
'''注意''':
 +
* <code>#!/usr/local/bin/php</code> の追加やパーミッションの変更は不要です。
 +
* WordPress のバージョンによって、指定するスクリプト名が異なります。
 +
* WordPress 設置ディレクトリの <code>.htaccess</code> に <code>AddHandler application/x-httpd-phpcgi .php</code> と書かないこと。
 +
** [[Version 2.8/FAQ・トラブルシューティング#PHP がセーフモードのサーバで、管理パネルのレイアウトが崩れる|管理パネルの表示が崩れる等の不具合が生じます。]]
 +
** WordPress 全体が CGI モードで動きます。次項デメリット参照。
 +
* 設定方法・メリット・デメリット: [http://sb.xrea.com/showthread.php?t=10744 XREA&CORE SUPPORT BOARD &raquo; PHPをCGIとして動かす方法について]
 +
* CGI モードの場合の追加設定: [http://sb.xrea.com/showpost.php?s=69f7e5c44935d629cb0903a1a6f13a58&p=78158&postcount=2 XREA&CORE SUPPORT BOARD &raquo; PHPをCGIとして動かす方法(2)]
  
[[レンタルサーバ情報#XREA|XREA]]・[[レンタルサーバ情報#CORESERVER.JP|CORESERVER.JP]] にて、PHP を CGIモードで動かすことにより対処したい場合、次の内容を書いた <code>.htaccess</code> ファイルを <code>wp-admin/</code> ディレクトリに置きます。(WordPress 2.7.1)
+
=== 旧バージョンの場合 ===
  
 +
WordPress 2.7.x:
 
<pre>
 
<pre>
 +
# 画像・ファイルアップロード
 
<files async-upload.php>
 
<files async-upload.php>
 
AddHandler application/x-httpd-phpcgi .php
 
AddHandler application/x-httpd-phpcgi .php
 
</files>
 
</files>
 +
# プラグイン新規インストール
 
<Files plugin-install.php>
 
<Files plugin-install.php>
 
AddHandler application/x-httpd-phpcgi .php
 
AddHandler application/x-httpd-phpcgi .php
 
</Files>
 
</Files>
 +
# テーマアップグレード
 
<Files update.php>
 
<Files update.php>
 
AddHandler application/x-httpd-phpcgi .php
 
AddHandler application/x-httpd-phpcgi .php
 
</Files>
 
</Files>
 +
# 本体アップグレード
 
<Files update-core.php>
 
<Files update-core.php>
 
AddHandler application/x-httpd-phpcgi .php
 
AddHandler application/x-httpd-phpcgi .php
 
</Files>
 
</Files>
 +
# プラグインアップグレードも update.php?
 
</pre>
 
</pre>
(上から順に、[[#ファイルアップロード|ファイルアップロード]]、プラグイン<!-- の[[#プラグイン自動アップグレード|自動アップグレード]]・-->[[#プラグイン新規インストール|新規インストール]]、[[#テーマ自動アップグレード|テーマ自動アップグレード]]、[[#コアアップグレード|コアアップグレード]]機能に対応)
 
  
<div class="important">[[#プラグイン自動アップグレード|プラグイン自動アップグレード]]用の記述について、情報募集中。プラグインも <code>update.php</code> でいいのかな。。</div>
+
それ以前のバージョン:
 
+
* [http://lab.chickenheart.jp/wp/2008/03/wordpress-25-%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89/ Chicken Heart Lab - WordPress » WordPress 2.5 でファイルアップロード] (WordPress 2.5)(2008-03-19)
(参考)
+
* [http://www.graphact.com/memo/2006/08/16/89 Numb. - XREA で WordPress ファイルアップロード機能を利用する] (2006-08-16、2008-01-07 改訂)
* <code>#!/usr/local/bin/php</code> の追加やパーミッションの変更は不要です。
+
* 設定方法・メリット・デメリット: [http://sb.xrea.com/showthread.php?t=10744 XREA&CORE SUPPORT BOARD &raquo; PHPをCGIとして動かす方法について]
+
* CGI モードの場合の追加設定: [http://sb.xrea.com/showpost.php?s=69f7e5c44935d629cb0903a1a6f13a58&p=78158&postcount=2 XREA&CORE SUPPORT BOARD &raquo; PHPをCGIとして動かす方法(2)]
+
旧バージョンの場合:
+
* [http://lab.chickenheart.jp/wp/2008/03/wordpress-25-%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89/ Chicken Heart Lab - WordPress » WordPress 2.5 でファイルアップロード] (2.5 対応)(2008-03-19)
+
* [http://www.graphact.com/memo/2006/08/16/89 Numb. - XREA で WordPress ファイルアップロード機能を利用する] (2006-08-16)
+
 
<!-- WPJフォーラム閉鎖のためコメントアウト。
 
<!-- WPJフォーラム閉鎖のためコメントアウト。
 
* [http://phpbb.xwd.jp/viewtopic.php?p=2342 WordPress Japan フォーラム - ME2.0.4、SafeModeでプラグインが動きません]
 
* [http://phpbb.xwd.jp/viewtopic.php?p=2342 WordPress Japan フォーラム - ME2.0.4、SafeModeでプラグインが動きません]
 
  -->
 
  -->
 +
 +
== プラグイン ==
 +
 +
セーフモードの影響を受けるプラグインについての情報です。他にもあれば書き込んでください。
 +
 +
* [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache] -- キャッシュディレクトリを手動作成し、パーミッション設定しておくことにより対処可能。
 +
* [http://wordpress.org/extend/plugins/wp-super-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."([http://wordpress.org/extend/plugins/wp-super-cache/faq/ FAQ - Troubleshooting 10.])
  
 
== 関連ページ ==
 
== 関連ページ ==
188行目: 216行目:
 
* [[Core Update Host Compatibility]] -- 本体の自動アップグレード機能対応サーバリスト
 
* [[Core Update Host Compatibility]] -- 本体の自動アップグレード機能対応サーバリスト
  
== 外部資料 ==
+
== 変更履歴 ==
* [http://zone.maple4ever.net/blog/archives/657/ hiromasa.zone :o) » セーフモードの束縛]
+
* (2.8 か 2.9) : [[#プラグイン新規インストール|プラグイン新規インストール]]に対する [[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|CGIモード]](XREA・CORESERVER.JP)のファイル指定が <code>plugin-install.php</code> から <code>update.php</code> に変わりました。実行ファイル変更のため。
 +
* [[Version 2.8|2.8]] : 新機能「テーマ新規インストール」も措置が必要です。
 +
* [[Version 2.7|2.7]] :
 +
** 新機能[[#コアアップグレード|コアアップグレード]]も措置が必要です。
 +
** 新機能[[#プラグイン新規インストール|プラグイン新規インストール]]も措置が必要です。
 +
* (2.6 か 2.7) : 新機能[[#テーマ自動アップグレード|テーマ自動アップグレード]]も措置が必要です。
 +
* [[Version 2.5|2.5]] :
 +
** [[#ファイルアップロード|ファイルアップロード]]に対する [[#XREA・CORESERVER.JP にて CGIモードで動かす場合(まとめ)|CGIモード]](XREA・CORESERVER.JP)のファイル指定が <code>async-upload.php</code> に変わりました。実行ファイル変更のため。
 +
** 新機能[[#プラグイン自動アップグレード|プラグイン自動アップグレード]]も措置が必要です。
  
 
{{DEFAULTSORT:せえふもおとによるせいけんとたいしよほうほう}}
 
{{DEFAULTSORT:せえふもおとによるせいけんとたいしよほうほう}}
196行目: 232行目:
 
[[Category:wp2.5]]
 
[[Category:wp2.5]]
 
[[Category:wp2.7]]
 
[[Category:wp2.7]]
 +
[[Category:wp2.8]]

2010年1月26日 (火) 02:12時点における版

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>

# の行はコメントです。削除して構いません。そのまま記述する場合は 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.

関連ページ

変更履歴