php.ini – WordPress

WordPress と関わりの深い、php.ini の設定

php.ini 設定例

; 引用符をつけないセミコロン(;)の後のテキストは、すべて無視されます
[php] ; セクションマーカ (角括弧の中のテキスト) は無視されます
; 論理値は、次のいずれかで指定します
;    true, on, yes
; または false, off, no, none
register_globals = off
magic_quotes_gpc = yes

; 文字列を二重引用符で括ることも可能です
include_path = ".:/usr/local/lib/php"

; バックスラッシュは他の文字と同様に処理されます
include_path = ".;c:\php\lib"

アップロード サイズ

php.ini ファイルに以下のディレクティブを記載します

  • memory_limit: PHP スクリプトが確保できる最大メモリ(バイト数)
  • post_max_size: POSTデータに許可される最大サイズ
  • upload_max_filesize: アップロードされるファイルの最大サイズ
  • max_execution_time: スクリプトがパーサにより強制終了されるまでに許容される最大の 時間(秒単位)
記述例(初期値)
memory_limit = "128M"
post_max_size = "8M"
upload_max_filesize = "2M"
max_execution_time = "30"

Maximum execution time XXX exceeded

最大実行時間 XXX秒 を経過したと出るエラーの対処

記述例(初期値)
max_execution_time = "30"

エラーログ取得

エラーログの設定には少し注意が必要です。

まず、デフォルトの PHP エラーログおよび表示設定は php.ini ファイルで定義されています。このファイルにはアクセスできる場合とできない場合があります。

アクセスできる場合、公開する PHP ページに対して希望の設定を指定してください。公開ページにはエラーメッセージを表示せず、エラーログに保存することを強く推奨します。

さらに、エラーログは外部からアクセスできない位置に保存しましょう。

推奨する php.ini エラー設定のサンプルは以下のとおりです。

WordPress Codex (日本語) > wp-config.php の編集 > エラーログ取得の設定
記述例(推奨値)
error_reporting = "4339"
display_errors = "Off"
display_startup_errors = "Off"
log_errors = "On"
error_log = "/home/example.com/logs/php_error.log"
log_errors_max_len = "1024"
ignore_repeated_errors = "On"
ignore_repeated_source = "Off"
html_errors = "Off"
Error Reporting 4339について

このカスタム値はサイトの動作に影響する問題のみをログに記録し、エラーではない通知等の事象は無視します。4339を2進数で表すと 1000011110011 です。各ビットの意味は 定義済み定数 を参照してください。例えば、左端の 1 は E_RECOVERABLE_ERROR をすべて記録します。その隣の 0 は E_STRICT を記録しません(動作はするものの不注意なコードが使用されると投げられます)。目的にあったカスタムエラー報告番号を作成し、4339 の代わりに設定してください。

WordPress Codex (日本語) > wp-config.php の編集 > エラーログ取得の設定

セッション設定

  • session.use_cookies: クッキーを使用する セッションIDの、 クライアント側への保存について設定。初期値は1で有効、0を設定で無効。
  • session.use_only_cookies: クライアント側へのセッションIDの保存に、クッキーのみを使用可能とする設定。 初期値は1で有効、0で無効。
  • session.name: クッキーに設定されるセッション名の設定
  • session.auto_start: リクエスト開始時にセッションを自動的に開始するかどうかを設定
  • session.cookie_lifetime: クッキーの有効期間を秒単位で設定
    0を設定するとブラウザをクローズするまでセッションが有効
  • session.cookie_path: クッキーを有効とするパスの設定
    ここで指定したパス以下へのアクセスにのみ、クッキーが有効
  • session.use_trans_sid: URLへのセッションIDの設定を自動で行うか否かの設定
記述例(初期値)
session.use_cookies	= "1"
session.use_only_cookies = "1"
session.name = "PHPSESSID"
session.auto_start = "0"
session.cookie_lifetime = "0"
session.cookie_path = "/"
session.use_trans_sid = "0"

注意

 URLに基づくセッション管理は、Cookieに基づくセッション管理と比べ てセキュリティリスクが大きくなります。例えば、ユーザーは、emailに より友人にアクティブなセッションIDを含むURLを送信する可能性があ り、また、ユーザーは自分のブックマークにセッションIDを含むURLを保 存し、常に同じセッションIDで使用するサイトにアクセスする可能性 があります。 PHP 7.1.0 以降では、https://php.net/ のような完全な URL パスが、透過的セッションID機能で扱われるようになります。 これより前のバージョンでは、相対 URL パスだけが対象でした。 リライト対象のホストは session.trans_sid_hosts で定義します。

PHPマニュアル

文字コード設定

  • mbstring.language: デフォルトの言語を設定
  • mbstring.internal_encoding: 内部文字エンコーディングを設定
  • mbstring.http_input: HTTP入力文字エンコーディング変換を設定
  • mbstring.http_output: HTTP出力文字エンコーディング変換を設定
  • mbstring.encoding_translation: 内部文字エンコーディングへの変換を有効にするかどうかを設定
  • mbstring.detect_order: 文字コード検出を設定
  • mbstring.substitute_character: 無効な文字を代替する文字を設定

※ mbstring.language は、mbstring で使用される言語設定(NLS)のデフォルト値となります。この設定はphp.ini の中で mbstring.language の後に mbstring.internal_encoding を置く必要があることに注意してください。

記述例(初期値)
mbstring.language = "neutral"
mbstring.internal_encoding = NULL
mbstring.http_input = "pass"
mbstring.http_output = "pass"
mbstring.encoding_translation = "0"
mbstring.detect_order = NULL
mbstring.substitute_character = NULL

IIS 6 + WordPress

mod_rewrite なしでのパーマリンクの設定

IIS 6 上で WordPress を実行している場合に、 PATHINFO パーマリンクを 用いる際の php.ini 設定

初期値
 cgi.fix_pathinfo = 1
 cgi.force_redirect = 1
記述例( cgi.force_redirectの値を変更する)
 cgi.fix_pathinfo = 1
 cgi.force_redirect = 0

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください