我刚遇到同样的问题,想尝试需要 mcrypt 的 Laravel。
简而言之,我一直在使用 Mountain Lion 附带的内置 PHP 5.3.26,然后几个月后,在我更加熟悉 homebrew 之后,我用它安装了更新版本的 PHP。
brew update
brew upgrade
brew install php53 php53-mcrypt ...
我放了
<?php phpinfo();
进入 ~/Sites/info.php 然后去 localhost/info.php 查看我的 Apache+PHP 配置。在页面上,我在 Loaded Configuration File 下看到了这个:
/private/etc/php.ini
然后在终端中,我运行了这个:
php -i | grep ini
显示了这个输出
Loaded Configuration File => /usr/local/etc/php/5.3/php.ini
此外还加载了更多配置...
Additional .ini files parsed => /usr/local/etc/php/5.3/conf.d/ext-mcrypt.ini,
/usr/local/etc/php/5.3/conf.d/ext-xdebug.ini,
/usr/local/etc/php/5.3/conf.d/redis.ini
我遇到的问题是 mcrypt 在 php cli 版本中加载,但我的 Laravel 测试页面无法加载,给出未找到 mcrypt 扩展的错误 [1]
我使用 diffmerge 工具 [2] 将 /private/etc/ 中的原始 Apple php.ini 与 /usr/local/etc/php/5.3/ 中安装的一个自制软件进行比较,发现存在显着差异!所以在尝试之前请仔细检查:
我接下来要做的是备份
sudo mv /private/etc/php.ini /private/etc/php.ini.apple
然后将 php.ini 符号链接到自制软件
ln -s /usr/local/etc/php/5.3/php.ini /private/etc/php.ini
终于重装Apache后
sudo apachectl restart
并加载了 mcrypt,现在他们使用的是单个配置。
如果您的本地主机上有另一个应用程序与新配置中断,只需删除符号链接,并将其更改为 .apple 版本并重新启动 Apache 即可恢复。
- Laravel requires the Mcrypt PHP extension
- https://sourcegear.com/diffmerge/