<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'configuration.file.php',
    1 => 'El fichero de configuraci&oacute;n',
    2 => 'El fichero de configuraci&oacute;n',
  ),
  'up' => 
  array (
    0 => 'configuration.php',
    1 => 'Configuraci&oacute;n en tiempo de ejecuci&oacute;n',
  ),
  'prev' => 
  array (
    0 => 'configuration.php',
    1 => 'Configuraci&oacute;n en tiempo de ejecuci&oacute;n',
  ),
  'next' => 
  array (
    0 => 'configuration.file.per-user.php',
    1 => 'Ficheros .user.ini',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    '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">El fichero de configuración</h2>

  <p class="simpara">
   El fichero de configuración (<var class="filename">php.ini</var>) es leído por PHP al inicio. Si se ha compilado PHP como módulo, el fichero solo se lee una vez, al inicio del servidor web. Para las versiones
   <abbr title="Common Gateway Interface">CGI</abbr> y <abbr title="Command Line Interpreter/Interface">CLI</abbr> el fichero es leído en cada invocación.
  </p>
  <p class="para">
   El <var class="filename">php.ini</var> se busca en estos lugares (y en este orden) :
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      El lugar específico del módulo SAPI (la directiva <code class="literal">PHPIniDir</code>
      de Apache 2, la opción de la línea de comandos <code class="literal">-c</code> en CGI y en CLI)
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      La variable de entorno <var class="varname">PHPRC</var>.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      El lugar donde se encuentra el fichero <code class="literal">php.ini</code>
      puede ser definido para diferentes versiones de PHP.
      La raíz de las claves de registro depende de la arquitectura de 32 o 64 bits del SO y de PHP.
      Para un SO y PHP de 32 bits o un SO y PHP de 64 bits, utilizar
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]</code> para PHP de 32 bits
      en un SO de 64 bits, utilizar
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]</code>
      en su lugar.
      Para una instalación con la misma arquitectura, las siguientes claves de registro se buscan en este orden :
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z]</code>,
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y]</code> y
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]</code>, donde
      x, y y z significan las versiones mayores, menores y normales.
      Para una arquitectura de 32 bits de PHP en un SO de 64 bits, las siguientes claves de
      registro se buscan en este orden :
      <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> y
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x]</code>, donde
      x, y y z significan las versiones mayores, menores y normales.
      Si hay un valor para <code class="literal">IniFilePath</code> en estas claves,
      el primero encontrado será utilizado como el lugar donde se encuentra el fichero
      <code class="literal">php.ini</code> (solo en Windows).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]</code> o
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]</code>, valor de
      <code class="literal">IniFilePath</code> (solo en Windows).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      El directorio de trabajo actual (excepto para CLI)
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      El directorio del servidor web (para los módulos SAPI), o el directorio que contiene PHP
      (de otro modo en Windows)
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      El directorio Windows (<var class="filename">C:\windows</var>
      o <var class="filename">C:\winnt</var>) (para Windows), o
      la opción de compilación <code class="literal">--with-config-file-path</code> durante la compilación
     </span>
    </li>
   </ul>
  </p>
  <p class="para">
   Si el fichero <var class="filename">php-SAPI.ini</var> existe (donde SAPI utiliza SAPI, por lo que
   el nombre del fichero es e.g. <var class="filename">php-cli.ini</var> o
   <var class="filename">php-apache.ini</var>), se utilizará en lugar de <var class="filename">php.ini</var>.
   El nombre SAPI puede ser determinado utilizando la función <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">Nota</strong>: 
   <p class="para">
    El servidor web Apache cambia este directorio al directorio root al inicio, lo que hace
    que PHP intente leer <var class="filename">php.ini</var> desde el sistema de ficheros raíz si existe.
   </p>
  </p></blockquote>
  <p class="simpara">
   Las variables de entorno pueden ser referenciadas en los valores
   de configuración de <var class="filename">php.ini</var> como se ilustra a continuación. A partir de PHP 8.3.0,
   un valor de repliegue puede ser especificado, que será utilizado cuando la variable
   referenciada no esté definida.
  </p>
  <div class="example" id="example-1">
   <p><strong>Ejemplo #1 Variables de entorno en <var class="filename">php.ini</var></strong></p>
   <div class="example-contents">
