我正在尝试运行 Laravel 的存储库但出现此错误:
Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128'
我几乎搜索了所有链接,但还是没能解决。所以我意识到我需要安装 mcrypt 扩展。
所以我尝试的是:
brew intsall php71-mcrypt
brew install mcrypt
extenstion=mcrypt.so
我也尝试过在 php.ini 中添加- 我尝试重启 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 重新加载
或者您可以重启电脑并检查。希望可以帮到您。