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

contributors($setup);

?>
<div id="mongodb.installation" class="section">
 <h2 class="title">Instalación</h2>

 <div class="section" id="mongodb.installation.pie">
  <h2 class="title">Instalación de la extensión MongoDB PHP con PIE</h2>

   <blockquote class="note"><p><strong class="note">Nota</strong>: 
 <span class="simpara">
  El instalador de Extensiones para PHP (PHP Installer for Extensions - <abbr>PIE</abbr>) es una nueva herramienta que reemplazará PECL.
  Recomendamos usar PIE para instalar extensiones.
  Más información en <a href="https://github.com/php/pie" class="link external">&raquo;&nbsp;https://github.com/php/pie</a>
 </span>
</p></blockquote>

   <p class="para">
    Para instalar la extensión MongoDB usando PIE, ejecute el siguiente comando:
    <div class="example-contents">
<div class="shellcode"><pre class="shellcode">pie install mongodb/mongodb-extension</pre>
</div>
    </div>

   </p>

 </div>

 <div class="section" id="mongodb.installation.pecl">
  <h2 class="title">Instalación de la extensión MongoDB PHP con PECL</h2>

  <p class="simpara">
   Información sobre la instalación de estas extensiones PECL
        puede ser encontrada en el capítulo del manual titulado <a href="install.pecl.php" class="link">Instalación
de extensiones PECL</a>. Otra información como notas sobre nuevas
        versiones, descargas, fuentes de archivos, información sobre los mantenedores
        así como un CHANGELOG, pueden ser encontradas aquí:
   <a href="https://pecl.php.net/package/mongodb" class="link external">&raquo;&nbsp;https://pecl.php.net/package/mongodb</a>
  </p>

  <p class="para">
   Los usuarios de Linux, Unix y macOS pueden ejecutar el siguiente comando para instalar la
   extensión:
   <div class="example-contents">
<div class="shellcode"><pre class="shellcode">$ sudo pecl install mongodb</pre>
</div>
   </div>

  </p>

  <p class="simpara">
   En sistemas con múltiples versiones de PHP instaladas (por ejemplo, la versión predeterminada de macOS,
   Homebrew, <a href="https://www.apachefriends.org/" class="link external">&raquo;&nbsp;XAMPP</a>), cada versión de PHP
   tendrá su propio comando <a href="install.pecl.php" class="link">pecl</a>
   y archivo(s) <var class="filename">php.ini</var>. Además, cada entorno de PHP (por ejemplo,
   CLI, web) puede usar archivos <var class="filename">php.ini</var> separados.
  </p>

  <p class="para">
   A partir de la versión 1.17.0 de la extensión, PECL solicitará varias
   opciones de <code class="literal">configure</code>. Para instalar la extensión con las
   opciones predeterminadas en un script no interactivo, se puede enviar una entrada de cadena vacía
   a <code class="literal">pecl install</code> usando el comando <code class="literal">yes</code>:
   <div class="example-contents">
<div class="shellcode"><pre class="shellcode">$ yes &#039;&#039; | sudo pecl install mongodb</pre>
</div>
   </div>

  </p>

  <p class="para">
   Se puede encontrar una lista completa de las opciones de <code class="literal">configure</code> admitidas
   en el archivo <code class="literal">package.xml</code> incluido en el paquete PECL.
   Para instalar la extensión con opciones específicas de <code class="literal">configure</code> en un script
   no interactivo, se puede usar la opción <code class="literal">--configureoptions</code> para
   <code class="literal">pecl install</code>:
   <div class="example-contents">
