当前位置: 首页 > 设计 > 正文
avatar

用lnmp一键安装包在阿里云服务器架了一个博客站,安装完WordPress之后,准备给博客换一个主题,但是在后台只显示一个主题,其他官方主题都不显示了。开始以为是文件夹权限问题,重新设置了下发现还是只显示一个主题,后来通过搜索发现原来是php.ini禁止了scandir函数。

用lnmp一键安装包在阿里云服务器架了一个博客站,安装完WordPress之后,准备给博客换一个主题,但是在后台只显示一个主题,其他官方主题都不显示了,刚开始以为是wordpress新版本的问题,不管安装什么主题都只显示一个,安装同一个提示安装的目录有存在。开始以为是文件夹权限问题,重新设置了下发现还是只显示一个主题,后来通过搜索发现原来是php.ini禁止了scandir函数。

翻看php手册,scandir() 函数是这样被定义的:“scandir() 函数返回一个数组,其中包含指定路径中的文件和目录”,wordpress可能居于这个函数去开发的,所以就只显示了一个主题。

由于我装的是lnmp的安装包,其中禁用了部分危险函数:“passthru, exec, system, chroot, scandir, chgrp, chown, shell_exec, proc_open, proc_get_status, ini_alter, ini_alter, ini_restore, dl, pfsockopen”,而scandir函数也在此列,所以这样问题的解决方法只能是将scandir从禁用函数剔除就可以了。

我们可以通过登录到winscp或是putty来修改/usr/local/php/etc下的php.ini文件,然后重启一下php进程“/etc/init.d/php-fpm restart”就可以了。

本文固定链接: http://www.weisay.com/blog/nginx-wordpress-scandir.html | 威言威语

nginx下WordPress只显示一个默认主题:目前有7 条评论

  1. avatar
    6楼
    佐仔 Google Chrome Windows

    个人博客,还是虚拟主机好,VPS难得折腾了。

    2014-10-25 01:05 [回复]
  2. avatar
    5楼
    牛犊网 Google Chrome Windows

    原来如此,感谢站长分享。

    2014-10-23 15:42 [回复]
  3. 我们一直都用面板 连一件包都没用过

    2014-10-20 00:28 [回复]
  4. avatar
    地板
    jacksuc Google Chrome Windows

    又在瞎折腾。! :grin:

    2014-10-08 17:31 [回复]
  5. avatar
    板凳
    luopang 桔子浏览器 Windows

    这问题我也遇到了,不过我解决的办法倒是很笨,直接去主题目录把除去默认主题以外的文件包删掉,然后重新安装主题,直接选择激活,就可以了。

    2014-09-29 07:32 [回复]
    • avatar
      今天没吃药 Google Chrome Windows

      楼上luopang的方法可以解决这个问题,我也用过!!

      2015-01-09 16:04 [回复]
  6. avatar
    沙发
    Eric_plus 猎豹浏览器 Windows

    默认主题不使用的话,还是禁用scandir()

    2014-09-28 21:32 [回复]

发表评论

question razz sad smile redface biggrin surprised eek confused cool lol mad rolleyes wink neutral cry

快捷键:Ctrl+Enter