PHPCMS2008 故障解决几例
2012-05-31 00:42:22 来源:我爱运维网 评论:0 点击:
有个企业网站,3年前就开始运行于PHPCMS2008下面,很久未有更新(大约1年半),突然有需求要变更内容.管理员面临很大的挑战:1,该网站之前更换过...
有个企业网站,3年前就开始运行于PHPCMS2008下面,很久未有更新(大约1年半),突然有需求要变更内容.管理员面临很大的挑战:1,该网站之前更换过服务器硬件;2,数据库名做过变更;3,原来负责的网络管理员及技术人员有过变动.看下来,一系列困难或故障需要解决:
1,需要登录后台,但没有后台管理密码;
登录数据库,找到网站后台的数据库,查看表phpcms_admin,存在什么管理员帐号;然后将下面内容存为crackpw.php放在网站某个目录下:
<?php
include './include/common.inc.php';
$password = ''; //填入你想设的密码
$username = ''; //真入你上面找到的管理员用户名
$password = md5(PASSWORD_KEY.$password);
$db->query("UPDATE ".DB_PRE."member SET password = '$password' WHERE username = '$username'");
$db->query("UPDATE ".DB_PRE."member_cache SET password = '$password' WHERE username = '$username'");
echo 'ok';
?>
1,需要登录后台,但没有后台管理密码;
登录数据库,找到网站后台的数据库,查看表phpcms_admin,存在什么管理员帐号;然后将下面内容存为crackpw.php放在网站某个目录下:
<?php
include './include/common.inc.php';
$password = ''; //填入你想设的密码
$username = ''; //真入你上面找到的管理员用户名
$password = md5(PASSWORD_KEY.$password);
$db->query("UPDATE ".DB_PRE."member SET password = '$password' WHERE username = '$username'");
$db->query("UPDATE ".DB_PRE."member_cache SET password = '$password' WHERE username = '$username'");
echo 'ok';
?>
这样就将某个管理员帐号初始化你想要的密码.为安全起见,完成后,请删除crackpw.php文件,特别是要抹去文件中的密码与用户名信息.
2,登录不再提示密码错误,而且前台也显示登录成功,但后台网页总是回到"登录窗口",观察到url中的file=login,百思不得其解.只能查看admin.php:
看到有注释行:
//session_start();
终于圆满完成了任务,虽然有些曲折.
2,登录不再提示密码错误,而且前台也显示登录成功,但后台网页总是回到"登录窗口",观察到url中的file=login,百思不得其解.只能查看admin.php:
看到有注释行:
//session_start();
但不确定.按file=login含义先注释了下面这几行:
由于改到很少,这里就直接使用方法一解决了.elseif($file != 'login')
{
showmessage('error', '?mod=phpcms&file=login&forward='.urlencode(URL),1,1);
}
成功进了后台管理页面,不过发现"角色:"是空的.但一切均可以正常操作了,看来是绕过问题了.
后面再将上面注释打开,包括//session_start(),结果一切正常了.看样子是原来的管理员为确保后台安全,临时注释了session_start();防止异常登录尝试.
3,修改所需内容,重新发布页面.发现页面上所有的标签不再出现内容,直接呈现{tag_一级栏目}变量名.这下搞大了,不仅原来的内容都没有了,而且似乎不能回退.查看模板,发现都是正确的.判定问题可能出在模板调用数据库不正确,无法将内容填入.网上搜索很久,没有类似情况.联想到更换了数据库,可能读不到数据库.网络上终于搜索到一篇:
文中提到"这是因为标签的问题. phcpms2008的标签配置文件保存在模板文件夹里,路径是templates/你的模板风格文件夹/tag.inc.php和 templates/你的模板风格文件夹/phpcms/tag_config.inc.php
大家可以打开看看里面的内容." 如:
'sql' => 'select * from `phpcms_content` a,`phpcms_content_tag` k where a.contentid=k.contentid and a.status=99 and k.tag=\'$tag\' order by a.contentid desc',
这是由于更换数据库引起的,标签配置文件硬要读取旧数据库的表前缀,而这个表前缀在新系统里又不存在,于是问题产生了…….
解决方法有两个:
其一,在模板可视化下打开标签,不用修改任何东西直接保存一下就可以了,就是说,只要在你系统里打开标签另存一下就好了.系统自动修改了表前缀为你系统的;【简单但费时费力】
其二,批量替换, templates/你的模板风格文件夹/tag.inc.php 和 templates/你的模板风格文夹/phpcms/tag_config.inc.php等等,不局限于这两个,其他模块的以此类推.把里面的 phpcms_替换成新系统的表前缀.比如原系统是 phpcms_, 新系统的是pc08_,那么就用dw或者其他什么工具批量替换这个templates文件夹就可以了.
后面再将上面注释打开,包括//session_start(),结果一切正常了.看样子是原来的管理员为确保后台安全,临时注释了session_start();防止异常登录尝试.
3,修改所需内容,重新发布页面.发现页面上所有的标签不再出现内容,直接呈现{tag_一级栏目}变量名.这下搞大了,不仅原来的内容都没有了,而且似乎不能回退.查看模板,发现都是正确的.判定问题可能出在模板调用数据库不正确,无法将内容填入.网上搜索很久,没有类似情况.联想到更换了数据库,可能读不到数据库.网络上终于搜索到一篇:
phpcms2008更换模板出现无法更新问题
的文章.提到phpcms2008在更换了模板以后,更新页面时候出现无法更新,数据库报错的问题.果然如此.文中提到"这是因为标签的问题. phcpms2008的标签配置文件保存在模板文件夹里,路径是templates/你的模板风格文件夹/tag.inc.php和 templates/你的模板风格文件夹/phpcms/tag_config.inc.php
大家可以打开看看里面的内容." 如:
'sql' => 'select * from `phpcms_content` a,`phpcms_content_tag` k where a.contentid=k.contentid and a.status=99 and k.tag=\'$tag\' order by a.contentid desc',
这是由于更换数据库引起的,标签配置文件硬要读取旧数据库的表前缀,而这个表前缀在新系统里又不存在,于是问题产生了…….
解决方法有两个:
其一,在模板可视化下打开标签,不用修改任何东西直接保存一下就可以了,就是说,只要在你系统里打开标签另存一下就好了.系统自动修改了表前缀为你系统的;【简单但费时费力】
其二,批量替换, templates/你的模板风格文件夹/tag.inc.php 和 templates/你的模板风格文夹/phpcms/tag_config.inc.php等等,不局限于这两个,其他模块的以此类推.把里面的 phpcms_替换成新系统的表前缀.比如原系统是 phpcms_, 新系统的是pc08_,那么就用dw或者其他什么工具批量替换这个templates文件夹就可以了.
终于圆满完成了任务,虽然有些曲折.
相关热词搜索:PHPCMS2008 故障
分享到:
收藏
评论排行
- ·Windows(Win7)下用Xming...(92)
- ·使用jmx client监控activemq(20)
- ·Hive查询OOM分析(14)
- ·复杂网络架构导致的诡异...(8)
- ·使用 OpenStack 实现云...(7)
- ·影响Java EE性能的十大问题(6)
- ·云计算平台管理的三大利...(6)
- ·Mysql数据库复制延时分析(5)
- ·OpenStack Nova开发与测...(4)
- ·LTPP一键安装包1.2 发布(4)
- ·Linux下系统或服务排障的...(4)
- ·PHP发布5.4.4 和 5.3.1...(4)
- ·RSYSLOG搭建集中日志管理服务(4)
- ·转换程序源码的编码格式[...(3)
- ·Linux 的木马程式 Wirenet 出现(3)
- ·Nginx 发布1.2.1稳定版...(3)
- ·zend framework文件读取漏洞分析(3)
- ·Percona Playback 0.3 development release(3)
- ·运维业务与CMDB集成关系一例(3)
- ·应该知道的Linux技巧(3)