SVN + Trac + Apache 完整安装攻略
SVN + Trac + Apache 完整安装攻略,而原本在 SVN 所欠缺的用户及权限管理接口,也都可以由 Trac 的外挂程式来搞定,可谓两全其美。
本文章适合熟悉 SVN 但没用个任何线上专案管理的人做为参考。
请注意,本人使用的 Linux 是 CentOS 4.x,RHEL 4.x 也适用。
SVN + Trac + Apache 完整安装攻略,而原本在 SVN 所欠缺的用户及权限管理接口,也都可以由 Trac 的外挂程式来搞定,可谓两全其美。
本文章适合熟悉 SVN 但没用个任何线上专案管理的人做为参考。
请注意,本人使用的 Linux 是 CentOS 4.x,RHEL 4.x 也适用。
正规表示式 (Regular Expression, 简写 regex、regexp 或 RE) 是用于字串比对的小型语言,又称正则表达式、正规表示法、规则运算式、常规表示法 (Wiki)。
很多程式语言和软件都会附加“正规表示式”这项功能。在字串的处理上,针对大量、重复、有固定逻辑的文字,正规表示式是非常强而有力的工具! 即便不是程式设计师,在可以在运用到正规表示式的场合 (例如: 文字编辑器),能帮你节省许多文字处理的时间。但是不同的软件所附加的正规表示式可能略有差异,这部份就要稍加留意。
不过在初学者的眼中,正规表示式却又像是天书一样的难以理解。以下文章针对正规表示式的相关语法做解说,你可到线上测试工具,以实际的例子去做测试。
我看过太多人都把四舍五入的问题看成是“字串”来处理,实际上,如果把四舍五入做为“数学”来解的话,程式大概只要几行即可解决。
以四舍五入取整数的例子来讲,其原理就是: 任何数值 +0.5 再取整数。
但要注意的是,当四舍五入遇到“负数”时就会变成“五舍六入”,这是因为中间数要往数值大的那边进位的缘故。所以加上了负数的处理,程式至少又多了一行:
Read more
在编辑网页时,如果要让某个超连结 (Link) 开启在新的浏览器视窗,我们可以在超连结加上“href="_blank"”属性,但如果超连结很多,要一个一个加上去毕竟麻烦!!
以下的程式码可以帮你把网页内所有针对“外部”的超连结自动设为在新视窗开启。
<script type="text/javascript">
function parseLink(){
var tagA = document.getElementsByTagName( "a" );
re = new RegExp( "^(http://" + document.domain + ")|(javascript:)", "i" );
for( var i=0; i < tagA.length; i++ ){
if( !tagA[i].href.match( re ) ){ tagA[i].target = "_blank"; }
}
}
</script>
parseLink();
Ex:
<body onload="parseLink();">
如果你的网站是用 WordPress 架设,可直接在控制台搜寻并安装“Open external links in a new window”这个外挂程式 (版本: 1.3.1 作者: Kristian Risager Larsen),这样就不用添加任何程式码了。
另外需注意,如果本外挂程式与其它像 LightBox、FancyBox...之类的图片灯箱特效的程式一起使用,有可能会造成同时显示灯箱特效,又同时将图片开启于新视窗!!
google-code-prettify 是一支不错的程式码高亮度显示程式,特点为:
缺点为:
<link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' type='text/css' rel='stylesheet' /> <script type='text/javascript' src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js'></script>
(因为 "偷吃步" 的关系,程式直接连到 google-code-prettify 的 SVN 上,你可以视情况下载回来放到自己的服务器)
prettyPrint();
<pre class="prettyprint"> 程式码 </pre>
Subversion (简称 SVN) 是目前最热门的版本控制套件,因为语法与 CVS 相近,又是改良自 CVS,几乎所有平台的 OS 都有支援,目前正快速地进占版本控制的霸主地位。以下介绍 Subversion 在 CentOS 4.x 或 RHEL 4.x 下的安装步骤。
安装步骤:
rpm -e subversion
rpm -U apr-x.x.x-x.i386.rpm rpm -U apr-util-x.x.x-x.i386.rpm rpm -ivh subversion-x.x.x-x.i386.rpm rpm -ivh mod_dav_svn-x.x.x-x.i386.rpm rpm -ivh subversion-perl-x.x.x.x.i386.rpm rpm -ivh subversion-tools-x.x.x-x.i386.rpm
使用 “SVN+SSH” 的存取方式就是直接使用主机上的用户帐号做存取。而你所要被用户存取的档案库其实就是一个子目录,因此要存取的用户必须有可以读取及写入该目录的权限。
语法:
svn+ssh://帐号@主机名称/档案库绝对路径
范例:
svn+ssh://[email protected]/var/svn/repositories
其中 user1 必须要在 192.168.1.1 这台主机上有 [/var/svn/repositories] 目录的读取及执行权限 (建议设为群组)
网页主机需安装有 “dav_svn_module” 模组,在 httpp.conf 内设定:
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <location> DAV svn #设定 SVN 储存库的根目录 SVNParentPath /var/svn #设定 SVN 储存库的目录 #SVNPath /var/svn/repositories Satisfy Any Require valid-user AuthType Basic AuthName "SVN Repository" #用户认证的帐号/密码档 (使用 htpasswd 建立) AuthUserFile /etc/svn/svn_htusers #用户存取权限设定档 AuthzSVNAccessFile /etc/svn/svn_access </location>
use CGI qw/:standard/; my $CGI = CGI->new();
@param_name = $CGI->param();
$value = $CGI->param( "param_name" );
%param = $CGI->Vars;
$url_escape = $CGI->escape( $url )
$charset = $CGI->charset();
print $CGI->header( -charset=>"utf-8", -expires=>"-1d" );
![]()
我们解决了什么问题?我们创造了什么价值?
近期回响