执行“ php artisan key:generate”时出现错误“无法加载动态库'mcrypt'”

问题描述

我的环境:

  1. XAMPP版本7.2.8
  2. PHP 7.2.8(这是在安装XAMPP时一起安装的。)
  3. Apache 2.4.34(在安装XAMPP时将其安装在一起。)

我是Laravel的新手。我制作了Laravel项目文件夹,并执行了命令PHP artisan key:generate生成app_key。

但是我收到以下错误

PHP Warning:  PHP Startup: Unable to load dynamic library 'mcrypt' (tried: C:\xampp\PHP\ext\mcrypt,C:\xampp\PHP\ext\PHP_mcrypt.dll) in UnkNown on line 0

我检查了mcrypt是否已通过以下代码加载。

<?PHP
if(function_exists('mcrypt_encrypt')) {
    echo "mcrypt is loaded!";
} else {
    echo "mcrypt isn't loaded!";
}
?>

它回答了"mcrypt isn't loaded!"

因此,我按照this instruction进行了以下操作以添加mcrypt

我从this webpage下载了PHP-5.2.1-Win32。并复制 该PHP版本中的libmcrypt.dllPHP_mcrypt.dll到我的ext文件夹中。

enter image description here

然后我如下编辑了PHP.ini文件

enter image description here

为了检查PHP.ini的位置,我使用PHPinfo()

enter image description here

并重新启动Apache,并尝试检查上述程序是否加载了mcrypt。但是结果是“未加载mcrypt!”。

我还试图更改写入PHP.ini文件的方式,如下所示:

enter image description here

但结果是相同的:“未加载mcrypt!”。

我还尝试检查openssl是否启用了PHP -r "echo OPENSSL_VERSION_TEXT;"。但错误发生如下:

Warning: PHP Startup: Unable to load dynamic library 'mcrypt' (tried: C:\xampp\PHP\ext\mcrypt

所以,我注释掉了PHP.ini中的mcrypt扩展。 “ PHP -r“ echo OPENSSL_VERSION_TEXT;”工作正常,结果为“ OpenSSL 1.1.0h 2018年3月27日”。

解决方法

您可能已经安装了 7.2 非线程安全 (NTS) x64