Yii2 显示 server interval 500 error

前天手欠点了composer的update,结果呼啦呼啦升级了一堆东西,继续编码没遇到问题,就没当回事。

次日,部署更新到服务器出了问题,报server 500错误,也不提示具体原因,懵。。。

抛砖引玉,记录一下解决方案。

1.先让服务器显示错误信息,编辑服务器php.ini,找到display_errors,修改为 display_errors = On,保存,重启服务

2.运行服务如下显示

Parse error: syntax error, unexpected 'function' (T_FUNCTION), 
expecting identifier (T_STRING) or \\ (T_NS_SEPARATOR) 
in /data/qisi_class/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php 
on line 5

通常这种语法错误,是低版本语言不兼容高版本写法出现的

3.查看服务器php版本5.4.16,开发环境时7.2.10

4.问题就在这里,composer升级时按照本机高版本升级的,但服务器运行环境太低不兼容导致出错

5.服务器是不能随便升级的,办法只能是把composer匹配版本降级,修改composer.json,增加下面内容

"config": {
        ***
        "platform": {
            "php": "5.4.16"
        }
    },

这样composer就可以按照指定的版本匹配依赖包。

6.再次选择composer的update,开始依赖降级操作

- Downgrading sebastian/recursion-context (3.0.0 => 1.0.5): Downloading 
- Downgrading sebastian/exporter (3.1.0 => 1.2.2): Downloading (connecting...)
- Installing phpunit/phpunit-mock-objects (2.3.8): Downloading (connecting...)

7.因为本地环境php版本高,向下兼容的,自然不会出错。坐等降级完成,重新部署服务器问题就解决了。

为了身心健康,不要随便点composer update。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值