Я попросил системных администраторов установить mcrypt на сервере, и они сказали, что все в порядке. Но когда я запускаю свой простой скрипт, я получаю вот это.
Предупреждение: mcrypt_get_iv_size () [function.mcrypt-get-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 -algorithms]: в модуле dir
алгоритмов не найдено. Когда я запускаю это:
$modes = mcrypt_list_modes("/usr/local/bin/mcrypt");
foreach ($modes as $mode) {
echo "$mode <br />\n";
}
, я получаю:
Предупреждение: mcrypt_list_modes () [function.mcrypt-list-Mode]: в модуле 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
... и получил результат:
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 () [function.mcrypt-list-Mode]: В каталоге модуля в
нет режимов. Затем я зашел в файловый менеджер в CPanel по адресу / usr / local / lib / libmcrypt
. Каталог существует, но в нем нет файлов ...
Вот экран печати файлового менеджера.
Спасибо.