Open post
php.ini - for WordPress.

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 エラー設定のサンプルは以下のとおりです。

wp-config.php の編集 > エラーログ取得の設定 (新しいタブで開く)”> 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
php.ini - for WordPress.
php.ini – for WordPress.
Open post
php.ini

php.ini

PHP 設定ファイル

参照元 : https://www.php.net/manual/ja/configuration.php

バージョン説明
7.0.0 行コメントの先頭で使用されてきたハッシュ記号 ( # ) が廃止となり、完全にセミコロン ( ; ) になりました。
5.3.0 行コメントの先頭に使用する記号がセミコロン ( ; ) になりました。これまで使用されてきたハッシュ記号 ( # ) を使うと、廃止予定だという警告を発します。
5.2.0 環境変数 PHP_INI_SCAN_DIRが新たに使用できるようになり、configure 時に指定したスキャンディレクトリを環境変数で変更できるようになりました。
5.1.0 .ini ファイル内で既存の .ini 変数を参照できるようになりました。

設定ファイルが参照されるタイミング

設定ファイル (php.ini) は PHP の起動時に読み込まれます。 PHP のサーバーモジュール版では、Web サーバーの起動時に 一度だけ読み込まれます。CGI 版と CLI 版では、スクリプトが呼び出される度に読み込まれます。

PHP マニュアルインストールと設定 > 実行時設定

探す順番と場所

  1. SAPI モジュール特有の場所
    (Apache 2 における PHPIniDir ディレクティブ、 CGI/CLI 版における -c コマンドラインオプション、 NSAPI における php_ini パラメータ、 THTTPD における PHP_INI_PATH 環境変数)
  2. PHPRC 環境変数。
    ※PHP 5.2.0 より前では、 次に挙げるレジストリキーの後にチェックされていました。
  3. (Windows のみ) レジストリーキー
    PHP 5.2.0 以降では、PHP のバージョンごとに別の場所の php.ini を使用することができます。以下のレジストリキーを順に調べて使用します。
    1. [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z] 
    2. [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] 
    3. [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]
      x、y および z はそれぞれ PHP のメジャーバージョン、マイナーバージョン、 リリース番号を表します。これらのキーに IniFilePath の値が設定されていれば、最初に見つかった場所の php.ini を使用します。
  4. (Windows のみ) [HKEY_LOCAL_MACHINE\SOFTWARE\PHP]  レジストリキーにある IniFilePath の値 。
  5. 現在の作業ディレクトリ (CLI を除く)
  6. (SAPI モジュールの場合) Web サーバーのディレクトリ
  7. (SAPI モジュール ではない Windows の場合) PHP ディレクトリ
  8. (Windows のみ) Windows ディレクトリ
    (C:\windows もしくは C:\winnt)) 、
  9. もしくはコンパイル時のオプション –with-config-file-path で指定された場所

php-SAPI.ini (ここで SAPI は使用する SAPI 名。 たとえば php-cli.ini や php-apache.ini) が存在する場合、 php.ini の代わりに使用されます。 SAPI 名は php_sapi_name() によって決定されます。

Scroll to top