如何在CentOS 6.4上运行PHP 5.5.4 mcrypt?

时间:2013-09-26 14:35:18

标签: centos php mcrypt

我收到以下错误:

  

PHP警告:PHP启动:无法加载动态库   '/usr/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so' -   /lib64/libc.so.6:找不到版本`GLIBC_2.14'(需要   /usr/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so)

mcrypt是否需要glibc 2.14?

我们正在运行CentOS 6.4(CentOS的最新稳定版本),它带有glibc 2.12(无法真正升级glibc作为操作系统的核心部分,更改它可能会破坏很多东西)

如何在这些情况下让我的PHP 5.5.4运行mcsypt?

当前配置(phpinfo输出)为here

3 个答案:

答案 0 :(得分:3)

我也遇到了在我的VPS开发服务器上安装mcrypt的问题,所以我想我会发布我的解决方案,希望它可以帮助某人。我正在运行Centos OS 6.5并使用Webtatic EL yum存储库将PHP升级到5.5.13。 https://webtatic.com/packages/php55/

先嘘到你的服务器

ssh admin@domain.com

最初我试图做(这不起作用):

yum update
yum install php-mcrypt

当我看到php -v时,我意识到我的错误,并且意识到php-common是冲突的,因为上面的代码试图从5.3加载依赖。

然后我执行了以下正确的命令:

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum update
yum install php55w-mcrypt
service httpd restart

这对我来说非常合适。

我也在研究这个问题时读到,有些人确实需要通过添加以下行手动将扩展名添加到他们的.ini文件中,但我不必这样做。

extension=mcrypt.so

你可以通过查看phpinfo()找到你的php.ini文件的位置;并查看它正在加载哪种配置。对我来说,正在加载以下ini文件:

/etc/php.ini
/etc/php.d/mcrypt.ini
/var/www/vhosts/system/domain.com/etc/php.ini

如果安装成功,那么当您回显phpinfo();

时,您将看到扩展名

mcrypt in php info

答案 1 :(得分:2)

尝试使用yum安装php-mcrypt。这应该引入你需要运行它的任何其他库。

yum install php-mcrypt

答案 2 :(得分:0)

根据您的更新,您似乎正在尝试使用由更新的GLIBC库创建的另一个PHP源构建的MCrypt扩展。我能看到的唯一合适的解决方案如下:

首先需要确保在继续之前安装了libmcrypt,libmcrypt-devel和mcrypt。检查您的CentOS存储库。

  1. http://php.net
  2. 下载PHP源代码
  3. 解压缩下载的来源tar -zxf php-5.5.4.tar.gz
  4. cd进入源cd php-5.4.4
  5. 复制当前的./configure字符串。整件事!
  6. 添加对Mcrypt --with-mcrypt=/usr的支持并运行新的configure命令
  7. make&& make install
  8. 重启Apache和PHP-FPM
  9. 这将保持您当前的配置,就像CentOS已经构建它一样,但正如您所希望的那样,还有MCrypt的额外支持。完成此操作后,您需要在php.ini文件中启用MCrypt扩展,因为它将内置到PHP本身,并将自动为您加载。

    如有疑问,您还可以在此处阅读http://us1.php.net/manual/en/mcrypt.installation.php