<div class="inicode"><pre class="inicode">; PHP_MEMORY_LIMIT se toma desde el entorno
memory_limit = ${PHP_MEMORY_LIMIT}
; Si PHP_MAX_EXECUTION_TIME no está definido, tomará el valor de repliegue 30.
max_execution_time = ${PHP_MAX_EXECUTION_TIME:-30}</pre>
</div>
   </div>

  </div>
  <p class="para">
   Las directivas <var class="filename">php.ini</var> están directamente documentadas, por extensiones,
   en las páginas respectivas del manual de estas extensiones. La
   <a href="ini.php" class="link">lista de directivas internas</a> está disponible
   en el anexo. Es probable que no todas las directivas PHP estén documentadas
   en el manual. Para una lista completa de las directivas disponibles en su versión de PHP,
   lea los comentarios de su propio fichero <var class="filename">php.ini</var>.
   También se puede encontrar la
   <a href="https://github.com/php/php-src/blob/master/php.ini-production" class="link external">&raquo;&nbsp;última versión del <var class="filename">php.ini</var></a>
   en Git.
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Ejemplo #2 Extracto del <var class="filename">php.ini</var></strong></p>
    <div class="example-contents">
<div class="inicode"><pre class="inicode">; todo texto en una línea, situado después de un punto y coma &quot;;&quot; es ignorado
[php] ; los marcadores de sección (texto entre corchetes) también son ignorados
; Los valores booleanos pueden ser especificados así :
;    true, on, yes
; o false, off, no, none
register_globals = off
track_errors = yes

; se pueden colocar las cadenas de caracteres entre comillas
include_path = &quot;.:/usr/local/lib/php&quot;

; Las barras invertidas se tratan como cualquier carácter
include_path = &quot;.;c:\php\lib&quot;</pre>
</div>
    </div>

    
   </div>
  </p>
  <p class="para">
   Es posible referirse a variables .ini
   desde ficheros .ini. Por ejemplo : <code class="literal">open_basedir = ${open_basedir}
   &quot;:/new/dir&quot;</code>.
  </p>
    <div class="sect2" id="configuration.file.scan">
   <h3 class="title">Leer un directorio</h3>

   <p class="para">
    Es posible configurar PHP para leer los ficheros .ini presentes en un directorio.
    después de la lectura de <var class="filename">php.ini</var>. Esto se ajusta durante la compilación con el argumento
    <strong class="option configure">--with-config-file-scan-dir</strong>.
    El directorio a leer puede ser modificado durante la ejecución
    por la definición de la variable de entorno <var class="varname">PHP_INI_SCAN_DIR</var>.
   </p>

   <p class="para">
    Es posible leer varios directorios separándolos con un
    separador de ruta específico de la plataforma (<code class="literal">;</code> para Windows, NetWare
    y RISC OS; <code class="literal">:</code> para todas las otras plataformas; el valor utilizado por PHP es
    disponible en la constante <strong><code><a href="dir.constants.php#constant.path-separator">PATH_SEPARATOR</a></code></strong>).
    Si se proporciona un directorio vacío en
    <var class="varname">PHP_INI_SCAN_DIR</var>, PHP
    también leerá el directorio proporcionado durante la compilación a través de
    <strong class="option configure">--with-config-file-scan-dir</strong>.
   </p>

   <p class="para">
    En cada directorio, PHP leerá todos los ficheros que terminen por
    <code class="literal">.ini</code> en orden alfabético. Una lista de los ficheros que
    han sido cargados y en qué orden está disponible llamando a la función
    <span class="function"><a href="function.php-ini-scanned-files.php" class="function">php_ini_scanned_files()</a></span>, o ejecutando PHP con la opción
    <strong class="option unknown">--ini</strong>.
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
Suponiendo que PHP está configurado con --with-config-file-scan-dir=/etc/php.d,
y que el separador de ruta es :...

$ php
  PHP cargará todos los ficheros presentes en /etc/php.d/*.ini como fichero
  de configuración.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
  PHP cargará todos los ficheros presentes en /usr/local/etc/php.d/*.ini
  como fichero de configuración.

$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
  PHP cargará todos los ficheros presentes en /etc/php.d/*.ini, luego
  /usr/local/etc/php.d/*.ini como fichero de configuración.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
  PHP cargará todos los ficheros presentes en /usr/local/etc/php.d/*.ini, luego en
  /etc/php.d/*.ini como fichero de configuración.
</pre></div>
    </div>
   </div>
  </div>
 </div><?php manual_footer($setup); ?>