<?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 => 'fr',
  ),
  'this' => 
  array (
    0 => 'apcu.configuration.php',
    1 => 'Configuration &agrave; l\'ex&eacute;cution',
    2 => 'Configuration &agrave; l\'ex&eacute;cution',
  ),
  'up' => 
  array (
    0 => 'apcu.setup.php',
    1 => 'Installation/Configuration',
  ),
  'prev' => 
  array (
    0 => 'apcu.installation.php',
    1 => 'Installation',
  ),
  'next' => 
  array (
    0 => 'apcu.constants.php',
    1 => 'Constantes pr&eacute;-d&eacute;finies',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    '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">Configuration à l&#039;exécution</h2>
 <p class="simpara">Le comportement de ces fonctions est
affecté par la configuration dans le fichier <var class="filename">php.ini</var>.</p>
 <p class="simpara">
  Bien que les réglages par défaut d&#039;APCu fonctionnent correctement sur de nombreuses
  installations, il est utile de penser à ajuster ces paramètres de configuration.
 </p>
 <p class="simpara">
  Une question importante pour la configuration d&#039;APCu est
  quelle est la taille adéquate qui doit être allouée dans la mémoire à APCu.
  La directive ini qui contrôle ce paramètre est <code class="literal">apc.shm_size</code>.
  Le paragraphe ci-dessous est important pour répondre à cette question.
 </p>
 <p class="simpara">
  Une fois le serveur lancé, le script <code class="literal">apc.php</code>, disponible avec
  l&#039;extension, peut être copié dans le répertoire racine du serveur web et exécuté par le
  navigateur. Ce script fournit une analyse détaillée du fonctionnement interne
  d&#039;APCu. Si la bibliothèque GD est activée dans PHP alors le script peut afficher
  des graphiques pertinents.
 </p>
 <p class="simpara">
  Si APCu fonctionne, le nombre de <code class="literal">Cache full count</code> (à gauche)
  affichera le nombre de fois où le cache a atteint sa capacité maximale et a dû
  évacuer des entrées pour libérer de la mémoire. Pendant l&#039;évacuation, si
  <code class="literal">apc.ttl</code> a été spécifié, APCu essaiera d&#039;abord de supprimer les
  entrées expirées, c&#039;est-à-dire les entrées dont le TTL a expiré ou les entrées
  qui n&#039;ont pas de TTL défini et qui n&#039;ont pas été consultées au cours des dernières
  <code class="literal">apc.ttl</code> secondes. Si <code class="literal">apc.ttl</code> n&#039;a pas été
  défini ou si la suppression des entrées expirées n&#039;a pas libéré suffisamment
  d&#039;espace, APCu effacera l&#039;intégralité du cache.
 </p>
 <p class="simpara">
  Le nombre d&#039;évictions devrait être minimal dans un cache bien configuré. Si le
  cache est constamment rempli et donc libéré de force, le brassage résultant aura
  des effets préjudiciables sur les performances du script. Le moyen le plus simple
  de réduire ce nombre est d&#039;allouer plus de mémoire à APCu.
 </p>
 <p class="simpara">
  Lorsque APCu est compilé avec mmap (Memory Mapping), il n&#039;utilisera qu&#039;un seul
  segment de mémoire, contrairement au cas où APCu est construit avec
  SHM (SysV Shared Memory) qui utilise plusieurs segments de mémoire. MMAP n&#039;a
  pas de limite maximale comme SHM dans <code class="literal">/proc/sys/kernel/shmmax</code>.
  En général, l&#039;utilisation de MMAP est recommandée car il réclame la mémoire
  plus vite lorsque le serveur web est redémarré et réduit l&#039;impact sur
  l&#039;allocation de mémoire au démarrage.
 </p>
 <p class="para">
  <table class="doctable table">
   <caption><strong>Options de configuration d&#039;APCu</strong></caption>
   
    <thead>
     <tr>
      <th>Nom</th>
      <th>Défaut</th>
      <th>Modifiable</th>
      <th>Historique</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.enabled" class="link">apc.enabled</a></td>
      <td>1</td>
      <td><strong><code>INI_SYSTEM</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>1</td>
      <td><strong><code>INI_SYSTEM</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>INI_SYSTEM</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>INI_SYSTEM</code></strong></td>
      <td>Antérieurement à APCu 5.1.25, la valeur par défaut était 4096</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.ttl" class="link">apc.ttl</a></td>
      <td>0</td>
      <td><strong><code>INI_SYSTEM</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>3600</td>
      <td><strong><code>INI_SYSTEM</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>INI_SYSTEM</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>0</td>
      <td><strong><code>INI_SYSTEM</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>0</td>
      <td><strong><code>INI_SYSTEM</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>0</td>
      <td><strong><code>INI_ALL</code></strong></td>
      <td>Antérieurement à APCu 5.1.19, la valeur par défaut était <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>INI_SYSTEM</code></strong></td>
      <td>Antérieurement à APCu 5.1.15, la valeur par défaut était <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>0</td>
      <td><strong><code>INI_SYSTEM</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>INI_SYSTEM</code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

    </tbody>
   
  </table>

  Pour plus de détails sur les modes INI_*,
        reportez-vous à <a href="configuration.changes.modes.php" class="xref">O&ugrave; une directive de configuration peut &ecirc;tre modifi&eacute;e</a>.
 </p>

 <p class="para">Voici un éclaircissement sur
l&#039;utilisation des directives de configuration.</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> peut être mis à 0 pour désactiver APC.
     Cela peut s&#039;avérer utile lorsqu&#039;APC est compilé statiquement dans PHP
     puisqu&#039;il n&#039;y a pas d&#039;autre moyen de le désactiver (lorsque APC est
     compilé en tant que DSO, la ligne <code class="literal">extension</code>
     dans le fichier <code class="literal">php.ini</code> peut simplement être mise en
     commentaire).
    </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">
     Le nombre de segments de mémoire partagée à allouer au cache de compilation.
     Si APC manque de mémoire partagée mais que <code class="literal">apc.shm_size</code>
     est mis à la valeur maximale autorisée par le système, alors augmenter
     cette valeur peut empêcher APC d&#039;épuiser sa mémoire.
    </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">
     La taille de chaque segment de mémoire partagée donnée en notation abrégée
     comme indiqué dans cette <a href="faq.using.php#faq.using.shorthandbytes" class="link">FAQ</a>.
     Par défaut, certains systèmes (dont la plupart des variantes de BSD)
     ont une limite très basse pour la taille d&#039;un segment de mémoire partagée.
    </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;indice&quot; sur le nombre de variables distinctes qui peuvent être stockées.
     Mettre à zéro ou, dans le doute, omettre.
    </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">
     Considérer que les entrées de cache sans TTL explicite sont expirées si elles
     n&#039;ont pas été consultées depuis autant de secondes. En effet, cela permet à ces
     entrées d&#039;être opportunément supprimées lors d&#039;une insertion dans le cache,
     ou avant une suppression complète. Il est à noter que parce que la suppression est
     opportuniste, les entrées peuvent toujours être lisibles même si elles sont
     plus anciennes que <code class="literal">apc.ttl</code> secondes. Ce paramètre n&#039;a aucun
     effet sur les entrées de cache pour lesquelles un TTL explicite est spécifié.
    </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">
     Le nombre de secondes pendant lesquelles une entrée de cache peut
     rester sur la liste de collecte des ordures après avoir été retirée ou invalidée.
     Les entrées sont éligibles à la suppression si leur nombre de références est zéro, ou si elles dépassent cette limite de temps.
     Si défini à <code class="literal">0</code>, le nettoyage basé sur le temps est désactivé,
     et les entrées ne sont supprimées que lorsque leur nombre de références tombe à zéro.
    </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 a été compilé avec l&#039;option MMAP en utilisant
     <code class="literal">--enable-mmap</code>, ce paramètre reçoit le masque de
     fichier de type mktemp à passer au module mmap pour déterminer
     si la région de la mémoire utilisant mmap sera sauvegardée par le biais
     d&#039;un fichier ou par celui de la mémoire partagée.
     Dans le cas où la sauvegarde se fait par le biais d&#039;un fichier,
     le masque sera de la forme <code class="literal">/tmp/apc.XXXXXX</code>
     (avec exactement 6 <code class="literal">X</code>).
     Pour utiliser shm_open/mmap de la norme POSIX, le masque doit contenir
     <code class="literal">.shm</code>, comme dans l&#039;exemple suivant :
     <code class="literal">/apc.shm.XXXXXX</code>. Ce paramètre peut être défini par
     <code class="literal">/dev/zero</code> pour utiliser l&#039;interface
     <code class="literal">/dev/zero</code> du noyau avec une mémoire utilisant mmap
     anonymement. Laisser ce paramètre indéfini forcera un mmap anonyme.
    </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">
     Au démarrage ou lors de la modification d&#039;un fichier dans un serveur
     très occupé, plusieurs processus peuvent entrer en compétition
     pour mettre en cache un même fichier en même temps.
     Configurer <code class="literal">apc.slam_defense</code> sur <code class="literal">1</code>
     peut aider à empêcher plusieurs processus de mettre en cache
     le même fichier simultanément en introduisant un mécanisme
     de probabilité. Si la même clé est tentée d&#039;être mise en cache
     dans un court laps de temps par différents processus, elle saute
     la mise en cache pour le processus actuel pour atténuer les éventuels
     problèmes de mise en cache.
    </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">
     Principalement utilisé pour les tests et le débogage. Définir ce
     paramètre permet d&#039;activer APC dans la version CLI de PHP.
     En temps normal, il n&#039;est pas idéal de créer, alimenter et
     détruire le cache APC à chaque requête CLI. Cependant, dans de
     nombreux scénarios de test il est utile de pouvoir activer
     facilement APC dans la version 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">
     Ce paramètre permet à APC d&#039;utiliser un sérialiseur tiers.
    </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">
     Active la gestion par APC de signaux, tels que SIGSEGV, qui provoquent
     l&#039;écriture de fichiers core dump lorsqu&#039;ils sont reçus. Quand ces
     signaux sont reçus, APC essaiera de désallouer le segment de mémoire
     partagée réservé à mmap dans le but de l&#039;exclure du fichier core
     dump. Cette option peut améliorer la stabilité du système lorsque
     des signaux fatals sont reçus et qu&#039;APC est configuré avec un long
     segment de mémoire partagée.
    </span>
    <div class="warning"><strong class="warning">Avertissement</strong>
     <p class="simpara">
      Cette option est potentiellement dangereuse. Désallouer un segment de
      mémoire partagée utilisé par mmap dans le gestionnaire de signaux
      fatals peut causer un comportement imprévisible si une erreur fatale
      survient.
     </p>
    </div>
    <blockquote class="note"><p><strong class="note">Note</strong>: 
     <span class="simpara">
      Bien que certains noyaux puissent fournir la possibilité d&#039;ignorer
      de nombreux types de mémoire partagée lorsqu&#039;ils génèrent un fichier
      core dump, ces implémentations peuvent aussi ignorer d&#039;importants
      segments de mémoire partagée tels que le tableau de bord d&#039;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">
     Optionnel, définit un chemin vers le répertoire où APC chargera
     les données du cache au démarrage.
    </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">
     Utilise l&#039;heure de début de la requête <abbr title="Server Application Programming Interface">SAPI</abbr>
     pour la durée de vie (<abbr>TTL</abbr>).
    </span>
   </dd>
  
 </dl>
</div><?php manual_footer($setup); ?>