继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP5切换PHP7的一些注意事项(丢失 VCRUNTIME140.dll)

维生素P
关注TA
已关注
手记 42
粉丝 8342
获赞 253

前言

2019年1月1日起,PHP 5.6 已经不再有官方安全支持。
2018年12月1日起,PHP 7.0 已经不再有官方安全支持。

2019年12月1日,再过不到1年,PHP 7.1 也会结束支持,所以建议大家有条件的还是尽快切换PHP 7.2 为妙。当然,在迁移之前也务必要做好代码数据备份以及准备工作,也要做好可能重构的心里准备。

近期把一台旧服务器的换了PHP7,结果遇到了 丢失 VCRUNTIME140.dll 错误,把这个错误解决方案附上之后,也顺便提一些基本的注意事项。

决策:我需不需要PHP7 ?

  • 如果你的网站非常重要,安全漏洞会引发致命问题
  • 如果你希望自己的网站性能更强
  • 如果你的网站PHP代码有比较好的结构或框架

请继续阅读后半部分,并且开始学习PHP7的新特性进行网站的迁移与维护。

  • 如果你的网站使用着非常旧版本的小众数据库以及驱动
  • 如果服务器用的是非常旧版本的 Windows Server 2010 甚至更老的版本
  • 如果网站用的Apache或Nginx或IIS都是非常老旧的版本,并且集成了其他一些重要的内容。

建议一锅端根据功能全部一起重构弄一次大升级,或者保持原有PHP5并且加强安全方面的排查,定时关注官方以及论坛的安全漏洞反馈。

迁移:我需要事先知道什么?

版本升级意味着可能出现不兼容的情况,所以必须要事先了解下面的内容:

  • 语法差异
  • 弃用的用法,以及语言新特性
  • 不再支持的驱动与拓展
  • 新版本所需要新驱动与拓展
  • 与其他内容的兼容性

了解新内容

PHP官方给了最新的迁移说明,请查阅 http://php.net/manual/zh/appendices.php 的内容,了解5.6 - 7.0 - 7.1 - 7.2 -7.3 的新内容,建议最好迁移到 7.2 以上。

查询数据库支持与框架支持

如果要升级,务必要确认目前业务里的其他内容不受影响,特别是数据库和框架。

数据库方面有一些变动,请参阅官方说明 http://php.net/manual/zh/migration70.incompatible.php, 调整原有程序中连接数据库的部分代码。(当然,改动之前务必备份)

框架方面,TP3兼容, TP5.0兼容, TP 5.1之后支持, Laravel 5.3之后支持,具体会不会出bug请参考论坛以及其他问答社区。

系统支持

主要检查自己当前的 LInux系统版本或者Windows Server 里面的相关拓展有没有安装。比如有一个比较常见的升级错误,丢失 VCRUNTIME140.dll

丢失 VCRUNTIME140.dll 错误

这个错误有点隐蔽,不会在php中报错,而是直接显示500错误,当在命令行中执行php指令时,则会弹窗提示

无法启动此程序,因为计算机中丢失 VCRUNTIME140.dll。尝试重新安装改程序以解决此问题。

原因是Visual C++Redistributable 2015没有安装,之前可能用PHP5只是装了2010或2008的版本,导致的错误。解决方法也很简单,重新下载安装即可。

切换语言,重新部署

前面基本的准备工作做好之后,换语言到其实是很简单的事情了。无非就是下面几个事情

  • 下载php7的语言包,解压到服务器的开发目录下
  • 调整php7的php.ini配置文件(error_log, debug_mode, ext_dir都进行对应调整)
  • 切换php的系统路径与应用程序路径
  • 保证所需的php拓展正常安装与运行

系统路径:
如果是linux直接改对应的系统配置文件即可,win则是在 此电脑-高级设置-添加环境变量 里面调整。

应用路径
Apache或者Nginx的直接改配置路径即可,对应路径参数改成最新下载下来的PHP7路径即可。
IIS则在对应的网站里,打开 IIS管理器 - 处理程序映射 ,找到原本的 FastCgiModule模块,点击右方的编辑,把里面的可执行文件(可选)(E): 的文件路径,改成最新下载下来的PHP7路径即可。

最后放上调整过的新代码,撤下旧版本代码时务必备份,完事大吉。

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP