【问题标题】:Cannot --init the PHP BDD test software 'Behat' on RedHat RHEL/CentOS/Fedora 6.4无法 --init RedHat RHEL/CentOS/Fedora 6.4 上的 PHP BDD 测试软件“Behat”
【发布时间】:2013-06-26 14:16:14
【问题描述】:

我从developer.nrel.gov 下载了一个运行 CentOS 6.4 的 Vagrant 控制的 VirtualBox

我的 Puppet init.pp 文件包含:

package { "php":
  ensure => "5.3.3-22.el6"
}

我正在使用 Composer 为我的 PHP Web 应用程序安装依赖项,其中包括 Behat 和 Mink:

{
    ...
    "require-dev": {
        "behat/behat": "2.4.*",
        "behat/mink": "1.4.*",
        "behat/mink-extension": "@dev",
        "behat/mink-goutte-driver": "@dev",
        "behat/mink-selenium2-driver": "@dev"
    },
    ...
}

运行 ./bin/behat --init 时,我收到以下错误消息之一:

PHP Fatal error:  Class 'DOMDocument' not found in .../symfony/config/Symfony/Component/Config/Util/XmlUtils.php on line 47

或:

PHP Fatal error:  Call to undefined function Behat\Behat\DependencyInjection\mb_internal_encoding() in .../behat/behat/src/Behat/Behat/DependencyInjection/BehatExtension.php on line 54

【问题讨论】:

    标签: php unit-testing symfony integration-testing behat


    【解决方案1】:

    DOMDocument 是“DOM”PHP 扩展的一部分。如果您从源代码编译 PHP,则默认情况下会包含它。企业基于 Linux 的系统需要的不仅仅是安装 php 模块来获得完整的 PHP 安装。第二个错误是由缺少多字节字符串模块引起的。您可以手动安装这些,而无需重新编译 PHP。要使用 Puppet 执行此操作,请将以下内容添加到您的 init.pp 文件中:

    package { "php-mb":
      ensure => "5.3.3-22.el6"
    }
    package { "php-xml":
      ensure => "5.3.3-22.el6"
    }
    

    版本号与您已安装的 PHP 版本相匹配。这相当于:

    yum -y install php-mb php-xml
    

    Behat 现在将初始化并正常运行。

    【讨论】:

    • 使用 php 5.5 命令将是 yum -y install php55w-mbstring php55w-xml。就像一个注释
    猜你喜欢
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    相关资源
    最近更新 更多