Включить Mcrypt при установке PHP

У меня есть PHP 5.2.14, установленный в окне Windows (установленный через .msi) с использованием Apache 2.2.16. Установка выполнялась как с ext/php_mcrypt.dll, так и с libmcrypt.dll, но когда я раскомментировал extension=php_mcrypt.dll в php.ini и перезапустил Apache, он не включился. phpinfo() ничего не показывает для этого. Что мне не хватает?

ОБНОВИТЬ:

Я просмотрел свои журналы ошибок, и они выдали мне следующее:
Предупреждение PHP: Запуск PHP: невозможно загрузить динамическую библиотеку 'C:\PHP5\ext\php_mcrypt.dll' - указанный модуль не может быть найдено.\r\n в неизвестном в строке 0

Я немного прочитал об этом, и у меня нет php dll, хранящихся в папке windows32/, поэтому я запутался.


person justacoder    schedule 25.11.2011    source источник
comment
Вы уверены, что редактируете правильный файл php.ini? Проверьте свой phpInfo(), чтобы увидеть, какой файл ini загружается.   -  person Cyclonecode    schedule 25.11.2011
comment
Я также рекомендую единый сервер с последними версиями php и mysql =) вы можете легко переключаться между ini-файлом производства и разработки.   -  person Daniel Ruf    schedule 25.11.2011
comment
Если бы установка не производилась на рабочей машине и могла позволить себе простои, я бы просто установил последнюю версию.   -  person justacoder    schedule 25.11.2011
comment
Кристер, система показывает C:\PHP\php.ini, это файл, который я редактировал.   -  person justacoder    schedule 25.11.2011
comment
C:\PHP5\ext где находится php_mcrypt.dll? Этот путь также может быть чувствительным к регистру в Windows. Если этот путь неверен, попробуйте изменить extension_dir в php.ini или попробуйте extension=C:/path/to/php/ext/php_mcrypt.dll   -  person drew010    schedule 26.11.2011
comment
@Angry Spartan Где ты смог решить проблему? Как ты сделал это?   -  person NotGaeL    schedule 28.11.2011
comment
Я попытался указать полный путь для расширения mcrypt, но Apache не перезапустился. Я получаю сообщение об ошибке [warn] pid file C:/Program Files/Apache Software Foundation/Apache2.2/logs/httpd.pid перезаписан -- Нечистое завершение предыдущего запуска Apache?   -  person justacoder    schedule 29.11.2011


Ответы (3)


В других ответах есть необходимые шаги для проверки существования \ext\php_mcrypt.dll и включения расширения в php.ini. Кроме того, вам нужно скопировать {Your-PHP-Root}\libmcrypt.dll в {Your-Apache-Root}\bin, затем перезапустить apache, проблема должна быть решена.

person nemozhp    schedule 07.09.2012

Сначала вам нужно установить его или, возможно, добавить маршрут к библиотеке в переменную среды Windows PATH, поскольку вы работаете с окнами. Попробуйте: http://www.php.net/manual/en/mcrypt.installation.php

(Там вы можете прочитать «Если вы хотите установить mcrypt в Windows, вы также должны поместить libmcrypt.dll в PATH вашей системы».)

Как установить или изменить переменную среды: http://www.support.tabs3.com/main/R10463.htm

person NotGaeL    schedule 25.11.2011
comment
Я добавил путь к Windows безрезультатно, но если требуется перезагрузка, мне нужно запланировать время простоя, чтобы это произошло. - person justacoder; 01.12.2011

Я понял это с помощью комбинации руководств:

  1. Добавлен libmcrypt.dll в папку System32.
  2. Раскомментировал переменную include_path в php.ini и добавил путь к ext
  3. Перезапустил Апач

К счастью, перезагрузка системы не потребовалась. Было ли необходимо одно или оба из вышеперечисленных, теперь не имеет значения, что mcrypt работает. Всем спасибо.

person justacoder    schedule 01.12.2011