我维护多个系统,这些系统需要经常在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。