最近服务器的phpmyadmin一直不正常,原以为配置错误,结果发现是前段时间修改disable_function引起的,
最新版本的phpMyAdmin-3.4.0-all-languages.zip的安装方法见我另外一篇文章:
http://hi.baidu.com/hx10/blog/item/090b80189208a6a34aedbcf9
逐步比较disable_function的参数发现,原来是因为opendir,readdir,dir,chdir这4个参数引起的
禁用opendir报错如下:
phpmyadmin就会出现如下错误
phpMyAdmin-ERROR:
Default
Theme
Theme
但是phpspy就不能列出其他虚拟主机的目录
官方解释:http://cn.php.net/manual/zh/function.opendir.php
opendir:打开目录句柄
加上readdir
phpmyadmin首页能打开,但是不能登陆,502
phpspy此时不能列出其他虚拟主机目录
官方解释:http://cn.php.net/manual/zh/function.readdir.php
readdir
最后总结出比较安全的php.ini的disable_functions如下(服务器没用到采集):
disable_functions
禁用这些函数,网站和phpmyadmin都正常,而且不能上传文件
利用webshell也不能查看服务器上的文件,不能删除或者修改
唯一的缺点:能够查看其他虚拟主机的目录,但是仅仅只能看看,做不了什么事情
如果服务器用到了采集,需要启用unlink和fopen,列表如下:
disable_functions
unlink官方解释为:http://cn.php.net/manual/zh/function.unlink.php
fopen官方解释为:http://cn.php.net/manual/zh/function.fopen.php
如果需要用到采集,需要启用这几个函数:
file_get_contents,fputs,fwrite,dir
禁用的函数列表为:
disable_functions
如果那位有更完美的解决办法,欢迎和我联系