<?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 => 'de',
  ),
  'this' => 
  array (
    0 => 'configuration.file.php',
    1 => 'Die Konfigurationsdatei',
    2 => 'Die Konfigurationsdatei',
  ),
  'up' => 
  array (
    0 => 'configuration.php',
    1 => 'Laufzeiteinstellungen',
  ),
  'prev' => 
  array (
    0 => 'configuration.php',
    1 => 'Laufzeiteinstellungen',
  ),
  'next' => 
  array (
    0 => 'configuration.file.per-user.php',
    1 => '.user.ini-Dateien',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    '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">Die Konfigurationsdatei</h2>

  <p class="simpara">
   Die Konfigurationsdatei (<var class="filename">php.ini</var>) wird beim Start von PHP eingelesen. Für
   die Servermodul-Versionen von PHP geschieht dies nur einmal beim Start des
   Webservers. Für die <abbr title="Common Gateway Interface">CGI</abbr>- und
   <abbr title="Command Line Interpreter/Interface">CLI</abbr>-Versionen geschieht dies bei jedem Aufruf.
  </p>
  <p class="para">
   Nach der <var class="filename">php.ini</var> wird an folgenden Orten in der angegebenen Reihenfolge
   gesucht:
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      Spezielle Orte für SAPI-Module (<code class="literal">PHPIniDir</code>-Direktive
      im Apache2, <code class="literal">-c</code> Kommandozeilenparameter in CGI und
      CLI)
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Die <var class="varname">PHPRC</var>-Umgebungsvariable.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Die Position der <code class="literal">php.ini</code>-Datei kann für verschiedene
      Versionen von PHP gesetzt werden. Die Wurzel der Registrierungsschlüssel
      hängt davon ab, ob es sich um ein 32- oder 64-bit-System handelt, und
      ebenfalls von der PHP-Version. Für 32-bit-PHP auf einem 32-bit-System
      oder für 64-bit-PHP auf einem 64-bit-System ist
      <code class="literal">[(HKEY_LOCAL_MACHINE\SOFTWARE\PHP]</code> zu verwenden; für
      32-bit-PHP auf einem 64-bit-System ist stattdessen
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]</code>] zu
      verwenden. Bei einer Installation mit derselben Bitanzahl werden die
      folgenden Registrierungsschlüssel in der angegebenen Reihenfolge
      durchsucht:
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z]</code>,
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y]</code> und
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]</code>, wobei x, y und z
      die Major-, Minor- und Release-Versionen von PHP darstellen.
      Für 32-bit PHP-Versionen auf einem 64-bit-System werden die folgenden
      Registrierungsschlüssel in der angegebenen Reihenfolge durchsucht:
      <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> und
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x]</code>, wobei
      x, y und z die Major-, Minor- und Release-Versionen von PHP darstellen.
      Falls ein Wert für <code class="literal">IniFilePath</code> in einem dieser
      Schlüssel existiert, so wird der zuerst gefundene als Position der
      <code class="literal">php.ini</code> verwendet (nur unter Windows).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]</code> bzw.
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]</code>, Wert von
      <code class="literal">IniFilePath</code> (nur unter Windows).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Aktuelles Arbeitsverzeichnis (außer CLI).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Das Webserververzeichnis (für SAPI-Module) oder das PHP-Verzeichnis
      (andernfalls in Windows).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Windows-Verzeichnis (<var class="filename">C:\windows</var>
      oder <var class="filename">C:\winnt</var>) (unter Windows)
      oder die <code class="literal">--with-config-file-path</code>-Kompilierungsoption.
     </span>
    </li>
   </ul>
  </p>
  <p class="para">
   Falls die Datei <var class="filename">php-SAPI.ini</var> existiert (wobei SAPI die
   verwendete SAPI ist, was als Dateinamen z. B.
   <var class="filename">php-cli.ini</var> oder <var class="filename">php-apache.ini</var>
   ergibt), wird diese anstelle der <var class="filename">php.ini</var> verwendet. Der Name der SAPI
   kann durch <span class="function"><a href="function.php-sapi-name.php" class="function">php_sapi_name()</a></span> ermittelt werden.
  </p>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <p class="para">
    Der Apache-Webserver wechselt beim Start das Arbeitsverzeichnis in das
    Wurzelverzeichnis, weshalb PHP versucht, die <var class="filename">php.ini</var> aus dem
    Wurzelverzeichnis zu lesen, wenn diese existiert.
   </p>
  </p></blockquote>
  <p class="simpara">
   Umgebungsvariablen können in Konfigurationswerten in der <var class="filename">php.ini</var>
   referenziert werden, wie unten gezeigt. Seit PHP 8.3.0 kann ein Standardwert
   angegeben werden, der verwendet wird, wenn die referenzierte Variable nicht
   definiert ist.
  </p>
  <div class="example" id="example-1">
   <p><strong>Beispiel #1 <var class="filename">php.ini</var>-Umgebungsvariablen</strong></p>
   <div class="example-contents">
