【问题标题】:The error "Unable to load dynamic library 'mcrypt'" when executing "php artisan key:generate"执行“php artisan key:generate”时出现错误“无法加载动态库'mcrypt'”
【发布时间】:2021-01-09 04:33:51
【问题描述】:

我的环境:

  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。并复制 libmcrypt.dllphp_mcrypt.dll 在那个 php 版本到我的 ext 文件夹。

我编辑了 php.ini 文件如下。

为了检查 php.ini 的位置,我使用phpinfo()

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

我也尝试改变写入php.ini文件的方式如下:

但结果是一样的:“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 27 Mar 2018"。

【问题讨论】:

  • 你能检查一下这实际上是使用的 php.ini 吗?
  • @GabrielA.LópezLópez 用于检查 php.ini 的位置,我使用 phpinfo() 并引用了 Loaded Configuration File 部分。
  • 根据php.net/manual/en/install.pecl.windows.php尝试使用extension=php_mcrypt.dll
  • @GabrielA.LópezLópez 我按照你的建议改变了写作方式。但仍然没有加载 mcrypt。
  • 对不起,我帮不了你。步骤是取消注释或写入扩展名并重新启动 Apache。要检查的另一件事是扩展是否存储在 php.ini 定义的位置。检查这个,但在 xampp 中不是一个常见问题

标签: php laravel xampp mcrypt


【解决方案1】:

您可能已经安装了 7.2 Non Thread Safe (NTS) x64

【讨论】:

    猜你喜欢
    • 2023-01-16
    • 2015-08-01
    • 2015-04-05
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 2014-11-29
    • 2018-09-08
    • 2020-05-29
    相关资源
    最近更新 更多