<div class="shellcode"><pre class="shellcode">$ sudo pecl install --configureoptions=&#039;with-mongodb-system-libs=&quot;yes&quot; enable-mongodb-developer-flags=&quot;no&quot;&#039; mongodb</pre>
</div>
   </div>

  </p>

  <p class="simpara">
   Por omisión, instalar la extensión mediante PECL usará versiones integradas de
   <a href="https://github.com/mongodb/mongo-c-driver/tree/master/src/libbson" class="link external">&raquo;&nbsp;libbson</a>,
   <a href="https://github.com/mongodb/mongo-c-driver" class="link external">&raquo;&nbsp;libmongoc</a> y
   <a href="https://github.com/mongodb/libmongocrypt" class="link external">&raquo;&nbsp;libmongocrypt</a> e intentará
   configurarlas automáticamente.
  </p>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Si el proceso de compilación no logra encontrar una biblioteca SSL, verifique que los paquetes
    de desarrollo (por ejemplo, <code class="literal">libssl-dev</code>) y
    <a href="https://en.wikipedia.org/wiki/Pkg-config" class="link external">&raquo;&nbsp;pkg-config</a> estén ambos
    instalados. Si esto no resuelve el problema, considere usar el
    <a href="mongodb.installation.php#mongodb.installation.manual" class="link">proceso de instalación manual</a>.
   </span>
  </p></blockquote>

  <p class="para">
   Finalmente, agregue la siguiente línea al archivo <var class="filename">php.ini</var> para cada entorno
   que necesite usar la extensión:
   <div class="example-contents">
<div class="inicode"><pre class="inicode">extension=mongodb.so</pre>
</div>
   </div>

  </p>
 </div>

 <div class="section" id="mongodb.installation.homebrew">
  <h2 class="title">Instalación de la extensión MongoDB PHP en macOS con Homebrew</h2>

  <p class="simpara">
   <a href="https://brew.sh/2018/01/19/homebrew-1.5.0/" class="link external">&raquo;&nbsp;Homebrew 1.5.0</a>
   dejó de dar soporte al <a href="https://github.com/Homebrew/brew" class="link external">&raquo;&nbsp;Homebrew/php tap</a>
   y eliminó las fórmulas para extensiones individuales de PHP. A partir de ahora, los usuarios de macOS
   deben instalar la fórmula
   <a href="https://formulae.brew.sh/formula/php" class="link external">&raquo;&nbsp;php</a>
   y seguir las instrucciones estándar de
   <a href="mongodb.installation.php#mongodb.installation.pecl" class="link">instalación con PECL</a>
   usando el comando <a href="install.pecl.php" class="link">pecl</a> proporcionado por la
   instalación de PHP de Homebrew.
  </p>
  <p class="para">
   Alternativamente, el
   <a href="https://github.com/shivammathur/homebrew-extensions" class="link external">&raquo;&nbsp;repositorio shivammathur/extensions</a>
   proporciona fórmulas para extensiones individuales de PHP. Por ejemplo, para instalar
   la extensión para PHP 8.4, ejecute:
   <div class="example-contents">
<div class="shellcode"><pre class="shellcode">$ brew install shivammathur/extensions/mongodb@8.4</pre>
</div>
   </div>

   Tenga en cuenta que solo está disponible la versión más reciente de la extensión en brew.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <strong>Instalar las dependencias requeridas</strong><br />
   <span class="simpara">
    Para garantizar que el soporte SSL pueda configurarse correctamente, asegúrese de que las fórmulas
    <code class="literal">openssl</code> y <code class="literal">pkgconf</code> estén
    instaladas. Si falta alguno de estos paquetes, la extensión se compilará con Secure Transport,
    lo que puede generar problemas de compatibilidad.
   </span>
  </p></blockquote>
 </div>

 <div class="section" id="mongodb.installation.windows">
  <h2 class="title">Instalación de la extensión MongoDB PHP en Windows</h2>

  <p class="simpara">
   Se adjuntan binarios precompilados a los
   <a href="https://github.com/mongodb/mongo-php-driver/releases/" class="link external">&raquo;&nbsp;lanzamientos del proyecto en Github</a>.
   Se publican archivos para varias combinaciones de versión de PHP, seguridad de subprocesos
   (TS o NTS) y arquitectura (x86 o x64). Determine el archivo correcto para el entorno de PHP y
   extraiga el archivo <var class="filename">php_mongodb.dll</var> al directorio de extensiones
   (&quot;ext&quot; por omisión).
  </p>

  <p class="para">
   Agregue la siguiente línea al archivo <var class="filename">php.ini</var> para cada entorno que necesite
   usar la extensión:
   <div class="example-contents">
