Bitnami MAMP Stack 5.6.34安装Laravel 4.2遇Mcrypt扩展报错
嘿,这个问题我太熟了!你碰到的是Bitnami MAMP的一个典型坑——网页端的PHP环境和命令行(CLI)的PHP环境是完全分开的两套配置,所以phpinfo()显示Mcrypt已启用,但php -m查不到,就是因为你之前修改的是网页端的php.ini,CLI的PHP根本没用到这份配置。下面一步步帮你搞定:
1. 先确认CLI当前用的是哪个PHP
执行下面的命令,看看当前命令行默认的PHP路径:
which php
如果输出不是/Applications/mampstack/php/bin/php,说明你的系统正在用自带的PHP,而不是Bitnami的版本,这就是问题根源。
2. 修改CLI对应的php.ini配置文件
Bitnami的CLI版php.ini一般在这个路径:
/Applications/mampstack/php/etc/php.ini
用编辑器打开它(比如nano):
nano /Applications/mampstack/php/etc/php.ini
找到关于Mcrypt的配置项,确保以下两行没有被注释(前面没有分号;),并且路径和你的Bitnami安装路径匹配:
extension=mcrypt.so mcrypt.algorithms_dir=/Applications/mampstack/common/lib/libmcrypt/2.5.8/lib/algorithms mcrypt.modes_dir=/Applications/mampstack/common/lib/libmcrypt/2.5.8/lib/modes
注意:你之前修改的可能是网页端的php.ini(一般在
/Applications/mampstack/apache/conf/php.ini),那只对网页请求生效,CLI不读这个文件。
3. 验证CLI的Mcrypt是否启用
直接用Bitnami的PHP来检查:
/Applications/mampstack/php/bin/php -m | grep mcrypt
如果输出mcrypt,说明配置生效了!
4. 把Bitnami的PHP设为全局默认(可选,方便后续操作)
为了以后不用每次都敲完整路径,我们把Bitnami的PHP路径加入系统环境变量:
- 如果你用的是bash,编辑
~/.bash_profile;如果是zsh,编辑~/.zshrc - 在文件末尾添加一行:
export PATH="/Applications/mampstack/php/bin:$PATH" - 执行命令让配置生效:
source ~/.bash_profile # bash用户 # 或者 source ~/.zshrc # zsh用户 - 再执行
which php,确认输出是/Applications/mampstack/php/bin/php就ok了。
5. 重新尝试安装Laravel和使用php artisan
现在再执行Composer安装命令:
composer create-project laravel/laravel=4.2.* your-project-name
应该不会再出现“Mcrypt PHP extension required”的错误了,php artisan也能正常运行啦!
如果还是不行,检查一下Bitnami的mcrypt.so文件是否存在,路径一般是/Applications/mampstack/php/lib/php/extensions/no-debug-non-zts-xxxxxx/mcrypt.so(xxxxxx是你的PHP版本对应的后缀),如果不存在的话,可能需要重新安装Bitnami的PHP扩展组件,但Bitnami默认是自带这个扩展的,大概率不会有这个问题。
内容的提问来源于stack exchange,提问作者Rony Banik Arko

