<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'mongodb.installation.php',
    1 => 'Instala&ccedil;&atilde;o',
    2 => 'Instala&ccedil;&atilde;o',
  ),
  'up' => 
  array (
    0 => 'mongodb.setup.php',
    1 => 'Instala&ccedil;&atilde;o/Configura&ccedil;&atilde;o',
  ),
  'prev' => 
  array (
    0 => 'mongodb.requirements.php',
    1 => 'Depend&ecirc;ncias',
  ),
  'next' => 
  array (
    0 => 'mongodb.configuration.php',
    1 => 'Configura&ccedil;&otilde;es em Execu&ccedil;&atilde;o',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    '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">Instalação</h2>

 <div class="section" id="mongodb.installation.pie">
  <h2 class="title">Instalando a extensão MongoDB PHP com PIE</h2>

   <blockquote class="note"><p><strong class="note">Nota</strong>: 
 <span class="simpara">
  PHP Installer for Extensions (<abbr>PIE</abbr>) é uma nova ferramenta que tornará o PECL obsoleto.
  É recomendado usar o PIE para instalar extensões.
  Descubra mais em <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 a extensão MongoDB usando PIE, execute o seguinte 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">Instalando a extensão MongoDB PHP com PECL</h2>

  <p class="para">
   Informações para instalar esta extensão PECL podem ser
encontradas no capítulo <a href="install.pecl.php" class="link">Instalação de
Extensões PECL</a> do manual. Informações adicionais, como novas versões,
downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser
encontradas aqui: 
   <a href="https://pecl.php.net/package/mongodb" class="link external">&raquo;&nbsp;https://pecl.php.net/package/mongodb</a>
  </p>

  <p class="para">
   Usuários de Linux, Unix e macOS podem executar o seguinte comando para instalar a
   extensão:
   <div class="example-contents">
<div class="shellcode"><pre class="shellcode">$ sudo pecl install mongodb</pre>
</div>
   </div>

  </p>

  <p class="para">
   Em sistemas com múltiplas versões de PHP instaladas (por exemplo, macOS padrão, Homebrew,
   <a href="https://www.apachefriends.org/" class="link external">&raquo;&nbsp;XAMPP</a>), cada versão do PHP
   terá seu próprio comando <a href="install.pecl.php" class="link">pecl</a>
   e arquivo <var class="filename">php.ini</var>. Além disso, cada ambiente PHP (por exemplo,
   CLI, web) podem usar arquivos <var class="filename">php.ini</var> separados.
  </p>

  <p class="para">
   A partir da versão de extensão 1.17.0, o PECL solicitará várias opções
   de <code class="literal">configure</code>. Para instalar a extensão com opções padrão
   em um script não interativo, a entrada de string vazia pode ser canalizada para
   <code class="literal">pecl install</code> usando o 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">
   Uma lista completa de opções <code class="literal">configure</code> suportadas pode ser
   encontrada no arquivo <code class="literal">package.xml</code> incluído no pacote PECL.
   Para instalar a extensão com opções <code class="literal">configure</code> específicas
   em um script não interativo, a
   opção <code class="literal">--configureoptions</code> para
   <code class="literal">pecl install</code> pode ser usada:
   <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 padrão, a instalação da extensão via PECL usará versões agrupadas 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> e
   <a href="https://github.com/mongodb/libmongocrypt" class="link external">&raquo;&nbsp;libmongocrypt</a> e tentará
   configurá-los automaticamente.
  </p>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Se o processo de construção não conseguir encontrar uma biblioteca SSL, verifique se os
    pacotes de desenvolvimento (por exemplo, <code class="literal">libssl-dev</code>) e
    <a href="https://en.wikipedia.org/wiki/Pkg-config" class="link external">&raquo;&nbsp;pkg-config</a> estão ambos
    instalados. Se isso não resolver o problema, considere usar o processo de
    <a href="mongodb.installation.php#mongodb.installation.manual" class="link">instalação
    manual</a>.
   </span>
  </p></blockquote>

  <p class="para">
   Finalmente, adicione a seguinte linha ao arquivo <var class="filename">php.ini</var> para cada ambiente
   que precisará usar a extensão:
   <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">Instalando a extensão MongoDB PHP no macOS com 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>
   descontinuou o <a href="https://github.com/Homebrew/brew" class="link external">&raquo;&nbsp;Homebrew/php tap</a>
   e fórmulas removidas para extensões PHP individuais. A partir de agora,
   os usuários do macOS são aconselhados a instalar a
   fórmula <a href="https://formulae.brew.sh/formula/php" class="link external">&raquo;&nbsp;php</a>
   e seguir a fórmula padrão
   <a href="mongodb.installation.php#mongodb.installation.pecl" class="link">Instruções de instalação do PECL</a>
   usando o comando <a href="install.pecl.php" class="link">pecl</a> fornecido pela instalação do
   Homebrew PHP.
  </p>
  <p class="para">
   Alternativamente, o
   <a href="https://github.com/shivammathur/homebrew-extensions" class="link external">&raquo;&nbsp;shivammathur/extensions</a>
   fornece fórmulas para extensões PHP individuais. Por exemplo, para instalar uma
   extensão para PHP 8.4, execute:
   <div class="example-contents">
<div class="shellcode"><pre class="shellcode">$ brew install shivammathur/extensions/mongodb@8.4</pre>
</div>
   </div>

   Observe que apenas a versão mais recente da extensão está disponível no brew.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <strong>Instale as dependências necessárias</strong><br />
   <p class="para">
    Para garantir que o suporte SSL possa ser configurado corretamente, certifique-se de que os
    pacotes <code class="literal">openssl</code> e <code class="literal">pkgconf</code> estejam
    instalados. Se qualquer um desses estiver faltando, a extensão será
    compilada com Secure Transport, o que pode levar a problemas de compatibilidade.
   </p>
  </p></blockquote>
 </div>

 <div class="section" id="mongodb.installation.windows">
  <h2 class="title">Instalando a extensão MongoDB PHP no Windows</h2>

  <p class="para">
   Os binários pré-compilados são anexados às
   <a href="https://github.com/mongodb/mongo-php-driver/releases/" class="link external">&raquo;&nbsp;versões do Github</a> do projeto.
   Os arquivos são publicados para várias combinações de versão PHP, segurança de thread
   (TS ou NTS) e arquitetura (x86 ou x64). Determinar o arquivo correto para o
   ambiente PHP e extrair o arquivo <var class="filename">php_mongodb.dll</var>
   para o diretório de extensão (&quot;ext&quot; por padrão).
  </p>

  <p class="para">
   Adicione a seguinte linha ao arquivo <var class="filename">php.ini</var> para cada ambiente que
   precisará usar a extensão:
   <div class="example-contents">
<div class="inicode"><pre class="inicode">extension=php_mongodb.dll</pre>
</div>
   </div>

  </p>

  <p class="para">
   A falha ao selecionar o binário correto resultará em um erro ao tentar
   carregar a DLL de extensão em tempo de execução:
   <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">
   Certifique-se de que a DLL baixada corresponda às seguintes propriedades de tempo de execução
   do PHP:
   <ul class="simplelist">
    <li>Versão do PHP (<strong><code><a href="reserved.constants.php#constant.php-version">PHP_VERSION</a></code></strong>)</li>
    <li>Segurança de thread (<strong><code><a href="reserved.constants.php#constant.php-zts">PHP_ZTS</a></code></strong>)</li>
    <li>Arquitetura (<strong><code><a href="reserved.constants.php#constant.php-int-size">PHP_INT_SIZE</a></code></strong>)</li>
   </ul>
  </p>

  <p class="para">
   Além das constantes mencionadas acima, essas propriedades também podem ser
   inferidas de <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>. Se um sistema tiver vários runtimes
   de execução PHP instalados, verifique novamente se a saída <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>
   é para o ambiente correto.
  </p>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <strong>Dependências adicionais de DLL para usuários do Windows</strong><br />
   <p class="para">
    Para que esta extensão funcione, existem arquivos
<abbr title="Dynamic Link Library">DLL</abbr> que devem estar disponíveis no
<var class="envar">PATH</var> do sistema Windows. Para saber como fazer isso, veja a
<abbr title="Frequently Asked Questions">FAQ</abbr> intitulada &quot;<a href="faq.installation.php#faq.installation.addtopath" class="link">Como eu adiciono o meu diretório PHP ao PATH
do Windows</a>&quot;. Embora copiar arquivos DLL
da pasta do PHP para o diretório system do Windows também funcione
(porque o diretório system está, por padrão, no <var class="envar">PATH</var> do sistema),
isso não é recomendado.
<em>Esta extensão requer que os seguintes arquivos estejam no
<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">Construindo o driver MongoDB PHP a partir do código-fonte</h2>

  <p class="para">
   Para desenvolvedores e usuários interessados nas correções de bugs mais recentes, a extensão
   pode ser compilada a partir do código-fonte mais recente no
   <a href="https://github.com/mongodb/mongo-php-driver" class="link external">&raquo;&nbsp;Github</a>. Execute os seguintes
   comandos para clonar e construir o projeto:
   <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">
   Em sistemas com múltiplas versões de PHP instaladas (por exemplo, macOS padrão,
   Homebrew, <a href="https://www.apachefriends.org/" class="link external">&raquo;&nbsp;XAMPP</a>), cada versão do PHP
   terá seu próprio comando <a href="install.pecl.phpize.php" class="link">phpize</a>
   e arquivo <var class="filename">php.ini</var>. Além disso, cada ambiente PHP (por exemplo,
   CLI, web) pode usar um arquivo <var class="filename">php.ini</var> separado.
  </p>

  <p class="para">
   Por padrão, a extensão usará versões agrupadas 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> e
   <a href="https://github.com/mongodb/libmongocrypt" class="link external">&raquo;&nbsp;libmongocrypt</a> e
   tentar configurá-los automaticamente. Se essas bibliotecas já estiverem
   instaladas como bibliotecas de sistema, a extensão poderá utilizá-las
   especificando <code class="literal">--with-mongodb-system-libs=yes</code> como uma opção para
   <code class="literal">configure</code>.
  </p>

  <p class="para">
   Para obter uma lista completa de opções de <code class="literal">configure</code>, execute
   <strong class="command">configure --help</strong>.
  </p>

  <p class="para">
   Ao usar versões empacotadas de libmongoc e libmongocrypt, a extensão
   também tentará selecionar uma biblioteca SSL de acordo com a
   opção <code class="literal">--with-mongodb-ssl</code> <code class="literal">configure</code>.
   A partir da versão de extensão 1.17.0, o OpenSSL é sempre preferido por padrão.
   Anteriormente, o Secure Transport era o padrão no macOS e o OpenSSL era o
   padrão em todas as outras plataformas.
  </p>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    Se o processo de construção não conseguir encontrar uma biblioteca SSL, verifique se os
    pacotes de desenvolvimento (por exemplo, <code class="literal">libssl-dev</code>) e
    <a href="https://en.wikipedia.org/wiki/Pkg-config" class="link external">&raquo;&nbsp;pkg-config</a> estão ambos
    instalados.
   </p>

   <p class="para">
    Ao usar o Homebrew no macOS, é comum que um sistema tenha várias
    versões do OpenSSL instaladas. Para garantir que a versão desejada do OpenSSL
    seja selecionada, a variável de ambiente <code class="literal">PKG_CONFIG_PATH</code> pode
    ser usada para controlar o caminho de pesquisa para <code class="literal">pkg-config</code>.
   </p>
  </p></blockquote>

  <p class="para">
   A etapa final de compilação, <strong class="command">make install</strong>, reportará onde
   <var class="filename">mongodb.so</var> foi instalado, semelhante 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">
   Certifique-se de que a opção <a href="ini.core.php#ini.extension-dir" class="link">extension_dir</a>
   no <var class="filename">php.ini</var> aponta para o diretório onde <var class="filename">mongodb.so</var>
   foi instalado. A opção pode ser consultada executando:
   <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">
   Se os diretórios forem diferentes, altere
   <a href="ini.core.php#ini.extension-dir" class="link">extension_dir</a> no <var class="filename">php.ini</var> ou
   mova manualmente <var class="filename">mongodb.so</var> para o diretório correto.
  </p>

  <p class="para">
   Finalmente, adicione a seguinte linha ao arquivo <var class="filename">php.ini</var> para cada ambiente
   que precisará usar a extensão:
   <div class="example-contents">
<div class="inicode"><pre class="inicode">extension=mongodb.so</pre>
</div>
   </div>

  </p>
 </div>

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