解决:the requested PHP extension mcrypt is missing from your system

一、问题

laravel/framework v5.0.35 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system

这个大致意思是缺少 PHP 扩展 —— mcrypt,一起来解决一下这个问题,往下看…

二、解决步骤

1、PHP 是否有依赖该扩展

php -m
该命令可以列出本机所有 PHP 扩展,如果未显示 mcrypt ,则未在本机安装或未加入到 php.ini。

2、验证是否已存在于本机

查看 PHP 扩展文件所在目录:
php -i | grep extension

执行命令后输出:
extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20131226 => /usr/lib/php/extensions/no-debug-non-zts-20131226

进入该目录:
cd /usr/lib/php/extensions/no-debug-non-zts-20131226

列出依赖文件:
ls
如果有指定扩展文件名的话,证明本机已经安装过该扩展;若没有的话需要重新安装一次。

3、安装依赖

如果未在本机安装的话你需要安装一下,如果已经存在于本机的话请略过这一步。

brew install php55-mcrypt
or
brew install php56-mcrypt

具体选择哪个可以先看一下你本机的 PHP 版本:php -v

4、配置 php.ini

如果不知道这个文件在哪个目录下:
php --ini

编辑文件,添加扩展配置:
extension=mcrypt.so

到这一步基本上就没问题了。

三、补充:为什么安装成功了却找不到文件

一般用命令安装好后,扩展管理目录下就会存在指定扩展的 .so 或 .a 文件,但我安装即使安装成功后本机上没有指定扩展文件,为什么呢 ?

我电脑上之前就安装了 PHP,后来又安装了 MAMP ,也不知道怎么搞的一台电脑上就多了好几个版本的 PHP。用命令安装依赖的时候不小心就安装到其它版本 PHP 目录下了,所以就显得总是安装不成功,其实是装上去了。如果你也是我这种情况的话可以用以下方法解决:

找到本机上该文件夹相关目录:
mdfind mcrypt.so

将 so 文件复制到依赖管理目录:
cp [源文件] [目标目录]

搞定 !

发布了179 篇原创文章 · 获赞 91 · 访问量 33万+

猜你喜欢

转载自blog.csdn.net/haha223545/article/details/99411505
今日推荐