MAMP 下多版本 PHP 开发环境中,运行 Laravel 内 PHP artisan 命令提示 “Mcrypt PHP extension required” 的解决办法
我在自己的开发机上是利用 MAMP 来搭建 PHP 环境的。今天遇到的问题是在一个以 Laravel 4.2 为基础的旧项目上执行 php artisan
命令时被提示“Mcrypt PHP extension required.”,而我利用 phpinfo() 查看时却发现 Mcrypt 扩展已经就绪。当时就怀疑是 MAMP 下多个 PHP 版本共存造成的问题,上网搜索后得到解决方案如下:
注:我的开发机是 Mac mini,然后利用 MAMP 内置的 CGI 方式为不同的项目指定不同的 PHP 版本,所以这些不同的 PHP 安装在目录 /Applications/MAMP/bin/php/
内。
首先,运行一下命令 which php
,此时你看到的应该类似“/usr/local/bin/php”,这就是你的命令行目前所启用的 PHP 所在的位置,这里只是让你看一下,后边就明白了。
然后,通过命令行编辑 ~/.bash_profile
文件,修改其中的 PATH 变量。我的 .bash_profile 内容如下:
# Setting PATH for Python 3.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
export PATH
在此基础上,我新增了一行:
PATH="/Applications/MAMP/bin/php/php5.5.26/bin:${PATH}"
最终得到:
# Setting PATH for Python 3.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
PATH="/Applications/MAMP/bin/php/php5.5.26/bin:${PATH}"
export PATH
编辑完成,保存并退出。
然后,关闭当前的命令行窗口,再重新打开它。此时请再执行一下命令 which php
,你现在看到的输出应该就变成“/Applications/MAMP/bin/php/php5.5.26/bin/php”了吧。
之后,再执行 php artisan
命令应该就没问题了,至少我所遇到是这样。
之前也有遇到过类似的问题,不过那次是因为php artisan用的是cli,去cli的配置文件里开启扩展就解决了