<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/install.pecl.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'install.pecl.windows.php',
    1 => 'Instalaci&oacute;n de una extensi&oacute;n PHP en Windows',
    2 => 'Instalaci&oacute;n de una extensi&oacute;n PHP en Windows',
  ),
  'up' => 
  array (
    0 => 'install.pecl.php',
    1 => 'Instalaci&oacute;n de extensiones PECL',
  ),
  'prev' => 
  array (
    0 => 'install.pecl.downloads.php',
    1 => 'Descarga de extensiones PECL',
  ),
  'next' => 
  array (
    0 => 'install.pecl.pear.php',
    1 => 'Compilaci&oacute;n de extensiones PECL compartidas con el comando pecl',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'install/pecl.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="install.pecl.windows" class="sect1">
  <h2 class="title">Instalación de una extensión PHP en Windows</h2>
  <p class="para">
   Hay dos formas de cargar una extensión PHP en Windows: compilarla en
   PHP o cargar la DLL.
   Cargar una extensión precompilada es la forma más fácil y preferida.
  </p>
  <p class="para">
   Para cargar una extensión, debe estar disponible como un
   fichero <var class="filename">.dll</var>
   en el sistema.
   Todas las extensiones son compiladas automáticamente y periódicamente por el Grupo PHP
   (consulte la siguiente sección para la descarga).
  </p>
  <p class="para">
   Para compilar una extensión en PHP, consulte la
   documentación de <a href="install.windows.building.php" class="link">compilación desde el código fuente</a>.
  </p>
  <p class="para">
   Para compilar una extensión independiente (también conocida como un fichero DLL), consulte la
   documentación de <a href="install.windows.building.php" class="link">compilación desde el código fuente</a>.
   Si el fichero DLL no está disponible ni con la distribución de PHP ni en PECL,
   puede ser necesario compilarlo antes de que la extensión pueda usarse.
  </p>
  <div class="sect2" id="install.pecl.windows.find">
   <h3 class="title">¿Dónde encontrar una extensión?</h3>
   <p class="para">
    Las extensiones PHP suelen llamarse <var class="filename">php_*.dll</var> (donde el
    asterisco representa el nombre de la extensión), y se encuentran en la
    carpeta <var class="filename">PHP\ext</var>.
   </p>
   <p class="para">
    PHP incluye las extensiones más útiles para la mayoría de los desarrolladores.
    Se llaman extensiones <em>incluidas</em>.
   </p>
   <p class="para">
    Sin embargo, si las extensiones incluidas no proporcionan la funcionalidad necesaria,
    aún puede encontrarse una extensión que lo haga en <a href="https://pecl.php.net/" class="link external">&raquo;&nbsp;PECL</a>.
    La Biblioteca de Extensiones de la Comunidad PHP (PECL) es un repositorio para
    Extensiones PHP, que proporciona un directorio de todas las extensiones conocidas y ofrece
    instalaciones para descargar y desarrollar extensiones PHP.
   </p>
   <p class="para">
    Si una extensión ha sido desarrollada para usos particulares, puede estar alojada en
    PECL para que otros con las mismas necesidades puedan beneficiarse de ella.
    Un buen efecto secundario es que es una buena oportunidad para recibir comentarios,
    (con suerte) agradecimientos, informes de errores e incluso correcciones/parches.
    Antes de enviar una extensión para alojarla en PECL, lea
    <a href="https://pecl.php.net/package-new.php" class="link external">&raquo;&nbsp;PECL submit</a>.
   </p>
  </div>

  <div class="sect2" id="install.pecl.windows.which">
   <h3 class="title">¿Qué extensión descargar?</h3>
   <p class="para">
    <em>
     Muchas veces, habrá varias versiones de cada DLL disponibles:
    </em>
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       Diferentes números de versión (al menos los dos primeros números deben coincidir)
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Diferentes configuraciones de seguridad de hilos
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Diferentes arquitecturas de procesador (x86, x64, ...)
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Diferentes configuraciones de depuración
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       <code class="literal">etc.</code>
      </span>
     </li>
    </ul>
   </p>
   <p class="para">
    Tenga en cuenta que la configuración de la extensión debe coincidir con todas las configuraciones de
    el ejecutable de PHP que se está utilizando.
    El siguiente script PHP informará <em>todo</em> sobre la configuración de PHP:
   </p>
   <p class="para">
    <div class="example" id="example-1">
     <p><strong>Ejemplo #1 
      Llamada a <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>
     </strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />phpinfo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="para">
    O desde la línea de comandos, ejecute:
    <div class="example-contents screen">
<div class="cdata"><pre>
drive:\path\to\php\executable\php.exe -i
</pre></div>
    </div>
   </p>
  </div>

  <div class="sect2" id="install.pecl.windows.loading">
   <h3 class="title">Carga de una extensión</h3>
   <p class="para">
    La forma más común de cargar una extensión PHP es incluirla en el
    fichero de configuración <var class="filename">php.ini</var>.
    Tenga en cuenta que muchas extensiones ya están presentes en el <var class="filename">php.ini</var> y
    que solo es necesario eliminar el punto y coma para activarlas.
   </p>
   <p class="para">
    Tenga en cuenta que, a partir de PHP 7.2.0, puede usarse el nombre de la extensión
    en lugar del nombre del fichero de la extensión.
    Al ser independiente del sistema operativo y más fácil, especialmente para los recién llegados, se convierte
    en la forma recomendada de especificar las extensiones a cargar.
    Los nombres de fichero siguen siendo compatibles con versiones anteriores.
   </p>
   <div class="example-contents screen">
<div class="cdata"><pre>
;extension=php_extname.dll
</pre></div>
   </div>
   <div class="example-contents screen">
<div class="cdata"><pre>
extension=php_extname.dll
</pre></div>
   </div>
   <div class="example-contents screen">
<div class="cdata"><pre>
; A partir de PHP 7.2.0, se prefiere:
extension=extname
zend_extension=another_extension
</pre></div>
   </div>
   <p class="para">
    Sin embargo, algunos servidores web son confusos porque no usan
    el <var class="filename">php.ini</var> ubicado junto al ejecutable de PHP.
    Para averiguar dónde reside el <var class="filename">php.ini</var> real, busque su ruta
    en <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>:
   </p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Configuration File (php.ini) Path  C:\WINDOWS
</pre></div>
   </div>
   <div class="example-contents screen">
<div class="cdata"><pre>
Loaded Configuration File   C:\Program Files\PHP\8.2\php.ini
</pre></div>
   </div>
   <p class="para">
    Después de activar una extensión, guarde <var class="filename">php.ini</var>, reinicie el servidor web y
    verifique <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> nuevamente.
    La nueva extensión debería tener ahora su propia sección.
   </p>
  </div>

  <div class="sect2" id="install.pecl.windows.problemsolving">
   <h3 class="title">Resolución de problemas</h3>
   <p class="para">
    Si la extensión no aparece en <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>,
    deben revisarse los registros para saber de dónde proviene el problema.
   </p>
   <p class="para">
    Si PHP se está utilizando desde la línea de comandos (CLI), el error de carga de la extensión
    puede leerse directamente en la pantalla.
   </p>
   <p class="para">
    Si PHP se está utilizando con un servidor web, la ubicación y el formato de los registros
    varían según el software.
    Lea la documentación del servidor web para localizar los registros, ya que no tiene
    nada que ver con PHP en sí.
   </p>
   <p class="para">
    Los problemas comunes son la ubicación de la DLL y las DLLs de las que depende, el
    valor de la configuración &quot;<a href="ini.core.php#ini.extension-dir" class="link">extension_dir</a>&quot;
    dentro de <var class="filename">php.ini</var> y las incompatibilidades en la configuración de compilación.
   </p>
   <p class="para">
    Si el problema radica en una incompatibilidad en la configuración de compilación, probablemente la DLL
    descargada no es la correcta.
    Intente descargar la extensión nuevamente con la configuración adecuada.
    Nuevamente, <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> puede ser de gran ayuda.
   </p>
  </div>

 </div><?php manual_footer($setup); ?>