解决WordPress无法显示主题列表的问题

本博客系统之前使用的是Typecho,本来已经足够使用了,但是由于Typecho团队转而重心集中经营SegmentFault上了,拖拖拉拉几年了系统一直没有更新,不过这也不能责怪人家团队。但是听说最近又再更新了,这是个不错的消息。

系统迁回Wordpress有一段日子了,距离上一篇博客也有些日子了。今天写点东西是迁回Wordpress的一点小问题的解决方法。

问题

安装Wordpress后,在后台主题管理界面中无法查看所有已经上传的主题列表,永远只能看到一个当前主题的一些信息。

分析

系统部署在linode的vps上,使用的服务器是lnmp的一键安装版本,最新为0.9。

目录访问权限肯定没有问题。

目测wordpress显示主体列表跟typecho获得主题列表的函数方法不一致。

猜想wordpress估计使用了类似文件夹扫描的方法来获得主体列表,类似java的fileList。

后经过查看php.ini,发现lnmp0.9版本的php配置了禁用了一些函数,其中就有scandir函数,

查阅php的函数说明:

scandir() 函数返回一个数组,其中包含指定路径中的文件和目录

解决

  1. 修改php.ini文件内容

    找到/usr/local/php/etc/php.ini文件。
    修改php.ini文件中的disable_functions,位于314行。
    将后面的禁用的函数列表中的scandir删除,并保存文件。

  2. 重启php-fpm或者调用lnmp重启

    使用/etc/init.d/php-fpm restart重启或使用lnmp restart重启。

备注

  • 本次问题出现在使用lnmp 0.9的版本中,如果非lnmp一键安装版本,可以先确认php是否禁用了scandir函数,如果没有禁用,请再确认文件夹权限问题。
  • 操作中需要注意,不要误删除了任何配置文件。