我要求系统管理员在服务器上安装mcrypt,他们说一切正常。但当我运行我的简单脚本,我得到了这个。
警告: mcrypt_get_iv_size()函数. Module iv-size:模块初始化失败
这句话的意思是:
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,MCRYPT_MODE_ECB);现在,根据下面的代码:
$algorithms = mcrypt_list_algorithms("/usr/local/bin/mcrypt");
foreach ($algorithms as $cipher) {
echo "$cipher<br />\n";
} 我得到:
警告: mcrypt_list_algorithms() Function.mcrypt-list-算法:在模块dir中找不到算法
当我运行这个:
$modes = mcrypt_list_modes("/usr/local/bin/mcrypt");
foreach ($modes as $mode) {
echo "$mode <br />\n";
}我得到:
警告: mcrypt_list_modes()函数.mcrypt_list_modes模式:在模块dir中找不到模式
但是,运行此命令--此命令
which mcrypt; mcrypt -v生产:
/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安装/配置是否正确?
更新:
我做了这个:
whereis libmcrypt...and得到的结果是:
libmcrypt: /usr/local/lib/libmcrypt /usr/local/lib/libmcrypt.so /usr/local/lib/libmcrypt.la我也改变了:
$modes = mcrypt_list_modes("/usr/local/bin/mcrypt");为了..。
$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中的文件管理器。目录存在但里面没有文件..。
这是文件管理器的打印屏幕。
谢谢。
发布于 2013-11-26 05:06:24
试试这个来解决你的mcrypt问题:
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)。但在你的例子中
<? echo $row['details']; ?>将<?更改为<?php,然后重试?
发布于 2014-10-15 02:12:49
在Ubuntu14.04上只需要执行三个步骤,如sudo:
apt-get install php5-mcrypt
php5enmod mcrypt
service apache2 restart发布于 2011-01-26 21:22:26
mcrypt算法目录必须是包含算法的目录,而不是二进制。这意味着:
$modes = mcrypt_list_modes("/usr/local/bin/mcrypt");应该是这样(假设mcrypt安装为/usr/local/lib/libmcrypt):
$modes = mcrypt_list_modes("/usr/local/lib/libmcrypt");如果安装libmcrypt的目录不是上述目录,则必须更新php.ini设置。取自php.ini
[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目录:
whereis libmcrypt或者..。
whereis mcrypt取决于你的设置。
https://stackoverflow.com/questions/4809611
复制相似问题