书写技术成长之路

PHP上线遇到版本问题解决方案

昨天项目上线,本地开发环境和测试环境运行都没问题,到上线运行composer install --no-dev --optimize-autoloader就报了错,原因是composer依赖包要求的版本是PHP 7.1.3, 而生产环境用的PHP版本是7.1.2,所以就报错了。

WechatIMG230.jpeg

产生问题的原因: 由于本地开发用的PHP版本是7.1.3,所以在用composer update安装依赖包的时候composer就直接按照我本地的php版本来安装,这样就导致一个人机器上运行好好的,换到别人机器上就不能运行了。

解决方案: 通常有三种

  • 降低你本地的PHP版本,使你的版本小于线上的版本。
  • 升级服务器的PHP版本。
  • 在composer.json中添加指定平台的PHP版本, 重新运行composer update来更新composer.lock, platform指令就是让你可以模拟生产环境或者你指定的平台

WechatIMG231.jpeg

此三人说的已经很清楚了

Different php versions for development and production · Issue  5163 · composer composer · GitHub.png

参考

https://stackoverflow.com/questions/26277151/force-composer-to-require-php-version-between-version-x-and-version-y

https://getcomposer.org/doc/06-config.md#platform

https://github.com/composer/composer/issues/5163

https://github.com/laravel/homestead/issues/638