切换php版本时出现PHPUnit分段错误


PHPUnit Segmentation fault when switching php versions

我维护多个系统,这些系统需要经常在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能在PHP5.6上正常工作,当我改为PHP7.0时,我会收到以下错误:

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

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

有什么想法吗?

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

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