A-A+

WordPress升级PHP7

2019年06月09日 站点更新, 默认 评论 1 条 阅读 2,661 次

WordPress已经不让我升级了,因为这个站点之前一直是基于PHP5的,所以近几周总在琢磨着将站点的PHP升级,做了一些准备之后,又恰逢端午,于是放开手开始了。

网络上一搜一大堆,不过都具有相同的开始,那就是下载PHP最新版本,然后执行编译。

去往 http://php.net/downloads.php下载最新的版本,上传至服务器,使用命令解压:

tar -zxvf php-x.x.x.tar.gz

然后进入解压后的文件夹内,执行:

./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache/bin/apxs --with-gd  --with-mysqli --with-pdo-mysql --with-pdo-sqlite --with-zlib --enable-fpm --enable-mbstring --enable-sockets --disable-fileinfo

上面这个命令是我最后试出来,最开始使用的都是网上通篇一律的教程,结果各种失败,要更新各种工具或者包,实在是受不了。最后,先用

./configure --prefix=/usr/local/php7 --enable-fpm 

装了个最简版本。再排除报错,基本都是升级相关的工具和包,这些升级按照网上那些教程来即可。

我这里使用php7,是因为之前的php5已经占用了文件夹“php”,所以为了并存,新创建了一个文件夹。

接着继续在此文件夹下执行“make”命令进行编译,然后再执行“make install”。最开始我执行的是“make & make install”,但是死活过不去,libtool总是各种报错,虽然网络上有解决办法,但是执行“make clean”一点效果都没有。

编译完毕后,更改Apache的httpd.cnf,修改为如下方式:

#LoadModule php5_module        modules/libphp5.so
LoadModule php7_module        modules/libphp7.so

此时,发现没有libphp7.so,这时候就安装了:

yum install httpd-devel

并且,在编译PHP时增加了--with-apxs2参数。

然后重启Apache,访问站点首页,直接提示:您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。

然后为了解决这个问题,前后折腾了数个小时,把网络上的方法试了个遍(如何使用旧版本Mysql支持的)。后来想了想,Wordpress不会傻傻的还用已经废弃的Mysql连接,肯定会使用新的mysqli,于是在编译时又增加了一堆参数:

--with-gd  --with-mysqli --with-pdo-mysql --with-pdo-sqlite

但是,还是报错,只是报错不一样了,会报“无法连接数据库”。于是,做了一个PHP的测试文件,发现确实连接不上,但是Mysql服务是正常的,使用工具也能连接上,百思不得其解,折腾来折腾去,发现只需要将“localhost”改为“127.0.0.1”就能连上。

此时,已经头昏脑涨,懒的想为什么了,先跑起来再说,遂改之,终于见到了熟悉的首页,顿时泪奔。

首页已经能够正常显示了,但是管理员界面仍旧有问题,于是又增加了编译参数:

--with-zlib

至此,整个站点终于升级完成。

主要注意的是:

--disable-fileinfo这个参数是为了防止内存不够的,毕竟我这个云机还是低配版的。

一些旧的模板使用了已经被废除的函数,还需要按照报错提示更新一下,这就是后话了。

我预计此工作将耗费3个小时,结果耗费了8个小时,还差点失败。本来我已经做了一个提示页了,打算慢慢修复了,但是结果还可以吧。

觉的不错?可以关注我的公众号↑↑↑

1 条留言  访客:0 条  博主:0 条

  1. 哼哼的泰迪熊

    增加–with-curl,以便能够支持版本和插件更新。

给我留言

Copyright © 字痕随行 保留所有权利.   Theme  Ality

用户登录

分享到: