您的系统中缺少MCrypt。 OS优胜美地

时间:2015-02-16 16:41:05

标签: php macos laravel

所以在工作中,我的任务是学习并开始使用一些Laravel,所以我一直在关注Youtube上的文档和一些教程,但我似乎无法让它工作。我正在使用composer和MAMP来安装Laravel。当我在htdocs中使用命令(在终端中)“composer create-project laravel / laravel TestLaravel”时。它很快就出现了这个错误:

➜  htdocs  composer create-project laravel/laravel TestLaravel
Installing laravel/laravel (v5.0.1)
  - Installing laravel/laravel (v5.0.1)
    Loading from cache

Created project in TestLaravel
Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/framework v5.0.5 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    - laravel/framework v5.0.4 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    - laravel/framework v5.0.3 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    - laravel/framework v5.0.2 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    - laravel/framework v5.0.1 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    - laravel/framework v5.0.0 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    - Installation request for laravel/framework 5.0.* -> satisfiable by laravel/framework[v5.0.0, v5.0.1, v5.0.2, v5.0.3, v5.0.4, v5.0.5].

我想知道是否有人会为我解决这个问题。

谢谢。

约书亚约翰逊

4 个答案:

答案 0 :(得分:6)

Mac OS X Yosemite

  

系统中缺少所请求的PHP扩展名mcrypt

我通过在终端中运行以下命令来修复此错误:

brew update
brew upgrade
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
brew install php54-mcrypt

答案 1 :(得分:3)

当您的MAMP PHP版本与命令版本php不匹配时,通常会出现此问题。请按类型php -v查看终端,然后它将显示像PHP 5.5。*

的版本

问题是您必须在~/.bash_profile中设置您的MAMP PHP路径,如下所示:

sudo nano ~/.bash_profile

PATH="/Applications/MAMP/bin/php/php5.6.7/bin:$PATH"

这就是全部,或者如果你想使用你的默认系统php,请安装mcrypt lib。

答案 2 :(得分:2)

我解决这个问题的方法是安装Homestead并确保在运行任何命令之前登录Homestead虚拟机。 MCrypt未安装在您的本地计算机上,但它位于Homestead中。

答案 3 :(得分:0)

有一个名为mcrypt的PHP扩展,通常不会与库存PHP包一起分发。 mcrypt扩展名是用于加密和散列功能的事实标准PHP扩展。 Laravel使用mcrypt。

OS X上内置的PHP没有安装mcrypt。这意味着您需要

  1. 为OS X内置的PHP
  2. 自行构建并安装mcrypt扩展
  3. 使用homebrew使用mycrypt构建和安装PHP
  4. 使用“预编译的OS X”PHP包。
  5. 使用vagrant虚拟机运行开发堆栈
  6. 我通常选择第三个选项,并使用lipp.ch包。这是一个长期运行的项目,它的根源在于Marc Liyanage管理的旧的entropy.ch软件包。