0

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

我的 Puppetinit.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
4

1 回答 1

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 现在将初始化并运行而不会出现错误。

于 2013-06-26T14:16:14.630 回答