无法让 mcrypt 在 OS X High Sierra 和 PHP 7.1 上运行



我需要使用使用mcrypt的Wordpress第三方插件。 mcrypt在我的环境中默认不可用(OSX High Sierra和PHP 7.1((我知道它已被弃用...(,所以我用PECL安装了它。已安装的 mcrypt.so 文件是在以下位置创建的:

/usr/lib/php/extensions/no-debug-non-zts-20160303/

我已将以下内容添加到我的php.ini:

extension=/usr/lib/php/extensions/no-debug-non-zts-20160303/mcrypt.so

在那之后

php -i | grep mcrypt

返回

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

php -m | grep mcrypt

返回

mcrypt

对我来说,这意味着php现在可以使用mcrypt。

我重新启动Apache,但仍然收到致命错误:

**Fatal error**: Uncaught Error: Call to undefined function mcrypt_module_open() in /User.....

并显示一个页面

<?php phpinfo(); ?>

在模块中不显示 mcrypt。但它是正确的 php.ini使用的。所以对我来说,这意味着 php 在从命令行启动时可以使用 mcrypt,但在从 Apache 使用时则不能。

我也试图取消注释该行

LoadModule php7_module libexec/apache2/libphp7.so

在 httpd.conf 中,并重新启动 Apache ,但是 结果是一样的。

有什么想法吗?

事实证明,这是Apache+PHP的问题。我按照 https://getgrav.org/blog/macos-sierra-apache-upgrade-homebrew 这里的建议重新安装了Apache和PHP(此后已针对新版本OSX 10.14 Mojave进行了更新(和此处:https://getgrav.org/blog/macos-mojave-apache-multiple-php-versions

我从以前的网站:

从旧酿造配方迁移到新 pecl 的最干净方法 包方法是删除所有与PHP相关的内容并重新安装 使用新说明。

最新更新