<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/apcu.setup.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'apcu.configuration.php',
    1 => 'Configuraci&oacute;n en tiempo de ejecuci&oacute;n',
    2 => 'Configuraci&oacute;n en tiempo de ejecuci&oacute;n',
  ),
  'up' => 
  array (
    0 => 'apcu.setup.php',
    1 => 'Instalaci&oacute;n/Configuraci&oacute;n',
  ),
  'prev' => 
  array (
    0 => 'apcu.installation.php',
    1 => 'Instalaci&oacute;n',
  ),
  'next' => 
  array (
    0 => 'apcu.constants.php',
    1 => 'Constantes predefinidas',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/apcu/ini.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="apcu.configuration" class="section">
 <h2 class="title">Configuración en tiempo de ejecución</h2>
 <p class="simpara">El comportamiento de estas funciones es
afectado por la configuración en el archivo <var class="filename">php.ini</var>.</p>
 <p class="simpara">
  Aunque los ajustes predeterminados de APCu funcionan correctamente en muchas
  instalaciones, es útil considerar ajustar estos parámetros de configuración.
 </p>
 <p class="simpara">
  Una cuestión importante para la configuración de APCu es
  cuál es el tamaño adecuado que debe asignarse en la memoria a APCu.
  La directiva ini que controla este parámetro es <code class="literal">apc.shm_size</code>.
  El párrafo a continuación es importante para responder a esta pregunta.
 </p>
 <p class="simpara">
  Una vez iniciado el servidor, el script <code class="literal">apc.php</code>, disponible con
  la extensión, puede ser copiado en el document root y ejecutado por el
  navegador. Este script proporciona un análisis detallado del funcionamiento interno
  de APCu. Si la biblioteca GD está activada en PHP, entonces el script puede mostrar
  gráficos pertinentes.
 </p>
 <p class="simpara">
  Si APCu está funcionando, el número de <code class="literal">Cache full count</code> (a la izquierda)
  mostrará el número de veces que el caché ha alcanzado su capacidad máxima y ha tenido que
  evacuar entradas para liberar memoria. Durante la evacuación, si
  <code class="literal">apc.ttl</code> ha sido especificado, APCu intentará primero eliminar las
  entradas expiradas, es decir, las entradas cuyo TTL ha expirado o las entradas
  que no tienen TTL definido y que no han sido consultadas en los últimos
  <code class="literal">apc.ttl</code> segundos. Si <code class="literal">apc.ttl</code> no ha sido
  definido o si la eliminación de las entradas expiradas no ha liberado suficiente
  espacio, APCu borrará la totalidad del caché.
 </p>
 <p class="simpara">
  El número de evacuaciones debe ser mínimo en un caché bien configurado. Si el
  caché está constantemente lleno y por lo tanto liberado a la fuerza, el removimiento resultante tendrá
  efectos perjudiciales en el rendimiento del script. La manera más sencilla
  de reducir este número es asignar más memoria a APCu.
 </p>
 <p class="simpara">
  Cuando APCu es compilado con mmap (Memory Mapping), solo utilizará un
  segmento de memoria, a diferencia del caso en que APCu es construido con
  SHM (SysV Shared Memory) que utiliza varios segmentos de memoria. MMAP no tiene
  un límite máximo como SHM en <code class="literal">/proc/sys/kernel/shmmax</code>.
  En general, el uso de MMAP es recomendado ya que reclama la memoria
  más rápidamente cuando el servidor web es reiniciado y reduce el impacto en
  la asignación de memoria al inicio.
 </p>
 <p class="para">
  <table class="doctable table">
   <caption><strong>Opciones de configuración de APCu</strong></caption>
   
    <thead>
     <tr>
      <th>Nombre</th>
      <th>Por defecto</th>
      <th>Cambiable</th>
      <th>Historial de cambios</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.enabled" class="link">apc.enabled</a></td>
      <td>&quot;1&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.shm-segments" class="link">apc.shm_segments</a></td>
      <td>&quot;1&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.shm-size" class="link">apc.shm_size</a></td>
      <td>&quot;32M&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.entries-hint" class="link">apc.entries_hint</a></td>
      <td>512 * apc.shm_size</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td>Anteriormente a APCu 5.1.25, el valor predeterminado era 4096</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.ttl" class="link">apc.ttl</a></td>
      <td>&quot;0&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.gc-ttl" class="link">apc.gc_ttl</a></td>
      <td>&quot;3600&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.mmap-file-mask" class="link">apc.mmap_file_mask</a></td>
      <td>NULL</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.slam-defense" class="link">apc.slam_defense</a></td>
      <td>&quot;0&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.enable-cli" class="link">apc.enable_cli</a></td>
      <td>&quot;0&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.use-request-time" class="link">apc.use_request_time</a></td>
      <td>&quot;0&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td>Anteriormente a APCu 5.1.19, el valor predeterminado era <code class="literal">1</code>.</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.serializer" class="link">apc.serializer</a></td>
      <td>&quot;php&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td>Anteriormente a APCu 5.1.15, el valor predeterminado era <code class="literal">&quot;default&quot;</code>.</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.coredump-unmap" class="link">apc.coredump_unmap</a></td>
      <td>&quot;0&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.preload-path" class="link">apc.preload_path</a></td>
      <td>NULL</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

    </tbody>
   
  </table>

  Para más detalles sobre los modos INI_*,
        refiérase a <a href="configuration.changes.modes.php" class="xref">D&oacute;nde una directiva de configuraci&oacute;n puede ser modificada</a>.
 </p>

 <p class="para">Aquí hay una aclaración sobre
el uso de las directivas de configuración.</p>

 <dl>
  
   <dt id="ini.apcu.enabled">
    <code class="parameter">apc.enabled</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">apc.enabled</code> puede ser puesto a 0 para desactivar APC.
     Esto puede ser útil cuando APC es compilado estáticamente en PHP
     ya que no hay otra manera de desactivarlo (cuando APC es
     compilado como DSO, la línea <code class="literal">extension</code>
     en el fichero <code class="literal">php.ini</code> puede simplemente ser comentada).
    </span>
   </dd>
  
  
   <dt id="ini.apcu.shm-segments">
    <code class="parameter">apc.shm_segments</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     El número de segmentos de memoria compartida a asignar al caché de compilación
     Si APC carece de memoria compartida pero que <code class="literal">apc.shm_size</code>
     está puesto al valor máximo permitido por el sistema, entonces aumentar
     este valor puede evitar que APC agote su memoria.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.shm-size">
    <code class="parameter">apc.shm_size</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     El tamaño de cada segmento de memoria compartida dado en notación abreviada
     como se indica en esta <a href="faq.using.php#faq.using.shorthandbytes" class="link">FAQ</a>.
     Por defecto, algunos sistemas (incluyendo la mayoría de las variantes de BSD)
     tienen un límite muy bajo para el tamaño de un segmento de memoria compartida.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.entries-hint">
    <code class="parameter">apc.entries_hint</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Un &quot;indicio&quot; sobre el número de variables distintas que pueden ser almacenadas.
     Poner a cero o en caso de duda omitir.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.ttl">
    <code class="parameter">apc.ttl</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Considerar que las entradas de caché sin TTL explícito son expiradas si no han sido consultadas desde hace tantos segundos. En efecto, esto permite que estas
     entradas sean oportunamente eliminadas durante una inserción en el caché,
     o antes de una eliminación completa. Tenga en cuenta que debido a que la eliminación es
     oportunista, las entradas pueden seguir siendo legibles incluso si son
     más antiguas que <code class="literal">apc.ttl</code> segundos. Este parámetro no tiene ningún
     efecto sobre las entradas de caché para las cuales un TTL explícito está especificado.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.gc-ttl">
    <code class="parameter">apc.gc_ttl</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     El número de segundos durante los cuales una entrada de caché puede
     permanecer en la lista de recolección de basura después de haber sido retirada o invalidada.
     Las entradas son elegibles para eliminación si su número de referencias es cero, o si exceden este límite de tiempo.
     Si se establece en <code class="literal">0</code>, la limpieza basada en el tiempo está desactivada,
     y las entradas solo se eliminan cuando su número de referencias cae a cero.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.mmap-file-mask">
    <code class="parameter">apc.mmap_file_mask</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Si APCu ha sido compilado con la opción MMAP usando
     <code class="literal">--enable-mmap</code>, este parámetro recibe la máscara de
     fichero de tipo mktemp-style a pasar al módulo mmap para determinar
     si la región de la memoria usando mmap será guardada a través
     de un fichero o por la de la memoria compartida.
     En el caso de que el guardado se haga a través de un fichero,
     la máscara será de la forma <code class="literal">/tmp/apc.XXXXXX</code>
     (con exactamente 6 <code class="literal">X</code>).
     Para usar shm_open/mmap de la norma POSIX, la máscara debe contener
     <code class="literal">.shm</code>, como en el siguiente ejemplo:
     <code class="literal">/apc.shm.XXXXXX</code>. Este parámetro puede ser definido por
     <code class="literal">/dev/zero</code> para usar la interfaz
     <code class="literal">/dev/zero</code> del núcleo con una memoria usando mmap
     anónimamente. Dejar este parámetro indefinido forzará un mmap anónimo.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.slam-defense">
    <code class="parameter">apc.slam_defense</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Al inicio o durante la modificación de un fichero en un servidor
     muy ocupado, varios procesos pueden entrar en competencia
     para poner en caché el mismo fichero al mismo tiempo.
     Configurar <code class="literal">apc.slam_defense</code> en <code class="literal">1</code>
     puede ayudar a evitar que varios procesos pongan en caché
     el mismo fichero simultáneamente introduciendo un mecanismo
     de probabilidad. Si la misma clave es intentada ser puesta en caché
     en un corto lapso de tiempo por diferentes procesos, salta
     la puesta en caché para el proceso actual para mitigar los posibles
     problemas de puesta en caché.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.enable-cli">
    <code class="parameter">apc.enable_cli</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Principalmente usado para pruebas y depuración. Definir este
     parámetro permite activar APC en la versión CLI de PHP.
     Normalmente, no es ideal crear, alimentar y
     destruir el caché APC en cada solicitud CLI. Sin embargo, en muchos escenarios de prueba es útil poder activar
     fácilmente APC en la versión CLI de PHP.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.serializer">
    <code class="parameter">apc.serializer</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Este parámetro permite a APC usar un serializador de terceros
    </span>
   </dd>
  
  
   <dt id="ini.apcu.coredump-unmap">
    <code class="parameter">apc.coredump_unmap</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Activa la gestión por APC de señales, tales como SIGSEGV, que provocan
     la escritura de ficheros core dump cuando son recibidas. Cuando estas
     señales son recibidas, APC intentará desasignar el segmento de memoria
     compartida reservado a mmap con el objetivo de excluirlo del fichero core
     dump. Esta opción puede mejorar la estabilidad del sistema cuando
     se reciben señales fatales y APC está configurado con un largo
     segmento de memoria compartida.
    </span>
    <div class="warning"><strong class="warning">Advertencia</strong>
     <p class="simpara">
      Esta opción es potencialmente peligrosa. Desasignar un segmento de
      memoria compartida usado por mmap en el gestor de señales
      fatales puede causar un comportamiento impredecible si ocurre un error fatal.
     </p>
    </div>
    <blockquote class="note"><p><strong class="note">Nota</strong>: 
     <span class="simpara">
      Aunque algunos núcleos pueden proporcionar la posibilidad de ignorar
      muchos tipos de memoria compartida cuando generan un fichero
      core dump, estas implementaciones también pueden ignorar importantes
      segmentos de memoria compartida como el tablero de Apache.
     </span>
    </p></blockquote>
   </dd>
  
  
   <dt id="ini.apcu.preload-path">
    <code class="parameter">apc.preload_path</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Opcional, define una ruta hacia el directorio donde APC cargará
     los datos del caché al inicio.
    </span>
   </dd>
  

  
   <dt id="ini.apcu.use-request-time">
    <code class="parameter">apc.use_request_time</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Usa el tiempo de inicio de la solicitud de la interfaz <abbr title="Server Application Programming Interface">SAPI</abbr>
     para la duración de vida (<abbr>TTL</abbr>).
    </span>
   </dd>
  
 </dl>
</div><?php manual_footer($setup); ?>