解决 typecho 主机大巴搬家遇到的几个问题

原阿里云服务器快到期了,618在腾讯云新入了一台新加坡,开始折腾搬家。期间遇到几个小问题,一一得到解决作此记录,以供可能遇到相同的问题的朋友参考。

环境说明

Centos7.6.1810

LNMP1.6一键安装包(具体 Nginx1.16.0 / MySQL5.5.62 / PHP7.2.6)

遇到问题

1、Starting MySQL. ERROR! The server quit without updating PID file

第一个,搬家后 mysql 数据库无法启动的问题。由于主机大巴图方便,没有使用数据库备份工具而直接将 /usr/local/mysql/var/ 文件夹打包至新云服务器解压,重启 mysql 时,提示:

Starting MySQL. ERROR! The server quit without updating PID file

mysql-err.png

解决办法:

查看mysql错误日志,多次尝试重启发现问题出在 ib_logfile0 和 ib_logfile1 上,将原服务器打包来的这两个文件删除、重启,问题解决。

190719 11:00:17 [Note] Plugin 'FEDERATED' is disabled.
190719 11:00:17 InnoDB: The InnoDB memory heap is disabled
190719 11:00:17 InnoDB: Mutexes and rw_locks use GCC atomic builtins
190719 11:00:17 InnoDB: Compressed tables use zlib 1.2.11
190719 11:00:17 InnoDB: Using Linux native AIO
190719 11:00:17 InnoDB: Initializing buffer pool, size = 128.0M
190719 11:00:17 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file /usr/local/mysql/var/ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 33554432 bytes!
190719 11:00:17 [ERROR] Plugin 'InnoDB' init function returned error.
190719 11:00:17 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
190719 11:00:17 [ERROR] Unknown/unsupported storage engine: InnoDB
190719 11:00:17 [ERROR] Aborting

【注】此前也遇到过直接上传数据库由于文件权限不一致而无法启动mysql的情况,因此具体情况仍需要根据错误日志具体分析。若因权限导致mysql启动失败,可使用一下指令:

chown -R mysql /usr/local/mysql/var/

再逐一检查各数据库的具体文件权限。

2、typecho HTTP 500 错误

一般 PHP 程序出现500错误大概率是 PHP 版本原因,考虑到搬家从原 PHP5.6.36 版本切换至 PHP7.2.6,可能是 typecho 不支持 PHP7 的缘故,根据网上解决办法,需要将 Typecho 的数据库引擎由 mysql 修改为 pdo_mysql,具体修改方式为将 config.inc.php 文件中的:

$db = new Typecho_Db('Mysql', 'typecho_');

改为:

$db = new Typecho_Db('Pdo_Mysql', 'typecho_');

经测试,网站依然显示 HTTP 500 错误,于是又将php降级回 PHP5.6.36,问题依旧。

考虑主题、插件原因。开启PHP错误日志:

在 /usr/local/php/etc/php-fpm.conf 里设置,加上:

catch_workers_output = yes

错误信息会记录到 php-fpm.conf 里 error_log 设置的文件里。检查 error_log:

WARNING: [pool www] child 27032 said into stderr: "NOTICE: PHP message: PHP Fatal error:  Cannot use $this as parameter in 主题目录下/functions.php on line 5"

果然是主题的代码问题,将 $this 参数换一个名字即可。

猜您喜欢

发表评论

icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif