切换php版本时PHPUnit Segmentation错误

时间:2016-04-14 22:55:20

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

我维护多个系统,需要不断地在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安装是基于项目的,并且是通过作曲家安装的。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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