【问题标题】:PHPUnit Segmentation fault when switching php versions切换php版本时出现PHPUnit分段错误
【发布时间】:2016-08-06 17:37:15
【问题描述】:

我维护了多个需要不断在 PHP 7.0 和 PHP 5.6 之间切换的系统,我使用这个 bash 脚本来更改版本:

switch-php() {
    if [[ $1 == "5.4" ]]; then
        brew unlink php55 php56 php70
        PHP_VERSION="php54"
        REPLACE=("php55" "php56" "php70")
    elif [[ $1 == "5.5" ]]; then
        brew unlink php54 php56 php70
        PHP_VERSION="php55"
        REPLACE=("php54" "php56" "php70")
    elif [[ $1 == "5.6" ]]; then
        brew unlink php54 php55 php70
        PHP_VERSION="php56"
        REPLACE=("php54" "php55" "php70")
    elif [[ $1 == "7.0" ]]; then
        brew unlink php54 php55 php56
        PHP_VERSION="php70"
        REPLACE=("php54" "php55" "php70")
    else
        echo "Unsupported php version."
        return
    fi

    brew link --overwrite $PHP_VERSION

    for OLD_VERSION in "${REPLACE[@]}"; do
        sed -i "" "s/$OLD_VERSION/$PHP_VERSION/g" /usr/local/etc/apache2/2.4/httpd.conf
    done

    sudo apachectl -k restart
}

我不知道为什么 PHPUnit 在 PHP 5.6 上可以正常工作,当我更改为 PHP 7.0 时,我得到了这个错误:

PHPUnit 5.3.1 by Sebastian Bergmann and contributors.
[1]    11019 segmentation fault

值得一提的是,这个PHPUnit安装是基于项目的,是通过composer安装的。

有什么想法吗?

【问题讨论】:

  • 我建议在 PHPUnit 中进行更多的日志记录。该版本的 PHPUnit 是否适用于 PHP 7.0?
  • @miken32 PHPUnit 5.3.1 确实兼容 PHP 7.0

标签: php phpunit composer-php php-7 php-5.6


【解决方案1】:

显然,我使用的配置 xml 文件导致了错误。如果您偶然发现同样的问题,请尝试在没有自定义配置文件的情况下运行 phpunit。

【讨论】:

    【解决方案2】:

    尝试在移动文件之前停止 Apache,而不是 sudo apachectl -k restart。然后在移动文件后启动 Apache。

    【讨论】:

    • Apache 与 PHPUnit(它是一个 CLI 应用程序)有什么关系?
    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 2014-09-30
    • 2011-09-14
    • 1970-01-01
    • 2011-01-18
    • 2011-03-04
    • 1970-01-01
    • 2012-10-27
    相关资源
    最近更新 更多