如何链接 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 扩展?