首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mcrypt安装问题

mcrypt安装问题
EN

Stack Overflow用户
提问于 2011-01-26 20:21:51
回答 6查看 36.4K关注 0票数 14

我要求系统管理员在服务器上安装mcrypt,他们说一切正常。但当我运行我的简单脚本,我得到了这个。

警告: mcrypt_get_iv_size()函数. Module iv-size:模块初始化失败

这句话的意思是:

代码语言:javascript
复制
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,MCRYPT_MODE_ECB);

现在,根据下面的代码:

代码语言:javascript
复制
$algorithms = mcrypt_list_algorithms("/usr/local/bin/mcrypt");

foreach ($algorithms as $cipher) {
    echo "$cipher<br />\n";
} 

我得到:

警告: mcrypt_list_algorithms() Function.mcrypt-list-算法:在模块dir中找不到算法

当我运行这个:

代码语言:javascript
复制
$modes = mcrypt_list_modes("/usr/local/bin/mcrypt");

foreach ($modes as $mode) {
    echo "$mode <br />\n";
}

我得到:

警告: mcrypt_list_modes()函数.mcrypt_list_modes模式:在模块dir中找不到模式

但是,运行此命令--此命令

代码语言:javascript
复制
which mcrypt; mcrypt -v

生产:

代码语言:javascript
复制
/usr/local/bin/mcrypt
Mcrypt v.0.9.9 (x86_64-unknown-linux-gnu)
Linked against libmcrypt v.2.5.7
Copyright (C) 1998-2002 Nikos Mavroyanopoulos (nmav@gnutls.org)

mcrypt安装/配置是否正确?

更新:

我做了这个:

代码语言:javascript
复制
whereis libmcrypt

...and得到的结果是:

代码语言:javascript
复制
libmcrypt: /usr/local/lib/libmcrypt /usr/local/lib/libmcrypt.so /usr/local/lib/libmcrypt.la

我也改变了:

代码语言:javascript
复制
$modes = mcrypt_list_modes("/usr/local/bin/mcrypt");

为了..。

代码语言:javascript
复制
$modes = mcrypt_list_modes("/usr/local/lib/libmcrypt");
$algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

如建议的那样,但仍然得到错误:

警告: mcrypt_list_modes()函数.mcrypt_list_modes模式:在模块dir中找不到

然后,我进入了我的CPanel到/usr/local/lib/libmcrypt中的文件管理器。目录存在但里面没有文件..。

这是文件管理器的打印屏幕。

谢谢。

EN

回答 6

Stack Overflow用户

发布于 2013-11-26 05:06:24

试试这个来解决你的mcrypt问题:

代码语言:javascript
复制
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
sudo php5enmod mcrypt
sudo service apache2 restart

这是一个带有mcrypt.ini文件位置的错误。

我有同样的错误,我做了一个cp,而不是mv,但它解决了问题。

对于不工作的PHP,如果让phpmyadmin工作(即使存在mcrypt错误),则意味着PHP正在工作(因为phpmyadmin使用PHP)。但在你的例子中

代码语言:javascript
复制
<? echo $row['details']; ?>

<?更改为<?php,然后重试?

票数 35
EN

Stack Overflow用户

发布于 2014-10-15 02:12:49

在Ubuntu14.04上只需要执行三个步骤,如sudo:

代码语言:javascript
复制
apt-get install php5-mcrypt
php5enmod mcrypt
service apache2 restart
票数 5
EN

Stack Overflow用户

发布于 2011-01-26 21:22:26

mcrypt算法目录必须是包含算法的目录,而不是二进制。这意味着:

代码语言:javascript
复制
$modes = mcrypt_list_modes("/usr/local/bin/mcrypt");

应该是这样(假设mcrypt安装为/usr/local/lib/libmcrypt):

代码语言:javascript
复制
$modes = mcrypt_list_modes("/usr/local/lib/libmcrypt");

如果安装libmcrypt的目录不是上述目录,则必须更新php.ini设置。取自php.ini

代码语言:javascript
复制
[mcrypt]

; Directory where to load mcrypt algorithms
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.algorithms_dir=

; Directory where to load mcrypt modes
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.modes_dir=

如果您拥有shell访问权限,可以尝试以下命令来查找mcrypt安装的lib目录:

代码语言:javascript
复制
whereis libmcrypt

或者..。

代码语言:javascript
复制
whereis mcrypt

取决于你的设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4809611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档