<div class="inicode"><pre class="inicode">extension=php_mongodb.dll</pre>
</div>
   </div>

  </p>

  <p class="para">
   Si no selecciona el binario correcto, se producirá un error al intentar cargar la DLL de la extensión
   en tiempo de ejecución:
   <div class="example-contents">
<div class="txtcode"><pre class="txtcode">PHP Warning:  PHP Startup: Unable to load dynamic library &#039;mongodb&#039;</pre>
</div>
   </div>

  </p>

  <p class="para">
   Asegúrese de que la DLL descargada corresponda a las siguientes propiedades del entorno de ejecución de PHP:
   <ul class="simplelist">
    <li>Versión de PHP (<strong><code><a href="reserved.constants.php#constant.php-version">PHP_VERSION</a></code></strong>)</li>
    <li>Seguridad de subprocesos (<strong><code><a href="reserved.constants.php#constant.php-zts">PHP_ZTS</a></code></strong>)</li>
    <li>Arquitectura (<strong><code><a href="reserved.constants.php#constant.php-int-size">PHP_INT_SIZE</a></code></strong>)</li>
   </ul>
  </p>

  <p class="simpara">
   Además de las constantes mencionadas anteriormente, estas propiedades también pueden inferirse
   desde la función <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>. Si un sistema tiene múltiples entornos de ejecución
   de PHP instalados, verifique que la salida de <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> corresponda al entorno correcto.
  </p>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <strong>Dependencias adicionales de DLL para usuarios de Windows</strong><br />
   <span class="simpara">
    Para hacer funcionar esta extensión, algunas bibliotecas
<abbr title="Dynamic Link Library">DLL</abbr> deben estar disponibles a través del
<var class="envar">PATH</var> del sistema Windows. Lea la
<abbr>F.A.Q</abbr> titulada
&quot;<a href="faq.installation.php#faq.installation.addtopath" class="link">Cómo agregar mi carpeta
PHP a mi PATH de Windows</a>&quot; para más información. Copiar las bibliotecas DLL desde la
carpeta PHP a la carpeta del sistema de Windows también funciona (ya que la carpeta del sistema está por defecto en el
<var class="envar">PATH</var> del sistema), pero este método no es recomendado.
<em>Esta extensión requiere que los siguientes archivos estén en el
<var class="envar">PATH</var>:</em> 
    <var class="filename">libsasl.dll</var>
   </span>
  </p></blockquote>
 </div>

 <div class="section" id="mongodb.installation.manual">
  <h2 class="title">Compilación del controlador MongoDB PHP desde el código fuente</h2>

  <p class="para">
   Para desarrolladores y usuarios interesados en las correcciones más recientes de errores, la extensión
   puede compilarse desde el código fuente más reciente en
   <a href="https://github.com/mongodb/mongo-php-driver" class="link external">&raquo;&nbsp;Github</a>. Ejecute los siguientes
   comandos para clonar y compilar el proyecto:
   <div class="example-contents">
