如何链接 mcrypt?

Posted

技术标签:

【中文标题】如何链接 mcrypt?【英文标题】:How do I link mcrypt? 【发布时间】:2013-04-05 11:13:49 【问题描述】:

我正在尝试安装 mcrypt 以在我的本地机器开发环境中使用。我需要这个来安装 Magento。

我用这个回答install mcrypt,但得到以下错误:

$ brew link mcrypt
Linking /usr/local/Cellar/mcrypt/2.5.8... Warning: Could not link mcrypt. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/mcrypt/2.5.8/include/mutils/mcrypt.h
Target /usr/local/include/mutils/mcrypt.h already exists. You may need to delete it.
To force the link and delete this file, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name

按照不允许的建议尝试覆盖链接。

$ brew link --overwrite mcrypt
Linking /usr/local/Cellar/mcrypt/2.5.8... Warning: Could not link mcrypt. Unlinking...

Error: Permission denied - /usr/local/include/mutils/mcrypt.h

在此命令前加上“sudo”并不能解决此问题,因为这也是不允许的。

运行 php -m 不会将 mcrypt 显示为已安装的模块,并且还会引发以下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20100525/mcrypt.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20100525/mcrypt.so, 9): image not found in Unknown on line 0 

这一切似乎都与我无法链接这个事实有关,但我似乎无法解决这个问题。有没有人遇到过这个?感谢您提供的任何帮助。

【问题讨论】:

您使用的是哪些 linux 发行版,您是否尝试以root 用户身份安装? @R.S — brew 命令表明他正在使用homebrew,这表明他正在使用 OS X。 是的,我使用的是 OS X 山狮。抱歉,我没有从一开始就提到这一点。 【参考方案1】:

Thomas,从我上面看到的情况来看,您似乎正在尝试使用 Homebrew 将 mcrypt 软件包安装到您的系统,但 mcrypt 已被另一个软件包安装管理系统(或者可能在您的 OS X 版本中默认提供——我没有跟上这些东西)

由于您的 *nix 系统上已经安装了 mcrypt,您需要为 mycrypt 安装 PHP 扩展,或者安装支持 mcrypt 的 PHP 版本盒子外面。

我通常的做法是使用 hp-osx.liip.ch 包(这似乎是 Marc Liyanage 的旧 entropy.ch 包的继承者)。这会将 PHP 的独立版本安装为二进制文件,并且应该具有运行 Magento 所需的库。

【讨论】:

我的印象是brew install mcrypt php53-mcrypt 安装了 php 扩展 - 你知道这是否正确吗?如果这是正确的,那么我已经安装了扩展程序并且只需要链接,但一直无法这样做。 @thomas 我更像是ports 人,这些东西是无穷无尽的排列级联,但希望这会有所帮助:命令brew install mcrypt 安装mycrypt。命令brew install php53-mcrypt 安装带有mycrypt 扩展的PHP 5.3。命令brew install mcrypt php53-mcrypt 安装mcrypt,然后安装带有mcrypt 扩展的PHP 5.3。 Homebrew 不会创建到 mcrypt 的符号链接,因为 /usr/local 中已经有一个 mcrypt 来自其他东西。让自制软件把它吹走可能是个坏主意。听起来你只需要带有 mcrypt 的 PHP。 @Thomas 您收到 PHP 错误,因为它无法加载扩展程序 :) 我遇到了同样的问题。如果您运行定位命令。例如。找到 mcrypt.so 它将显示它的位置。然后假设您正在使用股票 PHP 编辑 /etc/php.ini 找到 mcrypt 行并替换路径。在我的 Mac 上失败了,我使用真正的 LAMP 堆栈运行 vagrant 以进行 magento 开发,并且效果更好。【参考方案2】:

我实际上只是第二次遇到这个问题。不记得我第一次是如何解决的。这次对我有用的是我实际上删除了 mutils 下的 mcrypt.h 文件。然后当我运行brew link --overwrite mcrypt 时,它成功链接。然后我跑了brew install php53-mcrypt,这似乎成功了。同时重启服务器。

如果这不适用于所有人但对我有用,我不会感到惊讶。

【讨论】:

以上是关于如何链接 mcrypt?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 xampp for windows 中安装 mcrypt php 7.2.3 扩展?

PHP:Mcrypt - 哪种模式?

安装 php7.2-mcrypt 的问题

Ubuntu Server 下安装 Mcrypt PPHP Extension

PHP 加密扩展 mcrypt 的基本使用

安装php7.2-mcrypt的问题