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