PHP mcrypt 未正确编译

Posted

技术标签:

【中文标题】PHP mcrypt 未正确编译【英文标题】:PHP mcrypt not compiled properly 【发布时间】:2013-08-16 21:11:15 【问题描述】:

我已经尝试了所有方法,但无法修复此错误。我通过下载安装php然后运行:

brew install php55-mcrypt

我最初使用 PHP 5.3 安装它,然后 Laravel 抱怨它必须大于 5.4。所以一切都搞砸了。

我使用的是 MAC 10.7。有人可以帮我吗?

php -v

PHP Warning:  PHP Startup: mcrypt: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20121212
These options need to match
 in Unknown on line 0
PHP 5.5.1 (cli) (built: Aug 14 2013 10:31:02) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies

【问题讨论】:

这并不能解决您的直接问题,但可以考虑使用 Vagrant 或其他基于 VM 的解决方案,这样您就不必在 Macintosh 上处理此类问题。这是非常不标准的 Posix-ish 设置会导致各种麻烦:D net.tutsplus.com/tutorials/php/vagrant-what-why-and-how 没人能回答吗? 【参考方案1】:

brew reinstall mcrypt --build-from-source php56-mcrypt --build-from-source

从源代码构建是一个选项,它将强制 brew 从源代码编译而不是使用瓶子。

【讨论】:

错误:没有名称为“php56-mcrypt”的可用公式【参考方案2】:

由于您之前安装了 PHP (5.3),而现在您刚刚安装了较新的版本 (5.5.1),可能新的 PHP 安装指向了一些旧位置。

查找您正在使用的任何php.ini,并验证extension_dir 指令。

最后的建议是重新安装 PHP 5.5.1。

【讨论】:

感谢您的建议.. 但是我已经更新了 php.ini 中的 extension_dir 条目.. 但没有更改任何内容.. 仍然出现错误.. 我也重新安装了 PHP 5.5 但没有进展.. :( 奇怪...好像帮不上忙。【参考方案3】:

警告是因为 php-mcrypt 模块版本与服务器中的 php 版本不匹配。我对 brew 不是很熟悉,因为我是 Macports 用户,但是根据您的 unix ditro,您可以执行以下操作:

=======

yum list installed | grep php55

=======

Sample output:
=======
php55-gd.x86_64                        5.2.14-2.el5.art                   installed
php55-imap.x86_64                      5.2.14-2.el5.art                  installed
php55-mbstring.x86_64                  5.2.14-2.el5.art                installed
**php55-mcrypt.x86_64                    5.1.6-15.el5.centos.1        installed**
php55-mysql.x86_64                     5.2.14-2.el5.art                  installed
=======

我们可以看到与早期版本的 PHP 相关的 php-mcrypt 模块。

如何修复错误?

更新 php-mcrypt 模块以修复错误。

======

yum update php-mcrypt

======

希望对你有帮助

【讨论】:

他使用的是 MAC OS X 而不是 RHEL/Fedora,所以使用 yum 真的很有帮助 哎呀,显然应该不会。

以上是关于PHP mcrypt 未正确编译的主要内容,如果未能解决你的问题,请参考以下文章

PHP编译安装报错: mcrypt.h not found. Please reinstall libmcrypt.

PHP编译安装报错:configure: error: mcrypt.h not found. Please reinstall libmcrypt

解决php编译报错configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解决php编译报错configure: error: mcrypt.h not found. Please reinstall libmcrypt.

缺少 mcrypt 扩展。请检查 PHP 配置。

我要安装php的mcrypt扩展