【问题标题】:Laravel: Lacking mcrypt extension only when using phpunitLaravel:仅在使用 phpunit 时缺少 mcrypt 扩展
【发布时间】:2013-09-12 17:50:24
【问题描述】:

我遇到以下问题 - 在我的 Laravel 4 安装文件夹中使用 phpunit 时出现以下错误:

Laravel requires the Mcrypt PHP extension.

但是,当我使用artisan 命令时它不会出现。我知道这个问题一定是由于 phpunit 加载了另一个 php.ini 而不是我的 zshconfig 中设置的那个。

不幸的是,我不知道如何强制 phpunit 使用正确的。

我的 .zshconfig 看起来像这样:

# Customize to your needs...
export PATH=:/Applications/MAMP/Library/bin/:/Users/jacekbandura/pear/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/texbin/:/Users/jacekbandura/nasm

export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

我使用的是 OS X 10.8.4 和 MAMP。

以前有人解决过这个问题吗? 在此先感谢:)

【问题讨论】:

  • 它可能正在运行您的 mac 的默认 PHP 可执行文件 (/usr/bin/env php),而不是简单地加载错误的 php.ini 文件。您的自定义路径是否包含 php 可执行文件的路径(在 CLI 上运行 php 时调用的路径)还是仅包含 php.ini?
  • 如何查看?我已经发布了 .zshconfig 内容。我尝试添加/Applications/MAMP/bin/php/php5.4.10/bin/php,但似乎没有帮助。
  • 这是在终端中手动运行 phpunit 时,还是以任何方式自动运行?如果您愿意,您可以直接编辑 phpunit 可执行文件并将#!/usr/bin/env php 替换为#!/Applications/MAMP/bin/php/php5.4.10/bin/php。不是最推荐的做法...
  • 旁注:对于未来的项目,考虑使用 Vagrant 或其他虚拟机,这样您就不必在非标准位置使用 PHP 和其他二进制文件(直接在您的 mac 上开发对于几乎一切)。

标签: php laravel phpunit mcrypt


【解决方案1】:

这里有一些来自 PHPUnit 的安装说明和一篇文章。您是否通过composer安装了phpunit?还是您以其他方式安装它?

以下是一些安装说明,希望与您的用例相符。

PhpUnit docs指向编辑一个phpunit文件并直接设置php二进制文件的路径

This article 指向使用 PECL 安装 PhpUnit,并显示使用 setp 更改您将使用的 PHP 可执行文件

This SO answer 指向使用 Composer,但设置一些特定的配置

【讨论】:

  • 通过 composer 安装 phpunit 解决了我的问题。我完全忘记了这种使用 phpunit 的方式。谢谢:)
猜你喜欢
  • 2013-06-29
  • 2018-08-31
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
  • 2017-05-11
  • 2014-06-29
相关资源
最近更新 更多