Laravel 5.5执行php artisan migrate遇Mcrypt错误:PHP版本不一致
解决Laravel 5.5
php artisan migrate 报“Mcrypt PHP extension required”错误 嘿,我来帮你搞定这个头疼的问题!从你的描述来看,问题的核心很明确:你的Web服务器用的PHP版本和终端(CLI)用的不是同一个——浏览器里显示的是PHP 7.1.12(已经启用mcrypt),但终端里跑的是PHP 7.2.x,而PHP 7.2开始官方已经移除了mcrypt扩展,这就是为啥终端执行migrate会报错。
下面是具体的解决步骤:
第一步:确认终端当前用的PHP路径
执行这个命令查看当前CLI使用的PHP位置:which php你会得到类似
/usr/bin/php7.2的路径,这说明终端默认调用的是PHP7.2。第二步:切换终端的PHP版本到7.1
因为你的Web端已经配置好PHP7.1且带mcrypt,直接切换过去最省心。如果你的Ubuntu是通过deb.sury.org的PPA源安装的PHP,用update-alternatives工具来切换:- 先列出系统里已安装的PHP版本选项:
你会看到类似sudo update-alternatives --list php/usr/bin/php7.1和/usr/bin/php7.2的条目。 - 选择PHP7.1作为终端默认版本:
sudo update-alternatives --set php /usr/bin/php7.1
- 先列出系统里已安装的PHP版本选项:
第三步:验证切换结果
执行以下命令确认版本切换成功:php -v现在应该显示PHP 7.1.12了,再执行:
php -m查看输出里有没有
mcrypt,确认扩展已启用。第四步:重新执行迁移命令
现在再跑:php artisan migrate应该就能正常执行了!
如果之后你需要在终端切换回PHP7.2,重复第二步,选择对应的/usr/bin/php7.2路径就行。
内容的提问来源于stack exchange,提问作者Priyanka Sankhala
相关产品推荐
相关产品推荐

