Laravel需要Mcrypt PHP扩展
我正在尝试使用OSX上Laravel4中的Laravel需要Mcrypt PHP扩展,php,laravel,laravel-4,mcrypt,Php,Laravel,Laravel 4,Mcrypt,我正在尝试使用OSX上Laravel4中的migrate函数。但是,我得到以下错误: Laravel requires the Mcrypt PHP extension. 据我所知,它已经启用(见下图) 出了什么问题,我该如何解决 支持web的扩展和支持命令行的扩展可能有所不同。在终端中运行php-m,检查是否列出了mcrypt。如果没有,则通过从终端运行php--ini来检查命令行从何处加载php.ini文件 在这个php.ini文件中,您可以启用扩展名 OSX 我听说有人在OSX上遇到问题
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%):
Ubuntu
在Ubuntu的早期版本(14.04之前)上,当您运行sudo apt get install php5 mcrypt
时,它实际上不会将扩展安装到可用的mods中。你需要把它符号化
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
在所有Ubuntu版本上,一旦安装了mod,你就需要启用它。您可以使用php5enmod
实现这一点
sudo php5enmod mcrypt
sudo service apache2 restart
注释
- PHP7.1已弃用mcrypt,7.2已弃用
- Laravel 5.1及更高版本
您是否安装了MAMP
在终端中使用哪个php
,查看您正在使用哪个版本的php
如果它不是来自MAMP的PHP版本,您应该在用户的主目录中编辑或添加.bash\u profile
,即:cd~
在.bash\u profile
中,添加以下行:
export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH
编辑:首先,您应该使用命令cd/Applications/MAMP/bin/php
检查您正在使用的MAMP中的哪个php版本,然后替换为上面的php版本
然后重新启动
终端,查看您现在使用的是哪种PHP
对于那些使用XAMPP1.7.3和Mac的用户来说,它现在应该可以工作了
到终点站
输入哪个php
- 如果显示为
/usr/bin/php
,则转至3
输入sudo nano~/.bash_profile
(或者sudo vim~/.bash_profile
,如果您知道如何使用它)
然后粘贴此export PATH=“/Applications/XAMPP/xamppfiles/bin:$PATH”
Ctrl+O然后输入保存,然后Ctrl+X退出
键入cd~
键入。bash_配置文件
重新启动终端
输入哪个php
。如果你做对了,它应该与#4中的路径相同
mcrypt错误的原因是因为您的Mac使用其本机php,您需要将其更改为xampp拥有的php
附言。
我建议Mac用户使用适用于Laravel 4的MAMP,这个问题会随着php文件信息错误的出现而迎刃而解,而且xampp的php版本已经过时了。对于OSX上的非MAMP或xampp用户(安装了自制软件):
brew安装自制/php/php56 mcrypt
干杯 在时差上展开:
在一次又一次尝试用MAMP目录修改.bash_概要文件之后,我更改了MAMP php目录的文件权限,并能够获得显示正确目录的“哪个php”。问题是其他函数不起作用,比如“php-v”
所以我更新了MAMP
这对我的特殊设置起到了作用。我不得不调整我的路径以反映PHP的更新版本,但一旦我这样做了,一切都正常了 或者,使用:
sudo apt-get install php5-mcrypt
不确定这是否适用于标准PHP安装-我使用以下软件包安装了PHP5.5.7
:
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
这在我的LinuxMint本地环境中为我解决了这个问题
我需要使用Ubuntu在以下文件夹/etc/php5/apache2/conf.d/mcrypt.ini和/etc/php5/cli/conf.d/mcrypt.ini中创建一个符号链接到我的/etc/php5/conf.d/mcrypt.ini
sudo php5enmod mcrypt
他为我做了这件事。您不需要重新启动Apache,因为您只需要从CLI使用PHP。在Ubuntu(PHP-FPM,Nginx)中
安装php5 mcrypt后
您必须使mods中ini文件的符号链接可用:
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
启用:
sudo php5enmod mcrypt
重新启动php5 fpm:
sudo service php5-fpm restart
对于ubuntu,如果其他人不工作,请尝试以下步骤:
cd~
sudo apt get remove php5 mcrypt
sudo apt get install php5 mcrypt
sudo php5enmod mcrypt
sudo服务apache2重启
希望这会有所帮助。谢谢 让Laravel在Apache上工作
PHP版本:PHP5.5.9
Ubuntu版本:14.04
我在windows上有一个正在工作的laravel项目。当我把它复制到ubuntu服务器上时,我开始得到mcrypt错误。这是经过数小时反复试验后得出的结论
让artisan命令正常工作
(如果在使用artisan命令行工具时出现mcrypt错误)
我做了很多尝试和错误,所以每次运行php5enmod命令之前,我都会收到错误消息。但在新安装时没有错误消息。这一步之后,我让artisan命令开始工作
sudo rm /etc/php5/mods-available/mcrypt.ini
sudo apt-get purge php5-mcrypt
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
修复浏览器错误
(如果访问本地laravel索引页时浏览器中出现mcrypt错误)
在PHPINI的动态编译扩展部分下添加以下行
extension=mcrypt.so
重新启动apache服务器,清除laravel缓存和一切工作对于Ubuntu 14.04上的php fpm安装,以下操作对我有效:
sudo apt get install php5 mcrypt
这将在/etc/php5/mods available/
然后
sudo php5enmod mcrypt
将在中创建符号链接:sudo rm /etc/php5/mods-available/mcrypt.ini
sudo apt-get purge php5-mcrypt
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo nano /etc/php5/apache2/php.ini
extension=mcrypt.so
php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File: /usr/local/etc/php/5.5/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
Additional .ini files parsed: (none)
mv /usr/local/etc/php/5.5/php.ini /usr/local/etc/php/5.5/php.ini.default
ln -s /etc/php.ini /usr/local/etc/php/5.5/php.ini
sudo apachectl restart
php -m
yum install php-mcrypt
service httpd restart
chown -R apache:apache apppath
export PATH=/Applications/MAMP/bin/php/php5.6.7/bin:$PATH
echo export PATH=`cat /Applications/MAMP/conf/apache/httpd.conf \
| grep php | grep -i LoadModule | head -n1 \
| sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\/\1/'`/bin:\$PATH
port contents php70 | grep bin/php
brew --prefix homebrew/php/php56
$ brew install mcrypt php70-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
sudo apt install php7.0-mcrypt
sudo phpenmod mcrypt
sudo apt install php7.2-mcrypt
sudo phpenmod mcrypt
sudo apt-get install php7.1-mcrypt
sudo phpenmod mcrypt