我已经将我的 php 更新到版本 5.4.13 等,并且在终端中我的 php 版本显示此信息
PHP 5.4.12 (cli) (built: Mar 16 2013 21:46:23)
但是运行 composer install io 会出现以下错误。
The requested PHP extension ext-mcrypt * is missing from your system
无论如何,我尝试了几种方法来让它工作,但没有任何效果:
我使用了以下方法:解决方案一和解决方案二,它们都使用了类似的方法,但我仍然遇到错误。
然后我做了一个 php 信息测试,结果显示版本是5.3.15然后mycrypt 表示已启用 mcrypt 支持
所以我的服务器使用这个 php 而我的终端使用另一个 php 就像这样
任何想法如何解决这一问题?
我正在使用带有 Mountain Lion Sever(最新)的 MAC Mountain Lion、xcode 和所有操作都是最新的,并且我已经重新启动了服务器。
答案1
在 Linux(Ubuntu 14.04) 中遇到了同样的错误
检查 ini 是否存在
/etc/php5/mods-available/mcrypt.ini
如果是,请检查您是否有指向 ini 的符号链接。例如在目录中/etc/php5/cli/conf.d
05-mcrypt.ini -> ../../mods-available/mcrypt.ini
如果没有符号链接,请创建它。安装php5-mcrypt
扩展后,我没有符号链接,只有 ini 文件。这就是为什么要手动创建符号链接。
您可以使用sudo php5enmod mcrypt启用该模块。它将为您创建符号链接。
答案2
请尝试以下解决方案:
sudo apt-get install php5-mcrypt
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart
祝你好运,
—尤利安
答案3
我遇到了同样的问题 - mcrypt 显示已安装 CLI,但未通过命令行安装。为了修复,我运行了
#php -i
找到命令行版本的 php.ini 文件的位置,然后添加
extension=mcrypt.so
之后,运行#php -m
将显示为命令行版本安装了哪些模块,并且 mcrypt 应该在那里。如果没有,您的“解决方案 1”和“解决方案 2”选项应该可以帮助您构建模块 - 然后只需确保模块已安装(或已复制)到您的 php 安装的模块(扩展)目录(类似于/usr/lib/php/extensions/no-debug-non-zts-20100525/
或检查extensions_dir
php.ini 中的值指向的位置)。
答案4
好吧,我只是回到基础部分,卸载了 Mac Server,然后返回到 MAMP,这执行了所有最新的更新和安装,因为我的系统与两个单独的安装相冲突等