<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/configuration.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'configuration.file.php',
    1 => '設定ファイル',
    2 => '設定ファイル',
  ),
  'up' => 
  array (
    0 => 'configuration.php',
    1 => '実行時設定',
  ),
  'prev' => 
  array (
    0 => 'configuration.php',
    1 => '実行時設定',
  ),
  'next' => 
  array (
    0 => 'configuration.file.per-user.php',
    1 => '.user.ini ファイル',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'install/ini.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="configuration.file" class="sect1">
   <h2 class="title">設定ファイル</h2>

   <p class="simpara">
    設定ファイル (<var class="filename">php.ini</var>) は PHP の起動時に読み込まれます。
    PHP のサーバーモジュール版では、Web サーバーの起動時に
    一度だけ読み込まれます。<abbr title="Common Gateway Interface">CGI</abbr> 版と
    <abbr title="Command Line Interpreter/Interface">CLI</abbr> 版では、スクリプトが呼び出される度に読み込まれます。
   </p>
   <p class="para">
    読み込む <var class="filename">php.ini</var> は、これらの場所を順に探します。
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       SAPI モジュール特有の場所 (Apache 2 における
       <code class="literal">PHPIniDir</code> ディレクティブ、
       CGI/CLI 版における <code class="literal">-c</code> コマンドラインオプション)
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       <var class="varname">PHPRC</var> 環境変数。
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       PHP のバージョンごとに別の場所の <code class="literal">php.ini</code>
       を使用することができます。レジストリキーの root は、
       インストールされたOS や PHP が 32bit や 64bit どちらのビルドかによって変わります。
       32bit OS 上の 32bit ビルドの PHP、
       もしくは 64bit OS 上の 64bit ビルドの PHP は
       <code class="literal">[(HKEY_LOCAL_MACHINE\SOFTWARE\PHP]</code> を使いますが、
       64bit OS 上での 32bit ビルドのPHPは、
       <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]</code>] を代わりに使います。
       ビルドのbit数がOSと同じPHPのインストールの場合、
       以下のレジストリキーを順に調べて使用します。
       <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z]</code>、
       <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y]</code> および
       <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]</code>。
       x、y および z はそれぞれ PHP のメジャーバージョン、マイナーバージョン、
       リリース番号を表します。
       64bit OS の 32bitビルドの PHP では、
       以下のレジストリキーを順に調べて使用します。
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z]</code>,
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y]</code> および
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x]</code>
       x、y および z はそれぞれ PHP のメジャーバージョン、マイナーバージョン、
       リリース番号を表します。
       これらのキーに <code class="literal">IniFilePath</code>
       の値が設定されていれば、最初に見つかった場所の <code class="literal">php.ini</code>
       を使用します (Windows のみ)。
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
        <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]</code> または
        <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]</code> にある
        <code class="literal">IniFilePath</code> の値 (Windows のみ)。
      </span>
     </li>
     <li class="listitem">
      <p class="para">
       現在の作業ディレクトリ (CLI を除く)
      </p>
     </li>
     <li class="listitem">
      <span class="simpara">
       Web サーバーのディレクトリ (SAPI モジュールの場合)、
       もしくは PHP ディレクトリ (そうでない Windows の場合)
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Windows ディレクトリ (<var class="filename">C:\windows</var>
       もしくは <var class="filename">C:\winnt</var>))
       (Windows の場合) 、もしくはコンパイル時のオプション
       <code class="literal">--with-config-file-path</code>
      </span>
     </li>
    </ul>
   </p>
   <p class="para">
    <var class="filename">php-SAPI.ini</var> (ここで SAPI は使用する SAPI 名。
    たとえば <var class="filename">php-cli.ini</var> や <var class="filename">php-apache.ini</var>)
    が存在する場合、
    <var class="filename">php.ini</var> の代わりに使用されます。
    SAPI 名は <span class="function"><a href="function.php-sapi-name.php" class="function">php_sapi_name()</a></span> によって決定されます。
   </p>
   <blockquote class="note"><p><strong class="note">注意</strong>: 
    <p class="para">
     Apache web サーバーは、スタート時にディレクトリをルート
     に変更するので、ファイルシステムのルートに <var class="filename">php.ini</var>
     が存在する場合、PHP はそれを読もうとします。
    </p>
   </p></blockquote>
  <p class="simpara">
   <var class="filename">php.ini</var> の中で環境変数を参照するには、次のようにします。
   PHP 8.3.0 以降では、参照する変数が未定義の場合にフォールバックする値を
   指定できるようになりました。
  </p>
  <div class="example" id="example-1">
   <p><strong>例1 <var class="filename">php.ini</var> での環境変数</strong></p>
    <div class="example-contents">
