最近买了一个vps,装了lnmp一键安装包,架了一个博客站,本来用的挺爽的,某天突然想给那个博客站换一个主题,在后台只显示一个主题其他主题都不知道跑哪去了,刚开始以为是wordpress新版本的问题,不管安装什么主题都只显示一个,安装同一个提示安装的目录有存在,这可真够纳闷的.
后来在wordpress论坛上找到了答案:原来是php.ini禁止了scandir函数. 翻看php手册,scandir() 函数是这样被定义的:"scandir() 函数返回一个数组,其中包含指定路径中的文件和目录",wordpress可能居于这个函数去开发的,所以就只显示了一个主题. 由于我装的是lnmp0.9的安装包,其中禁用了部分危险函数:
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
就可以了.