<?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">Instalar la extensión de 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">Instalar la extensión de MongoDB PHP con PECL</h2>

  <p class="para">
   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="para">
   En sistemas con múltiples versiones de PHP instaladas (por ejemplo, macOS por omisión,
   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 fichero <var class="filename">php.ini</var>. Además, cada entorno PHP (por ejemplo
   CLI, web) puede utilizar ficheros <var class="filename">php.ini</var> separados.
  </p>

  <p class="para">
   Desde la versión 1.17.0 de la extensión, PECL solicitará diversas opciones de
   <code class="literal">configuraciones</code>. Para instalar la extensión con las opciones por omisión
   en un script no interactivo, una entrada vacía puede ser enviada a
   <code class="literal">pecl install</code> utilizando 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">
   Una lista completa de las opciones <code class="literal">configure</code> soportadas puede ser
   encontrada en el fichero <code class="literal">package.xml</code> incluido en el paquete PECL.
   Para instalar la extensión con opciones de <code class="literal">configuraciones</code> específicas
   en un script no interactivo, la opción
   <code class="literal">--configureoptions</code> para
   <code class="literal">pecl install</code> puede ser utilizada :
   <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="para">
   Por omisión la instalación de la extensión via PECL utilizará las versiones incluidas 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> y tratará automáticamente
   de configurarlas.
  </p>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Si el proceso de construcción falla al 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 utilizar el
    proceso
    <a href="mongodb.installation.php#mongodb.installation.manual" class="link">de instalación manual</a>.
   </span>
  </p></blockquote>

  <p class="para">
   Para finalizar, añada la siguiente línea al fichero <var class="filename">php.ini</var> para cada entorno
   que necesitará utilizar 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">Instalar la extensión de MongoDB PHP en macOS con Homebrew</h2>

  <p class="para">
   <a href="https://brew.sh/2018/01/19/homebrew-1.5.0/" class="link external">&raquo;&nbsp;Homebrew 1.5.0</a>
   ha deprecado el <a href="https://github.com/Homebrew/brew" class="link external">&raquo;&nbsp;tap Homebrew/php</a>
   y ha eliminado las fórmulas para las extensiones PHP individuales. En el futuro, los usuarios
   de macOS están invitados a instalar la fórmula
   <a href="https://formulae.brew.sh/formula/php" class="link external">&raquo;&nbsp;php</a> y a seguir las instrucciones
   <a href="mongodb.installation.php#mongodb.installation.pecl" class="link">de instalación estándar de PECL</a>
   utilizando el comando <a href="install.pecl.php" class="link">pecl</a>
   proporcionado por la instalación PHP Homebrew.
  </p>
  <p class="para">
   De lo contrario, el
   <a href="https://github.com/shivammathur/homebrew-extensions" class="link external">&raquo;&nbsp;tap shivammathur/extensions</a>
   proporciona fórmulas para las extensiones PHP individuales. 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>

   Es de notar que solo la última versión de la extensión está disponible en brew.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <strong>Instalar las dependencias requeridas</strong><br />
   <p class="para">
    Para garantizar que el soporte SSL puede ser configurado correctamente, asegúrese de que las
    fórmulas <code class="literal">openssl</code> y <code class="literal">pkgconf</code> están
    instaladas. Si alguno de estos paquetes falta, la extensión será compilada
    con Secure Transport, lo que puede causar problemas de compatibilidad.
   </p>
  </p></blockquote>
 </div>

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

  <p class="para">
   Los binarios precompilados están adjuntos a las
   <a href="https://github.com/mongodb/mongo-php-driver/releases/" class="link external">&raquo;&nbsp;versiones Github</a>
   del proyecto. Los archivos son publicados para diversas combinaciones de versión PHP,
   seguridad de hilos (TS o NTS) y arquitectura (x86 o x64). Determine
   el archivo correcto para el entorno PHP y extraiga el fichero
   <var class="filename">php_mongodb.dll</var> en el directorio de extensión (&quot;ext&quot; por omisión).
  </p>

  <p class="para">
   Añada la siguiente línea al fichero <var class="filename">php.ini</var> para cada entorno que necesitará
   utilizar la extensión:
   <div class="example-contents">
<div class="inicode"><pre class="inicode">extension=php_mongodb.dll</pre>
</div>
   </div>

  </p>

  <p class="para">
   La falla en la selección del binario correcto resultará en un error al intentar
   cargar la extensión DLL en la 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 coincida con las siguientes propiedades de ejecución 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 hilos (<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="para">
   Además de las constantes mencionadas anteriormente, estas propiedades también pueden ser
   deducidas de <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>. Si un sistema tiene múltiples ejecuciones PHP
   instaladas, verifique que la salida de <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> es para
   el entorno correcto.
  </p>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <strong>Dependencias adicionales DLL para los usuarios de Windows</strong><br />
   <p class="para">
    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>
   </p>
  </p></blockquote>
 </div>

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

  <p class="para">
   Para los desarrolladores y usuarios interesados en las últimas correcciones de errores,
   la extensión puede ser compilada a partir del último código fuente en
   <a href="https://github.com/mongodb/mongo-php-driver" class="link external">&raquo;&nbsp;Github</a>. Ejecute los siguientes comandos
   para clonar y construir 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="para">
   En sistemas con múltiples versiones de PHP instaladas (por ejemplo, macOS por omisión,
   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 fichero <var class="filename">php.ini</var>. Además, cada entorno PHP (por ejemplo
   CLI, web) puede utilizar ficheros <var class="filename">php.ini</var> separados.
   </p>

  <p class="para">
   Por omisión, la extensión utilizará las versiones incluidas 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> y
   tratará de 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 a
   <code class="literal">configure</code>.
  </p>

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

  <p class="para">
   Cuando se utilizan las versiones agrupadas de libmongoc y libmongocrypt,
   la extensión también tratará de seleccionar una biblioteca SSL según la opción de
   <code class="literal">configuración</code>  <code class="literal">--with-mongodb-ssl</code>.
   A partir de la versión 1.17.0 de la extensión, OpenSSL es siempre preferido por omisión.
   Anteriormente, Secure Transport era el valor por omisión en macOS y OpenSSL era el valor por omisión
   en todas las otras plataformas.
  </p>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    Si el proceso de construcción falla al 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.
   </p>

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

  <p class="para">
   El último paso de construcción, <strong class="command">make install</strong>, indicará dónde
   <var class="filename">mongodb.so</var> ha sido instalado, 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 <var class="filename">mongodb.so</var>
   ha sido instalado. La opción puede ser consultada 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="para">
   Si los directorios difieren, modifique
   <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">
   Para finalizar, añada la siguiente línea al fichero <var class="filename">php.ini</var> para cada entorno
   que necesitará utilizar 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); ?>