我收到以下错误:
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。
答案 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();
时,您将看到扩展名
答案 1 :(得分:2)
尝试使用yum安装php-mcrypt。这应该引入你需要运行它的任何其他库。
yum install php-mcrypt
答案 2 :(得分:0)
根据您的更新,您似乎正在尝试使用由更新的GLIBC库创建的另一个PHP源构建的MCrypt扩展。我能看到的唯一合适的解决方案如下:
首先需要确保在继续之前安装了libmcrypt,libmcrypt-devel和mcrypt。检查您的CentOS存储库。
tar -zxf php-5.5.4.tar.gz
cd php-5.4.4
./configure
字符串。整件事!--with-mcrypt=/usr
的支持并运行新的configure命令这将保持您当前的配置,就像CentOS已经构建它一样,但正如您所希望的那样,还有MCrypt的额外支持。完成此操作后,您不需要在php.ini文件中启用MCrypt扩展,因为它将内置到PHP本身,并将自动为您加载。
如有疑问,您还可以在此处阅读http://us1.php.net/manual/en/mcrypt.installation.php