web-dev-qa-db-fra.com

Où obtenir php_mcrypt.dll pour PHP 7,2?

J'ai besoin de l'extension Mcrypt pour que mon CMS fonctionne. Ce n'est pas distribué avec PHP - Windows, et je ne trouve aucune compilation. J'ai téléchargé des sources et compilé php avec la clé --enable-mcrypt = shared, mais cela indique une erreur:

Enabling extension ext\standard
Checking for mcrypt.h ...  <not found>
Checking for mcrypt.h ...  <not found>
WARNING: mcrypt not enabled; libraries and headers not found

Voici config.w32:

// $Id$
// vim:ft=javascript

ARG_WITH("mcrypt", "mcrypt support", "no");

if (PHP_MCRYPT != "no") {

    if (CHECK_HEADER_ADD_INCLUDE('mcrypt.h', 'CFLAGS_MCRYPT') &&
            CHECK_LIB('libmcrypt_a.lib;libmcrypt.lib', 'mcrypt') &&
            CHECK_LIB('Advapi32.lib', 'mcrypt')
            ) {

        EXTENSION('mcrypt', 'mcrypt.c mcrypt_filter.c', false, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
        AC_DEFINE('HAVE_LIBMCRYPT', 1);
        AC_DEFINE('HAVE_LIBMCRYPT24', 1);
    } else {
        WARNING("mcrypt not enabled; libraries and headers not found");
    }
}

Il cherche mcrypt.h, mais dans quel dossier? Et ce n'est pas dans le fichier de package mcrypt téléchargé à partir de PECL. Malheureusement, je ne suis pas familier avec la compilation C++

5
Audiophile

http://php.net/manual/en/migration71.deprecated.php

L'extension mcrypt est un abandonware depuis près d'une décennie et son utilisation était également relativement complexe. Il est donc déconseillé en faveur d'OpenSSL, où il sera supprimé du noyau et dans PECL dans PHP 7.2.

6
ceejayoz

J'utilise le phpseclib/mcrypt_compatshim : composer require phpseclib/mcrypt_compat:*

3
Mage2.PRO

Mage2.PRO, votre suggestion a fonctionné sur ma machine Windows 7 avec xampp et PHP 7.2.7. J'ai ajouté le dossier d'extension à mon dossier xampp php/extras/puis j'ai lancé la commande composer. J'ai reçu un avertissement concernant la présence d'OpenSL, mais je n'ai jusqu'à présent rencontré aucun problème et je ne reçois plus d'erreurs civicrm mcrypt.

0
tish