<div class="inicode"><pre class="inicode">; PHP_MEMORY_LIMIT ist der Name einer Umgebungsvariablen
memory_limit = ${PHP_MEMORY_LIMIT}
; Wenn PHP_MAX_EXECUTION_TIME nicht gesetzt ist, wird der Standardwert 30 verwendet
max_execution_time = ${PHP_MAX_EXECUTION_TIME:-30}</pre>
</div>
   </div>

  </div>
  <p class="para">
   Die Optionen der <var class="filename">php.ini</var> für Extensions werden auf den Handbuchseiten
   der jeweiligen Extensions behandelt. Die <a href="ini.php" class="link">Beschreibung
   der <var class="filename">php.ini</var>-Direktiven des Sprachkerns</a> ist im Anhang verfügbar. Es werden
   jedoch möglicherweise nicht alle PHP-Direktiven im Handbuch erläutert. Für
   eine komplette Liste der in Ihrer PHP-Version verfügbaren Einstellungen
   lesen Sie bitte die gut kommentierte <var class="filename">php.ini</var>. Möglicherweise kann die
   <a href="https://github.com/php/php-src/blob/master/php.ini-production" class="link external">&raquo;&nbsp;aktuellste <var class="filename">php.ini</var></a> aus dem
   Git-Repository ebenfalls hilfreich sein.
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Beispiel #2 <var class="filename">php.ini</var>-Beispiel</strong></p>
    <div class="example-contents">
<div class="inicode"><pre class="inicode">; Jeder Text in einer Zeile nach einem Semikolon, welches nicht
; in Anführungszeichen steht, wird ignoriert
[php] ; Abschnittsmarkierungen (Text in eckigen Klammern) werden ebenfalls ignoriert
; Boolesche Werte können auf einen der folgenden Werte eingestellt werden:
;      true, on, yes
; oder false, off, no, none
register_globals = off
track_errors = yes

; Sie können Zeichenketten in Anführungszeichen einschließen
include_path = &quot;.:/usr/local/lib/php&quot;

; Backslashes werden wie alle anderen Zeichen behandelt
include_path = &quot;.;c:\php\lib&quot;</pre>
</div>
    </div>

    
   </div>
  </p>
  <p class="para">
   Es ist möglich, sich auf bereits definierte .ini-Variablen innerhalb der
   .ini-Dateien zu beziehen. Zum Beispiel:
   <code class="literal">open_basedir = ${open_basedir}&quot;:/new/dir&quot;</code>.
  </p>
  <div class="sect2" id="configuration.file.scan">
   <h3 class="title">Scan-Verzeichnisse</h3>

   <p class="para">
    Es ist möglich, PHP so zu konfigurieren, dass nach .ini Dateien in einem
    Verzeichnis gesucht wird, nachdem <var class="filename">php.ini</var> gelesen wurde. Dies kann zur
    Kompilierzeit durch Setzen der Option <strong class="option configure">--with-config-file-scan-dir</strong> erfolgen. Das
    Scan-Verzeichnis kann zur Laufzeit überschrieben werden, indem die
    Umgebungsvariable <var class="varname">PHP_INI_SCAN_DIR</var> gesetzt wird.
   </p>

   <p class="para">
    Es ist möglich, mehrere Verzeichnisse anzugeben, indem sie mit dem
    plattformspezifischen Pfadtrenner (<code class="literal">;</code> unter Windows,
    NetWare und RISC OS; <code class="literal">:</code> auf allen anderen Plattformen;
    der Wert, den PHP verwendet, is als <strong><code><a href="dir.constants.php#constant.path-separator">PATH_SEPARATOR</a></code></strong>
    verfügbar). Wird in <var class="varname">PHP_INI_SCAN_DIR</var> ein leeres
    Verzeichnis angegeben, dann wird PHP beim Kompilieren auch das mit
    <strong class="option configure">--with-config-file-scan-dir</strong> angegebene
    Verzeichnis durchsuchen.
   </p>

   <p class="para">
    In jedem Verzeichnis wird PHP alle Dateien mit der Erweiterung
    <code class="literal">.ini</code> in alphabetischer Reihenfolge lesen. Eine gemäß der
    Reihenfolge geordnete Liste der geladenen Dateien ist durch Aufruf von
    <span class="function"><a href="function.php-ini-scanned-files.php" class="function">php_ini_scanned_files()</a></span> verfügbar, oder indem PHP mit der
    Option <strong class="option unknown">--ini</strong> ausgeführt wird.
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
Wir nehmen an, dass PHP mit --with-config-file-scan-dir=/etc/php.d kompiliert
wurde, und dass der Pfadtrenner : ist...

$ php
  PHP wird alle Dateien in /etc/php.d/*.ini als Konfigurationsdateien laden.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
  PHP wird alle Dateien in /usr/local/etc/php.d/*.ini als
  Konfigurationsdateien laden.

$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
  PHP wird alle Dateien in /etc/php.d/*.ini, und dann
  /usr/local/etc/php.d/*.ini als Konfigurationsdateien laden.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
  PHP wird alle Dateien in /usr/local/etc/php.d/*.ini, und dann
  /etc/php.d/*.ini als Konfigurationsdateien laden.
</pre></div>
    </div>
   </div>
  </div>
 </div><?php manual_footer($setup); ?>