ASP转PHP手记
打算将动易网站管理系统移植到PHP环境中,寻寻觅觅了很多PHP内容管理网站,发现网上有动易转PHPCMS的代码,所以就拿定注意用PHPCMS的在google上找到一转换程序,动手做来还成功了,现将此次转换的经验与教训总结如下:
1.在http://www.otand.com/html/php/cms/20080605/2852.html下载完美动易2006 Sp6 SiteWeaver CMS6.5 Access MSSQL转 PHPCMS 2007 SP6程序解压缩备用,请不要下载PHPCMS官网的转换程序,因其有很多错误,还是完美的好。
2.先在windows下调试,求方便直接下载的PHPCMS集成包, http://soft.phpcms.cn/2008/0116/soft_138.html,一键安装后直接可以用。
(后在linux下证实,直接将MYSQL数据库复制过去是可行的)
将完美转换程序解压后,找到里面的config.php,因我以前用的是ACCESS数据库,所以这里将ACCESS以外的MSSQL全部注释掉,例如:
// 访问 访问数据库类型 数据库类型支持Access,MsSQL 请选择数据库类型并认真填写下列信息
$_CONFIG['db_type'] = 'Access';
//$_CONFIG['db_type'] = 'MsSQL';
// 访问 MsSQL 的主机名,如果是本机为localhost
//$_CONFIG['db_sql_host'] = 'localhost';
// 访问 MsSQL 的数据库名
//$_CONFIG['db_sql_name'] = 'powereasy';
// 访问 MsSQL 的用户名
//$_CONFIG['db_sql_user'] = 'powereasy';
// 访问 MsSQL 的密码
//$_CONFIG['db_sql_pass'] = 'powereasy5598';
//是否使用持久连接
//$_CONFIG['db_pconnect'] = '1';
然后将ACCESS数据库放在D盘根目录下,例如:
// 访问 access 数据库文件名,绝对地址: D:\改成D:/
$_CONFIG['access_mdb'] = 'd:/danweishujuku.mdb';
//红字地方是自己数据库名称
// 访问 access 数据库文件的用户名,一般默认为空
$_CONFIG['access_uid'] = '';
// 访问 access 数据库文件的密码,一般默认为空
$_CONFIG['access_pwd'] = '';
// PE 数据表前缀 一般不需要修改
$_CONFIG['access_tablepre'] = 'PE_';
// 每次需要转换的数据量,如果您的服务器比较慢,请将这个值调小
$CONFIG['rpp'] = '1000';
?>
仅仅更改这两项。
然后将整个解压后的包放在网站根目录下,我这里是phproot所以直接放PHProot下即可。
比较笨的我,刚开始是这么做的,人家readme上是这么写的“将本程序解压到PHPCMS根目录”我呢,没有把一整包放在根目录下,而是把一堆文件拷到了PHPROOT下,这样肯定会覆盖原有的INDEX.PHP啊,我又把原index.php做了个备份,然后运行之,然后会有错误提示若干:
Warning: include_once(../include/common.inc.php) [function.include-once]: failed to open stream: No such file or directory in D:\PC_webserver\phproot\index.php on line 14
Warning: include_once() [function.include]: Failed opening '../include/common.inc.php' for inclusion (include_path='.;C:\php5\pear') in D:\PC_webserver\phproot\index.php on line 14
Warning: include_once(PHPCMS_ROOT/config.inc.php) [function.include-once]: failed to open stream: No such file or directory in D:\PC_webserver\phproot\index.php on line 15
Warning: include_once() [function.include]: Failed opening 'PHPCMS_ROOT/config.inc.php' for inclusion (include_path='.;C:\php5\pear') in D:\PC_webserver\phproot\index.php on line 15
Warning: include_once(PHPCMS_ROOT/include/cache.func.php) [function.include-once]: failed to open stream: No such file or directory in D:\PC_webserver\phproot\index.php on line 16
Warning: include_once() [function.include]: Failed opening 'PHPCMS_ROOT/include/cache.func.php' for inclusion (include_path='.;C:\php5\pear') in D:\PC_webserver\phproot\index.php on line 16
Warning: include_once(PHPCMS_ROOT/admin/include/global.func.php) [function.include-once]: failed to open stream: No such file or directory in D:\PC_webserver\phproot\index.php on line 17
Warning: include_once() [function.include]: Failed opening 'PHPCMS_ROOT/admin/include/global.func.php' for inclusion (include_path='.;C:\php5\pear') in D:\PC_webserver\phproot\index.php on line 17
Access Denied
这些东西说明找不到某个文件,看了转换程序的index.php原来在这里
第14行的include_once(PHPCMS."/include/common.inc.php");
而PHPCMS.的定义是“..”这样的话直接就出了phproot这个目录了,所以会提示找不到文件
有两个方法可以解决:
1:将index.php文件的include_once(PHPCMS."/include/common.inc.php");的(PHPCMS."/include/common.inc.php");改为include_once("include/common.inc.php");
然后再运行http://127.0.0.1/index.php
2:解压转换程序后更改config.php文件,然后将整个包拷到网站根目录下例如:
http://127.0.0.1/完美动易2006 Sp6 SW6.5 Access MSSQL转 PHPCMS 2007 SP6 /index.php
第二种是最简单的,定义好自己数据库后运行下即可,省去了寻找问题的时间。
转换完后登陆后台,此时切记切记要更新全部缓存否则当管理频道--重建目录时会提示如下错误:
Warning: require(D:/PC_webserver/phproot/languages//phpcms.lang.php) [function.require]: failed to open stream: No such file or directory in D:\PC_webserver\phproot\include\common.inc.php on line 28
Fatal error: require() [function.require]: Failed opening required 'D:/PC_webserver/phproot/languages//phpcms.lang.php' (include_path='.;C:\php5\pear') in D:\PC_webserver\phproot\include\common.inc.php on line 28
非常要命的错误啊!!!!出现后刷新页面整个后台都无法登陆了!!!
刷新后的错误提示:
Warning: require(D:/PC_webserver/phproot/languages//phpcms.lang.php) [function.require]: failed to open stream: No such file or directory in D:\PC_webserver\phproot\include\common.inc.php on line 28
Fatal error: require() [function.require]: Failed opening required 'D:/PC_webserver/phproot/languages//phpcms.lang.php' (include_path='.;C:\php5\pear') in D:\PC_webserver\phproot\include\common.inc.php on line 28
此时只有重新安装PHPCMS了!!
再强调一下:转换完后登陆后台首先是更新缓存!!!!!