Ubuntu下Symfony 3.4内置服务器仍用PHP7.0问题求助
这种情况我碰到过好几次,核心原因是Symfony内置服务器直接调用当前Shell环境的PHP解释器,和Apache的PHP模块配置是完全独立的,具体可以从这几个方向排查:
系统默认
php命令指向未完全切换到7.1
先在终端执行php -v,看看输出是不是PHP7.1。如果还是7.0,说明你之前的CLI切换操作没彻底生效。可以用update-alternatives重新设置系统默认PHP版本:sudo update-alternatives --config php执行后会弹出可选的PHP版本列表,输入对应7.1的序号回车即可。同时记得同步设置phar相关的关联:
sudo update-alternatives --set phar /usr/bin/phar7.1 sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1设置完再确认
php -v版本,重启Symfony服务器试试。项目环境变量强制指定了旧版本PHP
检查项目根目录下的.env或.env.local文件,有没有定义PHP_BINARY变量,比如:PHP_BINARY="/usr/bin/php7.0"如果有,把路径改成
/usr/bin/php7.1,保存后重启Symfony内置服务器即可。Shell环境的别名或PATH优先级问题
看看你是不是在~/.bashrc、~/.zshrc这类Shell配置文件里加了php的别名,比如alias php='php7.0'。打开对应的配置文件,把别名改成php7.1或者直接删掉这行,然后执行source ~/.bashrc(或对应Shell的配置文件)刷新环境,再启动Symfony服务器。PHP版本管理工具的局部配置干扰
如果你用了phpenv、phpbrew这类版本管理工具,可能在项目目录下有个.php-version文件,里面指定了7.0版本。进入项目目录查看这个文件,把内容改成7.1或者直接删除它,让系统使用默认的PHP版本。
内容的提问来源于stack exchange,提问作者Pepe

