以前都是在ubuntu下安装svnmanager,很多问题都没出现,这次新机器来了后安装了一次,发现问题还蛮多的。
第一个问题就是创建svn库的问题,在页面上创建了,数据库里也有了,但是硬盘上就是没有相应的目录,svnmanager也不报错。看了看apache的错误日志有“’LANG’ 不是内部或外部命令,也不是可运行的程序或批处理文件”字样,一开始以为是我的配置问题,找了好久,包括命令行的路径什么的。是在没辙,只能去看程序,php没用过,但能看的大概,当然问题也找到了。在datamodule.php这个文件中,$ret = exec("LANG=".$lang.";$svnadmin_cmd --config-dir $svn_config_dir create $a_dir");
,这句话非常可疑,因为这里刚好也是执行一个Lang开头的命令行,而且根据我对svnadmin创建svn库的了解,实际上用svnadmin create [目录名]就行了,把这句改成$ret = exec("svnadmin create $a_dir");
,问题解决了。(LANG命令在linux系统中是设置当前默认的语言,windows下没用,所以在该文件中还存在另两个类似的命令也要改掉,只要把LANG=".$lang.";
去掉就行了)
第二个问题是删除svn库的时候,物理目录已经删除了,但是报错,然后数据库中还保存相应的信息,要进行第二次删除。其实问题跟第二次类似。$ret = exec("move /y $arg_repo_path $arg_trash_path");
,这句话根据作者的理解如果执行正常的话是没有返回值的,但是不同的系统这个返回值是不一样的。所以只能把它后面的一个判断删除,问题也解决了。
最后别忘了安装pear与VersionControl_SVN,这个是操作subversion的关键,但是这里的安装,如果仅仅是给svnmanager用的话也不用弄得很复杂,只要把这两个下载来的包,解压到svnmanager的安装目录下就行了。