PHP手动从7.1升级到7.3.7

程门立学WordPress的后台有个插件是水煮鱼博客发布的,WPJAM BASIC,插件还是比较好用的。但最近可能插件升级了,一直有这么个提示在:There is a new version of WPJAM BASIC available, but it doesn’t work with your version of PHP.。原来是插件更新后,最低支持7.2版本的PHP了,而当前使用的是7.1版本,所以无情的拒绝了更新。当然7.3相对于7.1来说并没有十足的更新理由,相对5.6升级到7到而言。不过既然也是好久没有折腾了,就来更新下吧。

图1.wp插件更新的提示

本站使用的是一个面板程序,最高只能支持到7.1版本的PHP,那没办法,只能自己动手,手动来处理了。

一、下载PHP文件

PHP文件可以直接从PHP官网上下载得到,但是版本众多,而服务器是Windows Server的,所以还是要找一下PHP的文件才行。打开网站的页面,PHP For Windows: Binaries and sources Releases  https://windows.php.net/download#php-7.3

可以看到PHP7.3的版本分了TS、NTS、X64、X86的组合,而7.3的编译最低已经是VC15了。可以根据服务器的版本、HTTP服务软件来选择相应的版本下载。如果是高手的话可以自己下载源码进行编译的。

图2.PHP.net官网上的下载页面

我们在这里下载VC15 x64 Non Thread Safe 这个版本,按说apache服务器应该选择TS版的,但不知道为什么前期的已经是NTS了,所以就依葫芦画瓢,也用这个版本了。下载完成后,不要忘记校验一下hash值。

图3.计算下载文件SHA256值完全一致

二、部署到服务器

首先将当前的服务器上资源进行全量的打包备份。避免出现升级后出错无法挽救的情况下,还可以恢复到正常的状态。

将下载的文件解压缩后,整个文件夹打包复制到原服务器PHP所在的文件夹。多版本共存的话就单独一个文件夹,再使用面板来切换,如果只要当前版本的话,就全部覆盖掉。

三、测试新版

图4.替换后报错

重新打开网站,发现果然报错了,并没有预计中的那么顺利。报错的提示主要有:

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in

初步看了下,这是连接不上MySQL数据库的问题,简单查了下,说是PHP7版本就开始不支持php_mysql的dll扩展了,但是我本身是从7.1升级上来的啊,大版本都是7了,应该都是一个内核,为什么还连接不了数据库的。又找了下,说是因为没有链接php_mysqli.dll的原因,需要在php.ini文件中注释掉。然后打开php.ini文件,搜索却没有找到这个字段,那没办法,没有我们就直接加上去,大约在930行加入:

extension=php_mysqli.dll

保存文件后,重新刷新服务器,发现已经正常。使用phpinfo();可以看到mysqli的界面,说明已经正常。

图5.phpinfo得到的参数情况

并且可以将WPJAM BASIC升级到最新的3.6.6版了。

图6.升级wpjam插件到3.6.6