<div class="inicode"><pre class="inicode">; 環境変数 PHP_MEMORY_LIMIT を利用します
memory_limit = ${PHP_MEMORY_LIMIT}
; 環境変数 PHP_MAX_EXECUTION_TIME が未定義の場合、30 にフォールバックします
max_execution_time = ${PHP_MAX_EXECUTION_TIME:-30}</pre>
</div>
    </div>

   </div>
   <p class="para">
    拡張モジュールに対する <var class="filename">php.ini</var> ディレクティブは、
    各拡張モジュールのドキュメントで解説されています。
    <a href="ini.php" class="link">コア ディレクティブ</a>
    （PHP 本体に対するディレクティブ）のリストは付録にまとめられています。
    ただし、（更新の都合上）すべての PHP ディレクティブが
    本マニュアル中で解説されている訳ではありません。
    使っているバージョンの PHP で指定可能なすべてのディレクティブについては、
    <var class="filename">php.ini</var> ファイル内に詳細なコメントが記されていますので、参照ください。
    もしくは、Git から入手可能な <a href="https://github.com/php/php-src/blob/master/php.ini-production" class="link external">&raquo;&nbsp;
    最新の <var class="filename">php.ini</var></a> も有用でしょう。
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <p><strong>例2 <var class="filename">php.ini</var> の例</strong></p>
     <div class="example-contents">
<div class="inicode"><pre class="inicode">; 引用符をつけないセミコロン(;)の後のテキストは、すべて無視されます
[php] ; セクションマーカ (角括弧の中のテキスト) は無視されます
; 論理値は、次のいずれかで指定します
;    true, on, yes
; または false, off, no, none
register_globals = off
magic_quotes_gpc = yes

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

; バックスラッシュは他の文字と同様に処理されます
include_path = &quot;.;c:\php\lib&quot;</pre>
</div>
</div>


    </div>
   </p>
   <p class="para">
    ini ファイル内で既存の ini 変数を参照することが可能です。
    例: <code class="literal">open_basedir = ${open_basedir}
    &quot;:/new/dir&quot;</code>
   </p>
  <div class="sect2" id="configuration.file.scan">
   <h3 class="title">スキャンディレクトリ</h3>

   <p class="para">
    PHP の設定で、<var class="filename">php.ini</var> を読んだ後に .ini ファイルを探すディレクトリを指定できます。
    これは、コンパイル時のオプション
    <strong class="option configure">--with-config-file-scan-dir</strong> で設定します。
    このスキャンディレクトリは実行時に上書きできます。
    環境変数 <var class="varname">PHP_INI_SCAN_DIR</var> で指定します。
   </p>

   <p class="para">
    複数のディレクトリを指定するには、各プラットフォームのパス区切り文字
    (Window や NetWare そして RISC OS の場合は <code class="literal">;</code>、
    その他のプラットフォームの場合は <code class="literal">:</code>。PHP が用いる値は定数
    <strong><code><a href="dir.constants.php#constant.path-separator">PATH_SEPARATOR</a></code></strong> で取得できます)
    を用います。<var class="varname">PHP_INI_SCAN_DIR</var> に空文字列が指定された場合は、
    PHP のコンパイル時に
    <strong class="option configure">--with-config-file-scan-dir</strong>
    で指定されたディレクトリもスキャンします。
   </p>

   <p class="para">
    指定されたディレクトリの中にあるファイルの中で、ファイル名が
    <code class="literal">.ini</code> で終わるすべてのファイルを、アルファベット順にスキャンします。
    読み込まれたファイルの一覧とその順序を調べるには、
    <span class="function"><a href="function.php-ini-scanned-files.php" class="function">php_ini_scanned_files()</a></span> を呼ぶか、あるいは
    <strong class="option unknown">--ini</strong> オプションつきで PHP を実行します。
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
PHP のコンパイル時に --with-config-file-scan-dir=/etc/php.d
を指定しており、パス区切り文字が : であるものとします

$ php
  PHP は /etc/php.d/*.ini を設定ファイルとして読み込みます。

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
  PHP は /usr/local/etc/php.d/*.ini を設定ファイルとして読み込みます。

$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
  PHP はまず /etc/php.d/*.ini を設定ファイルとして読み込み、
  続いて /usr/local/etc/php.d/*.ini も設定ファイルとして読み込みます。

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
  PHP はまず /usr/local/etc/php.d/*.ini を設定ファイルとして読み込み、
  続いて /etc/php.d/*.ini を設定ファイルとして読み込みます。
</pre></div>
    </div>
   </div>
  </div>
  </div><?php manual_footer($setup); ?>