按照GForge5.7安装目录中所提供的安装说明,在全新的CentOS 5上进行配置,可谓一马平川,约10分钟即可完成架设。新建一个测试项目,单击SVN选项卡提示“The SCM repository for this project hasn't been created yet. It will be created in the next few minutes.”
通常,等待数分钟,GForge就会为新建项目建立SVN目录。于是,我睡了,一夜无梦。
第二天早上起床后,把新建的项目打开,SVN目录仍然未曾建立。考虑我曾在执行第一个安装脚本install-gforge-1-deps.php时,出现了死循环,屏幕不断刷新字母“l”,我用Ctrl+Z强制退出,可能造成了安装脚本未完全执行的情况。
我根据安装脚本中的顺序进行检查:
#which svn
得到结果/usr/bin/svn,说明svn安装是成功的。
#ls /opt/gforge5/plugins/scmsvn/cronjobs
结果中存在create_svn.php等脚本,说明GForge插件安装也是成功的。
#crontab -l
结果显示为空,那么,可以断定是GForge的计划任务脚本未曾加载。为什么我能够这样肯定,先放下不说,看一下解决方法。
#crontab /opt/gforge5/crontab.in
数分钟后,前面所建立的项目SVN目录生成。下面我简单介绍一下GForge原理,由于我不熟悉PHP语法,因此也只能算是倚着骡子画马,讲个大概。
GForge的项目建立后,会将执行send_notification_queue.php(顾名思义,发送通知的队列)、cron15.php(看了代码可以知道,是用于生成SVN目录和邮件列表的脚本)和crondaily.php(估摸着是生成日志统计的脚本)这三个脚本的计划任务加载到crontab程序中。该计划任务的模板保存于/opt/gforge5/crontab.in文件内。并非是由于我执行安装脚本时遇到死循环,而是安装脚本中本身就忘了这茬。所以必须手动将模板加载到crontab文件中。