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++
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.
J'utilise le phpseclib/mcrypt_compat
shim :
composer require phpseclib/mcrypt_compat:*
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.