<div class="shellcode"><pre class="shellcode">$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule update --init
$ phpize
$ ./configure
$ make all
$ sudo make install</pre>
</div>
   </div>

  </p>

  <p class="simpara">
   En sistemas con múltiples versiones de PHP instaladas (por ejemplo, la versión predeterminada de macOS,
   Homebrew, <a href="https://www.apachefriends.org/" class="link external">&raquo;&nbsp;XAMPP</a>), cada versión de PHP
   tendrá su propio comando <a href="install.pecl.phpize.php" class="link">phpize</a>
   y archivo(s) <var class="filename">php.ini</var>. Además, cada entorno de PHP (por ejemplo,
   CLI, web) puede usar archivos <var class="filename">php.ini</var> separados.
  </p>

  <p class="simpara">
   Por omisión, la extensión usará versiones integradas de
   <a href="https://github.com/mongodb/mongo-c-driver/tree/master/src/libbson" class="link external">&raquo;&nbsp;libbson</a>,
   <a href="https://github.com/mongodb/mongo-c-driver" class="link external">&raquo;&nbsp;libmongoc</a> y
   <a href="https://github.com/mongodb/libmongocrypt" class="link external">&raquo;&nbsp;libmongocrypt</a> e intentará
   configurarlas automáticamente. Si estas bibliotecas ya están instaladas como bibliotecas del sistema,
   la extensión puede utilizarlas especificando <code class="literal">--with-mongodb-system-libs=yes</code> como
   opción para <code class="literal">configure</code>.
  </p>

  <p class="simpara">
   Para obtener una lista completa de las opciones de <code class="literal">configure</code>, ejecute
   <strong class="command">configure --help</strong>.
  </p>

  <p class="simpara">
   Al usar versiones integradas de libmongoc y libmongocrypt, la extensión también intentará
   seleccionar una biblioteca SSL según la opción <code class="literal">--with-mongodb-ssl</code> de
   <code class="literal">configure</code>. A partir de la versión 1.17.0 de la extensión, OpenSSL siempre
   se prefiere por omisión. Anteriormente, Secure Transport era la opción predeterminada en macOS
   y OpenSSL era la opción predeterminada en todas las demás plataformas.
  </p>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Si el proceso de compilación no logra encontrar una biblioteca SSL, verifique que los paquetes
    de desarrollo (por ejemplo, <code class="literal">libssl-dev</code>) y
    <a href="https://en.wikipedia.org/wiki/Pkg-config" class="link external">&raquo;&nbsp;pkg-config</a> estén ambos
    instalados.
   </span>

   <span class="simpara">
    Al usar Homebrew en macOS, es común que un sistema tenga instaladas múltiples
    versiones de OpenSSL. Para garantizar que se seleccione la versión deseada de OpenSSL,
    se puede usar la variable de entorno <code class="literal">PKG_CONFIG_PATH</code> para controlar
    la ruta de búsqueda de <code class="literal">pkg-config</code>.
   </span>
  </p></blockquote>

  <p class="para">
   El paso final de compilación, <strong class="command">make install</strong>, informará dónde
   se ha instalado <var class="filename">mongodb.so</var>, similar a:
   <div class="example-contents">
<div class="txtcode"><pre class="txtcode">Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20220829/</pre>
</div>
   </div>

  </p>

  <p class="para">
   Asegúrese de que la opción <a href="ini.core.php#ini.extension-dir" class="link">extension_dir</a>
   en <var class="filename">php.ini</var> apunte al directorio donde se instaló <var class="filename">mongodb.so</var>.
   La opción puede consultarse ejecutando:
   <div class="example-contents">
<div class="shellcode"><pre class="shellcode">$ php -i | grep extension_dir
  extension_dir =&gt; /usr/lib/php/extensions/debug-non-zts-20220829 =&gt;
                   /usr/lib/php/extensions/debug-non-zts-20220829</pre>
</div>
   </div>

  </p>

  <p class="simpara">
   Si los directorios difieren, cambie
   <a href="ini.core.php#ini.extension-dir" class="link">extension_dir</a> en <var class="filename">php.ini</var> o
   mueva manualmente <var class="filename">mongodb.so</var> al directorio correcto.
  </p>

  <p class="para">
   Finalmente, agregue la siguiente línea al archivo <var class="filename">php.ini</var> para cada entorno
   que necesite usar la extensión:
   <div class="example-contents">
<div class="inicode"><pre class="inicode">extension=mongodb.so</pre>
</div>
   </div>

  </p>
 </div>

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