Base de conhecimento

1000 perguntas frequentes, 500 tutoriais e vídeos explicativos. Aqui, você encontra apenas soluções!

Instalar uma alternativa PHP pura

Atualização 01/09/2026

Este guia explica como usar GnuPG / PGP com PHP em um Servidor Cloud Infomaniak, devido à descontinuação da extensão nativa (são preferidas alternativas "PHP puro" ou wrappers modernos).

 

Introdução

  • A extensão do sistema PHP_GnuPG não é mais mantida pela comunidade PHP e, portanto, não está mais disponível em ambientes recentes.
  • Duas alternativas principais em "PHP puro" (instaláveis via Composer) permitem continuar a assinar ou criptografar seus dados com segurança.

 

Opção 1: Crypt_GPG (Recomendado)

Esta biblioteca funciona como um wrapper: ela se comunica diretamente com o binário gpg instalado no seu Servidor Cloud. Esta é a solução mais eficiente e estável.

Para instalá-lo, conecte-se via SSH e execute este comando na raiz do seu projeto:

# Install the PEAR Crypt_GPG package via Composer
composer require pear/crypt_gpg

Exemplo de utilização para criptografar uma mensagem (abordagem orientada a objetos):

<?php
require_once 'vendor/autoload.php';

try {
    // Initialize the GPG object
    $gpg = new Crypt_GPG();

    // Set the recipient email (must match a public key already imported on the server)
    $gpg->addEncryptKey('contact@example.com');

    $message = "This is a secret message.";
    
    // Encrypt the data
    $enveloppe = $gpg->encrypt($message);
    
    echo $enveloppe;
} catch (Exception $e) {
    // Handle potential encryption errors
    echo "Error: " . $e->getMessage();
}

 

Opção 2: OpenPGP.php (Independente)

Esta biblioteca é totalmente escrita em PHP. A sua principal vantagem é que não depende do binário gpg do servidor, garantindo a total portabilidade do seu código entre diferentes ambientes.

# Install the OpenPGP.php library
composer require singpolyma/openpgp-php

Exemplo de estrutura básica:

<?php
require_once 'vendor/autoload.php';

// Use the library classes to handle OpenPGP packets 
// directly in PHP without system calls to the GPG binary.
// Example: $msg = OpenPGP_Message::parse(OpenPGP::unarmor($data));

Link para esta FAQ: https://faq.infomaniak.com/954


Esta seção de perguntas frequentes foi útil?