如何让 MCrypt 和 PHP 在 CentOS 上协同工作

Posted

技术标签:

【中文标题】如何让 MCrypt 和 PHP 在 CentOS 上协同工作【英文标题】:Howto make MCrypt and PHP work together on CentOS 【发布时间】:2010-11-24 08:51:59 【问题描述】:

我已经在 CentOS 上安装了 mcrypt(通过 yum),但是当我尝试在 A) 中进行 dl() 调用时,我在 B) 中收到了消息。

A) dl( mcrypt.so ) 或 die('The Mcrypt 模块无法加载 ['. $前缀。 'mcrypt。 . php_SHLIB_SUFFIX .']'); B) 无法加载 Mcrypt 模块 [ mcrypt.so ]​​i>

现在,我知道 yum 已经安装了 mcrypt,但我不知道它放在什么位置。我能找出来吗?更重要的是,我怎样才能让最新安装的 mcrypt 与我的 PHP 系统一起工作。许多线程建议您重新编译 PHP(例如:http://forums.theplanet.com/index.php?showtopic=26527),但我不知道如何在 CentOS 中执行此操作。我也玩过我的图书馆路径无济于事。任何帮助将不胜感激。

设置

CentOS: Linux localhost.localdomain 2.6.18-128.1.6.el5 #1 SMP Wed Apr 1 09:10:25 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux mcrypt: mcrypt-2.6.8-1.el5.x86_64 PHP: php-5.1.6-23.2.el5_3.x86_64

谢谢 蒂姆

【问题讨论】:

不要使用 dl 函数,它在 5.3.0 中已弃用。这些问题最好在 serverfault.com 上提问。 很好,非常感谢。没有意识到 *** 已经扩展了这么多。 你可能应该要求一个使用centos构建系统的方法。通过这种方式,您获得的包的安装(和维护)方式与存储库中其他包的安装(和维护)方式相同,包括依赖项。如果您使用“./configure,make,make install”,系统的下一次更新可能会在您不知情的情况下删除您的更改或使其无法使用,直到为时已晚。 【参考方案1】:

好吧,我假设有一些特殊原因您不能使用 CentOS 分销商提供的软件包(例如,请参阅 here。)我不知道 CentOS,但我可以给你最有可能成功构建和安装 PHP 的 mcrypt 模块的步骤的粗略路线图。

    获取与您的发行版的编译版本相匹配的 PHP 源代码的副本(CentOS 可能为此提供了一个软件包)

    安装 PHP 开发包(可能类似于“php5-dev”)以及为您的发行版构建 PHP 的所有依赖项(在基于 Debian 的系统上,这是通过 apt-get build-dep php5 完成的,不确定CentOS 的正确咒语)。

    从 PHP 源代码的***目录,cd 到 ext/mcrypt。在这个目录中,运行phpize(它应该与前面提到的与php5-dev 等效的CentOS 一起安装)。这将在ext/mcrypt 中生成一个配置脚本,允许您将 mcrypt 构建为共享模块。

    从同一个ext/mcrypt 目录,发出./configure --help 并查看可用的选项。从现在开始,它就和任何其他 Unix 应用程序一样:configuremakemake install

【讨论】:

【参考方案2】:

以 root 或超级用户身份登录服务器并添加以下命令


yum install php53-devel
yum install libmcrypt-devel
yum install gcc
wget http://museum.php.net/php5/php-5.3.3.tar.bz2
tar xvjf php-5.3.3.tar.bz2
cd php-5.3.3/ext/mcrypt/
phpize
aclocal
./configure
make
make install
echo "extension=mcrypt.so" > /etc/php.d/mcrypt.ini
service httpd restart

参考Install PHP 5.3 mcrypt extension on Centos 5.6

【讨论】:

我在使用 mcrypt 时遇到了问题,因为未安装 libmcrypt-devel。谢谢。

以上是关于如何让 MCrypt 和 PHP 在 CentOS 上协同工作的主要内容,如果未能解决你的问题,请参考以下文章

在 CentOS 6 上安装 php-mcrypt

如何让 Ruby AES-256-CBC 和 PHP MCRYPT_RIJNDAEL_128 一起玩得很好

在 CentOS 上安装时的 php-mcrypt 依赖问题(最新服务器版本)

Php 5.3 mcrypt 无法在 CentOS 6.3 32 位上运行

第二部分:如何让 Ruby AES-256-CBC 和 PHP MCRYPT_RIJNDAEL_128 一起玩得很好

在升级到 PHP 5.4.33 的 Centos VPS 上安装 mcrypt 扩展时出错