问题
I have PHP 5.2.14 installed on a Windows box (installed via .msi) using Apache 2.2.16. The install came with both ext/php_mcrypt.dll and libmcrypt.dll but when I uncommented extension=php_mcrypt.dll in php.ini and restarted Apache it doesn't enable. phpinfo() shows nothing for it. What am I missing?
UPDATE:
I looked at my error logs and it spit this out to me:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP5\ext\php_mcrypt.dll' - The specified module could not be found.\r\n in Unknown on line 0
I read up a bit about this and I don't have any php dll's stored in the windows32/ folder, so I'm confused.
回答1:
The other answers has the necessary steps about check the \ext\php_mcrypt.dll
exists and enable the extension in php.ini
. Beside this, you need to copy {Your-PHP-Root}\libmcrypt.dll
to {Your-Apache-Root}\bin
, then restart apache, the problem should be solved.
回答2:
You need to install it first, or maybe add the route to the library to your windows PATH enviroment variable, since you are working on windows. Try: http://www.php.net/manual/en/mcrypt.installation.php
(There you can read "If you wish to install mcrypt on Windows, you should also place libmcrypt.dll in the PATH of your system.")
How to set or edit an enviroment variable: http://www.support.tabs3.com/main/R10463.htm
回答3:
I figured it out through a combination of tutorials:
- Added libmcrypt.dll to the System32 folder
- Uncommnted the include_path var in php.ini and added the path to ext
- Restarted Apache
Thankfully, no system reboot was required. Whether one or both of the above was necessary, it doesn't matter now that mcrypt is functioning. Thanks, everyone.
来源:https://stackoverflow.com/questions/8271408/enable-mcrypt-on-php-install