Laravel需要Mcrypt PHP扩展
我正在尝试在OSX
上使用Laravel 4
的migrate
功能。 但是,我收到以下错误:
Laravel requires the Mcrypt PHP extension.
据我所知,它已经启用(见下图)。
什么是错的,我该如何解决?
启用了Web的扩展和启用命令行的扩展可能会有所不同。 在您的终端中运行php -m
并检查是否列出了mcrypt
。 如果不是,那么通过在终端上运行php --ini
来检查命令行加载php.ini
文件的位置。
在这个php.ini
文件中,你可以启用扩展。
OSX
我听说OSX上的人遇到问题,因为终端指向OSX附带的原生PHP。 您应该更新您的bash配置文件以包含PHP的实际路径。 就像这样(我实际上并没有使用OSX,所以这可能不是100%):
export PATH=/usr/local/php5/bin:$PATH
Ubuntu的
在早期版本的Ubuntu(14.04之前),当你运行sudo apt-get install php5-mcrypt
它实际上并没有将扩展安装到mods-available
。 你需要将它符号链接起来。
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
在所有Ubuntu版本中,您需要在安装完成后启用该mod。 你可以用php5enmod
来做到这php5enmod
。
sudo php5enmod mcrypt
sudo service apache2 restart
笔记
你有MAMP吗?
在终端中使用which php
来查看您使用的是哪个版本的PHP。
如果它不是来自MAMP的PHP版本,则应该在用户的主目录中编辑或添加.bash_profile
,即: cd ~
在.bash_profile
,添加以下行:
export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH
编辑:首先,您应该使用命令cd /Applications/MAMP/bin/php
来检查您正在使用的MAMP的哪个PHP版本,然后替换为上面的PHP版本。
然后restart
终端以查看您正在使用哪个PHP。
它现在应该工作。
对于那些使用XAMPP 1.7.3和Mac的用户
which php
/usr/bin/php
,则继续执行3。 sudo nano ~/.bash_profile
(或者如果你知道如何使用sudo vim ~/.bash_profile
) export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
cd ~
. .bash_profile
. .bash_profile
which php
。 如果你做得对,它应该和#4中的路径一样。 mcrypt错误的原因是因为您的Mac使用其原生的php,您需要将其更改为一个xampp。
PS我建议为Mac用户使用MAMP for Laravel 4,这个问题将随PHP文件信息错误一起解决,而不会出汗,而xampp的php版本已经过时。
链接地址: http://www.djcxy.com/p/71127.html