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。。。

发布了14 篇原创文章 · 获赞 8 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/wm20000/article/details/89291421
今日推荐