在 Mac OS 上为 nginx 启用 mcrypt

在 Mac OS 上为 nginx 启用 mcrypt

我正在尝试运行 Laravel 的存储库但出现此错误:

Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128'

我几乎搜索了所有链接,但还是没能解决。所以我意识到我需要安装 mcrypt 扩展。

所以我尝试的是:

  1. brew intsall php71-mcrypt
  2. brew install mcrypt
  3. extenstion=mcrypt.so我也尝试过在 php.ini 中添加
  4. 我尝试重启 nginx,但没有成功(nginx -s stop, nginx

brew search mcyrpt表明我已经安装了它们

php -i | grep mcrypt显示:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php71/7.1.4_16/lib/php/extensions/no-debug-non-zts-20160303/mailparse.so' - dlopen(/usr/local/Cellar/php71/7.1.4_16/lib/php/extensions/no-debug-non-zts-20160303/mailparse.so, 9): image not found in Unknown on line 0 Additional .ini files parsed => /usr/local/etc/php/7.1/conf.d/ext-mcrypt.ini Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.* mcrypt mcrypt support => enabled mcrypt_filter support => enabled mcrypt.algorithms_dir => no value => no value mcrypt.modes_dir => no value => no value

phpinfo()虽然仅显示:

Additional .ini files parsed: /usr/local/etc/php/7.1/conf.d/ext-mcrypt.ini

我还记得尝试安装 autoconf 和一些其他东西

我猜 mcrypt 适用于 php-cli,但不适用于网页版

我的php版本是7.1,nginx 1.12.0,mac os El Captain

答案1

可能是 php-fpm(用于在 nginx 中加载 php 的模块)使用了不同的 php.ini 文件,您必须在那里启用 mcrypt。

要查找哪个 php.ini 文件使用 nginx,请使用以下命令创建 test.php 文件:

<?php

phpinfo();

php.ini运行它并在响应中搜索。您应该找到该文件的位置。

答案2

我认为你用 brew 重启了 nginx,但没有效果。你需要用

sudo nginx -s 重新加载

或者您可以重启电脑并检查。希望可以帮到您。

相关内容