WordPress 升级php踩坑日志

wordpress收到了php升级提醒,由于操作系统比较旧,官方源并未提供php7.4版本,从网上搜了好多教程,一步步做下来,还是遇到了两个报错“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展”、“此站点遇到了致命错误。”,心情顿时奔溃。

多个教程加上踩坑经历整理出安装教程如下

第 0 步:禁用旧版本

a2dismod php7.0
service apache2 restart 

注意是 restart 不是start。第一次安装由于没有注意重启导致安装后找不到mysql模块

第 1 步:添加 PHP PPA 存储库

我们将使用 PPA 存储库,其中包含最新的 PHP 构建包。但要先安装依赖包。

sudo apt update
sudo apt -y install software-properties-common

添加存储库:

sudo add-apt-repository ppa:sergey-dryabzhinsky/php74
sudo add-apt-repository ppa:sergey-dryabzhinsky/php7-modules
sudo add-apt-repository ppa:sergey-dryabzhinsky/backports
sudo add-apt-repository ppa:sergey-dryabzhinsky/packages

步骤2:在Ubuntu 18.04/16.04上安装PHP 7.4

使用以下命令在 Ubuntu 上安装 PHP 7.4:

sudo apt -y install php7.4

检查安装的版本:

$ php -v
PHP 7.4.33-SergeyD/6.1 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

使用以下命令安装其他软件包:

sudo apt install php74p-mod-{mysqlnd,bcmath,bz2,gd,intl,mbstring,zip,json} 

注意应该是mysqlnd,mysql不行,许多文档写的是mysql

与Apache相关的PHP配置存储在/etc/php74/apache2/php.ini

安装完确认PHP版本:

$ php –version
PHP 7.4.33-SergeyD/6.1 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

将 PHP 7.4 与 Apache 结合使用

安装 Apache PHP 模块。

sudo apt install libapache2-mod-php74

安装完执行

a2enmod php74 && service apache2 restart 重要

问题解决:

1、安装完成后启动apache 访问wordpress 报“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展

php -m 没有mysqli mysqlnd的相关内容

~# php -m
[PHP Modules]
bcmath
bz2
Core
ctype
date
filter
gd
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Reflection
session
shmop
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
zip
zlib
[Zend Modules]

或者在wordpress 根目录创建phpinfo.php 文件

<? php phpinfo(); ?>

浏览器访问查看是否有mysql模块

按上面的步骤重装了N遍还是找不到mysql模块,考虑可能是卸载不干净,然后使用彻底删除(见彻底删除php

最后找到原因竟然是由于没有service apache2 restart导致

2、解决mysql后报此站点遇到了致命错误。

开启调试模式

一、开启 WP Debug 模式访问主页显示错误详情Call to undefined function json_decode()

开启 DEBUG 模式显示详细的错误信息。

打开 WordPress 配置文件 wp-config.php,将 WP_DEBUG 这一行修改为如下代码即可:

// 开启WP_DEBUG模式

define( ‘WP_DEBUG’, true);

// 开启DEBUG日志,一定要记得关闭这个日志功能并清理这个日志文件哦,产生的日志文件在: /wp-content/debug.log

define( ‘WP_DEBUG_LOG’, true);

// 显示errors and warnings

define( ‘WP_DEBUG_DISPLAY’, true);

@ini_set( ‘display_errors’, ‘On’);

调试好后,请千万记得关闭 DEBUG 模式,即将上述内容改回:

define( ‘WP_DEBUG’, false);

二、开启json

修改/etc/php74/apache2/php.ini

追加 extension=json

然后重启apache2,正常访问


Ubuntu彻底删除PHP7.0

一、删除php的相关包及配置

sudo apt-get autoremove php7.0* 注意修改为实际要删除版本

二、删除关联

sudo find /etc -name “*php7.0*” |xargs  rm -rf 

三、清除dept列表

sudo apt purge `dpkg -l | grep php7.0 | awk ‘{print $2}’ |tr “\n” ” “`

四、检查是否卸载干净(无返回就是卸载完成)

 dpkg -l | grep php7.0

WordPress 添加备案号

我在SAE上面部署了我自己的wordpress

wordpress是一个开源的博客系统,可以到 http://www.wordpress.org 下载源代码,直接部署就可以使用,非常方便。Google最先推出了Google App Engine服务,这是一个非常酷的服务,提供了免费的主机服务。Google支持java和python。Sina模仿谷歌也推出了Sina App Engine服务(新浪还处于研究阶段,还不太稳定),sina使用的是php架构。本人认为新浪有一点做的比谷歌好,就是新浪做了一些模板性质的应用,只要你点击一下鼠标,即可完成部署,这对于像我这种零基础的真是个好消息。新浪做了一些个性化的应用包括针对SAE调整的wordpress、Teamtoy、微博Oauth、iSaid(我研究了半天,还是乱七八糟的错误)。

wordpress的确是一个非常的博客系统,过去只是用现成的,还没有深刻的感受。部署过程十分简单,填写一些个人信息,就可以完成。通过新浪的MYSQL服务可以非常方便的管理。