我试图在OSX上使用Laravel 4中的迁移函数。然而,我得到以下错误:
Laravel requires the Mcrypt PHP extension.
据我所知,它已经启用了(见下图)。
出了什么问题,我该如何解决?
我试图在OSX上使用Laravel 4中的迁移函数。然而,我得到以下错误:
Laravel requires the Mcrypt PHP extension.
据我所知,它已经启用了(见下图)。
出了什么问题,我该如何解决?
当前回答
对于OSX上的非MAMP或XAMPP用户(已安装自制程序):
brew install homebrew/php/php56-mcrypt
干杯!
其他回答
或者,使用:
sudo apt-get install php5-mcrypt
不确定这是否适用于标准的PHP安装-我使用包安装了PHP 5.5.7:
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
在OS X上
使用MAMP
在终端中输入命令which php以查看您正在使用的php版本。如果它不是来自MAMP的PHP版本,Bash使用的$PATH变量将需要更新。
首先,你应该使用命令“cd /Applications/MAMP/bin/php”来检查MAMP中的php版本,并记下这个版本(例如php5.6.7)。
一旦知道了版本,就应该编辑~/。Bash_profile文件(即主目录中的.bash_profile),并添加一条导出行:
export PATH=/Applications/MAMP/bin/php/php5.6.7/bin:$PATH
确保将php5.6.7替换为在MAMP中选择的PHP版本。
保存文件后,确保关闭终端并再次打开它。完成这些工作后,您将使用随MAMP附带的PHP。
一种方法是在终端中运行以下命令,轻松找到需要放入.bash_profile中的行:
echo export PATH=`cat /Applications/MAMP/conf/apache/httpd.conf \
| grep php | grep -i LoadModule | head -n1 \
| sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\/\1/'`/bin:\$PATH
将这三行复制并粘贴到终端中,将正确地输出在MAMP控制面板中选择的PHP版本。
使用自制程序/ MacPorts
确保你的路径包含/usr/local/bin/ (Homebrew)或/opt/local/bin (MacPorts)(如果你使用的是这两个包管理器中的任何一个附带的PHP)。
使用MacPorts检查PHP路径
你可以使用MacPorts命令找到PHP的确切位置:
port contents php70 | grep bin/php
注意,您应该将php70替换为您已经安装的PHP版本。
使用Homebrew-php检查PHP路径
Homebrew-php (https://github.com/Homebrew/homebrew-php)是一个拥有各种不同版本的PHP的插件。
你可以在Homebrew中使用以下命令找到PHP的确切位置:
brew --prefix homebrew/php/php56
注意,您应该用已经安装的PHP版本替换php56。
对于使用XAMPP 1.7.3和Mac的用户
进入终端 输入哪个php 如果显示的是/usr/bin/php,则继续执行3。 输入sudo nano ~/。Bash_profile(或sudo vim ~/。如果你知道如何使用Bash_profile) 然后粘贴此导出PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" 然后按Ctrl+O输入保存,然后按Ctrl+X退出。 cd ~ 输入.bash_profile 重启终端。 输入哪个php。如果你做得正确,它应该与#4中的路径相同。
mcrypt错误的原因是因为你的Mac使用它的原生php,你需要将它更改为xampp拥有的。
注: 我建议Mac用户在Laravel 4中使用MAMP,这个问题会随着php文件信息错误一起得到解决,而且php版本的xampp已经过时了。
对于Ubuntu 14.04上的php-fpm安装,以下操作对我来说是有效的:
安装php5-mcrypt
这将在/etc/php5/mods-available/中创建mcrypt.ini文件
然后
Sudo php5enmod McRypt
将在:/etc/php5/fpm/conf.d/
重启php-fpm服务即可 Sudo service php5-fpm restart
这在我的Linux Mint本地环境https://askubuntu.com/questions/350942/cannot-get-mcrypt-for-php5上解决了它
我需要在以下文件夹/etc/php5/apache2/conf.d/mcrypt.ini和/etc/php5/cli/conf.d/mcrypt.ini中创建一个符号链接到我的/etc/php5/conf.d/mcrypt.ini文件