2010年10月29日

Flash获取当前文件名、路径名

Flash获取当前文件名、路径名

其实这个功能没有什么大用,很简单;只是最近在做一些课件时,并不知道这节课将来属于某个年级,即便知道,现在的教材这么混杂,也有可能更换。

为了方便课件使用,我决定,用目录与文件名来设定是哪节课,如课件放在“\小学\语文\3年级\上册”目录下时,打开课件,会自动显示“小学语文三年级上册”;课件的文件名称写为“12.春.swf”,则打开课件时,课堂标题会显示为“第十二课 《春》”。

实现如上效果,无法是判断课件所处的路径与文件名,并将数字转到汉字就行了。

如下是一个完整的类。

class FileName extends MovieClip {
//构造方法
function FileName() {
}
//获取文件路径
function getPath():String {
   var filePath:String = _root._url;  
   return filePath.substring(0, filePath.lastIndexOf("/"));
}
//获取当前文件名
function getFileName():String {
   var filePath:String = _root._url;
   return filePath.substring(filePath.lastIndexOf("/")+1, filePath.length);
}
//获取课程名称
function getCaseName():String {
   //取出文件名
   var fileName:String = this.getFileName();
   //取出课程名称                           
   if (fileName.indexOf(".")>-1) {
    var tName = fileName.substring(fileName.indexOf(".")+1, fileName.lastIndexOf("."));
    return unescape(tName);
   }
   return "";
}
//获取课程编号,即第几节课
function getCaseNumber():Number {
   //取出文件名
   var fileName:String = this.getFileName();
   //取出课程编号
   if (fileName.indexOf(".")>-1) {
    var tNum = fileName.substring(0, fileName.indexOf("."));
    var caseNum = Number(tNum);
    if (isNaN(caseNum)) {
     caseNum = 100;
    }
    return caseNum;
   }
   return 0;
}
//获取课程中文编号,即第几节课,如第十节,第二十一节;
function getCaseChineseNumber(num):String {
   var caseNum = num;
   //中文课程编号
   var chinaNum:String;
   var arrNum:Array = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "百");
   if (caseNum<=10) {
    //个位数
    chinaNum = arrNum[caseNum];
   } else {
    //取十位
    var tNum = Math.floor(caseNum/10);
    if (caseNum%10 == 0) {
     //十位整数,如20,30,50
     chinaNum = arrNum[tNum]+"十";
    } else {
     if (caseNum>10 && caseNum<20) {
      //十至20
      tNum = caseNum-tNum*10;
      chinaNum = "十"+arrNum[tNum];
     } else {
      chinaNum = arrNum[tNum];
      chinaNum += arrNum[10];
      //取个位
      tNum = caseNum-tNum*10;
      chinaNum += arrNum[tNum];
     }
    }
   }
   return chinaNum;
}
//获取科目
function getSubject() {
   var filePath:String = this.getPath();
   //去除上下册
   filePath = filePath.substring(0, filePath.lastIndexOf("/"));
   //去除年级
   filePath = filePath.substring(0, filePath.lastIndexOf("/"));
   return filePath.substring(filePath.lastIndexOf("/")+1, filePath.length);
}
//获取年级
function getLevel() {
   var filePath:String = this.getPath();
   //去除上下册
   filePath = filePath.substring(0, filePath.lastIndexOf("/"));
   return filePath.substring(filePath.lastIndexOf("/")+1, filePath.length);
}
//获取上下册
function getBook() {
   var filePath:String = this.getPath();
   return filePath.substring(filePath.lastIndexOf("/")+1, filePath.length);
}
//获取当前课件的名称,并返回“第N课 (课程名)”
public function getCaseTitle() {
   //中文课程编号
   var chinaNum:String = this.getCaseChineseNumber(this.getCaseNumber());
   //课程名称
   var caseName:String = this.getCaseName();
   caseName = "第"+chinaNum+"课 \n《"+caseName+"》";
   caseName = unescape(caseName);
   return caseName;
}
//获取当前课件的主标题,如“小学语文一年级上册”
public function getTitle():String {
   var title = this.getSubject();
   var level = this.getLevel();
   var book = this.getBook();
   //
   if (level.length>0) {
    var t = level.substring(0, 1);
    level = this.getCaseChineseNumber(Number(t))+level.substring(1);
   }
   var reTitle = title+level+book;
   if (reTitle == "" || reTitle.length<1||reTitle.indexOf("%")>-1) {
    return "该课件存放位置错误!";
   }
   return reTitle;
}
}


2010年10月24日

IIS 6 的 PHP 最佳配置方法

 IIS 6 的 PHP 最佳配置方法

作者:andot 时间: 2005-12-27 文档类型:原创 来自:CoolCode.CN

虽然 LAMP 组合很不错,但是如果想要架设一台同时支持 PHP、ASP、ASP.NET、JSP、Perl 的 Web 虚拟主机服务器,还是用 Windows 2003 的 IIS 6 最好。网上有很多介绍在 IIS 6 上配置 PHP 的文章,但是那些方法不是性能不好,就是升级麻烦。下面的方法可以让你在第一次配置好后,能够非常方便的进行升级。

这里所说的升级,是指从某个 php4 版本升级到另一个 php4 版本,或者从某个 php5 版本升级到另一个 php5 版本,而不是指从 php4 升级到 php5。

准备:

1、一台安装好的 Windows 2003 服务器,并且已经安装了 IIS 6。

2、下载 windows 版的 PHP 二进制压缩包

安装:

解压缩 PHP 二进制压缩包到 C:\php 目录下(这里假设 C: 盘是系统盘,即安装了Windows 系统的盘,如果系统盘是 D: 盘,则解压缩到 D:\php 目录下,以此类推,下同)。

然后打开“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面增加下面的路径地址:

C:\php;C:\php\dlls;C:\php\extensions;C:\php\sapi;

将 php.ini-dist 或 php.ini-recommended 复制到 C:\Windows 目录下,并改名为 php.ini,一般正式发布网站的服务器用 php.ini-dist,而作为调试用的服务器用 php.ini-recommended 更好。当然一般情况下,这个 php.ini 还是需要根据实际情况来修改的。

下面来介绍一下几个必要的修改选项:

extension_dir = "C:\php\extensions"

这个是 PHP 扩展所放置的目录,请确保跟你实际安装的目录相同。 

extension=php_mbstring.dll
;extension=php_big_int.dll
extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_db.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_domxml.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_hyperwave.dll
extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_java.dll
extension=php_ldap.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
extension=php_msql.dll
;extension=php_oci8.dll
extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
extension=php_pgsql.dll
;extension=php_printer.dll
extension=php_shmop.dll
;extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xslt.dll
extension=php_yaz.dll
extension=php_zip.dll

上面这些,开头没有加分号的是打开的扩展,加了分号的是没有打开的扩展。上面的设置包含了在 Windows 2003 上默认安装情况下可以打开所有扩展(这里列出的是 php 4 的)。

session.save_path = b:\sessions

这个是 session 文件默认保存的目录,这个目录必须是一个存在的目录,不然默认的 session 功能会无效。我这里设置的是一个 ramdisk 上的一个目录。将 session.save_path 设置在 ramdisk 上可以加快 session 处理的速度。如果你没有安装 ramdisk,你可以把它指定到其他盘的任何一个目录下,如 C:\sessions 目录、C:\Windows\Temp 目录等。

OK,基本工作作完了,现在该配置 IIS 了。

打开“ Internet 信息服务(IIS)管理器”,在“ Web 服务扩展”里,选择“添加一个新的 Web 服务扩展”,扩展名可填写“PHP ISAPI 扩展”,要求的文件选择:C:\php\sapi\php4isapi.dll(如果安装的是 PHP5,则此处是 C:\php\sapi\php5isapi.dll,下同),并设置扩展状态为允许。

打开“网站”->“属性”->“ISAPI 筛选器”->“添加”,筛选器名称可填写“PHP”,可执行文件仍然选择 C:\php\sapi\php4isapi.dll。

打开“网站”->“属性”->“主目录”->“应用程序设置”->“配置”->“应用程序扩展”->“添加”,可执行文件还是选择 C:\php\sapi\php4isapi.dll。扩展名填写“.php”,动作限制为“HEAD,GET,POST”。

打开“网站”->“属性”->“文档”->“启用默认内容文档”->“添加”,可以将 index.php 添加为默认内容文档。

然后选择“服务器机器名”->“所有任务”->“重新启动 IIS”来重启 IIS。

测试

在默认网站发布目录下,建立一个测试页面:

下载:phptest.php

<?php
    phpinfo();
?>

如果打开这个页面能够看到 php 安装配置信息,就算是安装成功了。

如果想要更优化的执行 php 程序,可以安装 ZendOptimizer-2.6.0-Windows-i386.exe ,这个东西安装非常简单,这里就不介绍了。

升级

现在升级就非常简单了。只需要将新版本的 PHP 二进制压缩包下载下来,将原来的 C:\php 目录删除,将新版本解压缩到 C:\php 目录中,然后重新启动一下 IIS 就可以了。不需要修改任何配置,也不需要往 System32 目录中复制任何文件。是不是很方便啊?



2010年10月20日

Subversion和TortoiseSVN如何在Windows下进行构建SVN版本控制



    本文介绍一下如何在Windows下进行Subversion和TortoiseSVN构建SVN版本控制,希望对你能有所启示 。


    Subversion已经是一个热门话题,下面介绍一下Windows下Subversion和TortoiseSVN构建SVN版本控制 问题。

    首先看一些基础知识: Subversion是架设一个SVN server 必要的工具,自己必须手动配置Subversion 脚本或者执行命令行命令.最后通过命令行输入访问 svn server. 当然这是没有TortoiseSVN前的时代.TortoiseSVN是Subversion一个客户端访问工具,灵活的运用TortoiseSVN 可以最大化的减少配置Subversion   烦琐的命令行 参数输入.

    下面看一下Windows下Subversion和TortoiseSVN构建SVN版本控制 的具体步骤:

    1.下载Subversion的window安装版本svn-1.4.6-setup.exe

    http://subversion.tigris.org/

    http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100

    2.下载TortoiseSVN的TortoiseSVN-1.5.2.13595-win32-svn-1.5.1.msi版本

    http://tortoisesvn.net/

    http://tortoisesvn.net/downloads

    3.安装Subversion

    双击svn-1.4.6-setup.exe,一路next完成安装。设置环境变量,将subversion对bin设置到path中。如:D:ProgramFilesSubversionbin

    4.安装TortoiseSVN

    双击TortoiseSVN-1.5.2.13595-win32-svn-1.5.1.msi,一路next完成安装。

    5.创建svn容器Repository

    在硬盘上任意位置创建一文件夹,如D:svnRepository,在文件夹上右键TortoiseSVN->Createrepositoryhere创建成功后将在D:svnRepository下生成一系列文件。

    6.配置容器的访问权限

    在容器的目录下D:svnRepository的conf中,用记事本打开svnserve.conf文件,找到

    #anon-access=read

    #auth-access=write

    #password-db=passwd

    并去掉注释#,注意,去掉注释后,不要留下空格,保持每行顶格,切记!!!

    配置访问用户列表,用户名加密码

    记事本打开该目录下的文件passwd,去掉#harry=harryssecret,#sally=sallyssecret的注释#,同意注意每行要顶格,开头也不能有空格。

    说明harry=harryssecret表示:用户名=密码,当然也可以自己增加,如gary=gary。

    最好效果如下:

    ###Thisfileisanexamplepasswordfileforsvnserve.

    ###Itsformatissimilartothatofsvnserve.conf.Asshowninthe

    ###examplebelowitcontainsonesectionlabelled[users].

    ###Thenameandpasswordforeachuserfollow,oneaccountperline.

    [users]

    harry=harryssecret

    sally=sallyssecret

    gary=gary

    7.启动Subversion

    因为之前设置了环境变量path=D:ProgramFilesSubversionbin;因此打开cmd,直接运行命令:svnserve-d-rD:svnRepository这样Subversion服务器就假设好了。

    8.向容器添加需版本控制的文件(也可以远程,只需url为ip就行)

    在硬盘上任意位置,右键需要上传的文件的上级文件夹,TortoiseSVN->Import…此处为了测试,创建文件夹D:importFiles,里面放一doc文件test.doc,即要将test.doc上传到svn中去。右键importFiles,TortoiseSVN->Import…,输入容器的url:svn://localhost/svnRepository输入用户名和密码:就将test.doc文件上传到svn容器了。

    9.从容器获得test.doc文件(也可以远程,只需url为ip就行)

    在任意位置,某文件上右键D:checkOutFiles,点击SVNCheckout…输入url即可。

    10.完成

    这样就完成Windows下进行Subversion和TortoiseSVN构建SVN版本控制的部署和存取,修改相应的文件,提交即可,注意始终保持Subversion的运行。注意,在第8步中会报错“期望文件系统格式“2”;发现格式“3””原因是TortoisSVN的版本过高,或与Subversion不匹配。应该换成低版本的TortoisSVN用TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi,即应该为svn-1.4.6-setup.exe和TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi的组合才行,步骤和之前的一样,只是在第6步中的svnserve.conf文件中没有后面的内容:

    [sasl]

    ###ThisoptionspecifieswhetheryouwanttousetheCyrusSASL

    ###libraryforauthentication.Defaultisfalse.

    ###ThissectionwillbeignoredifsvnserveisnotbuiltwithCyrus

    ###SASLsupport;tocheck,run'svnserve--version'andlookforaline

    ###reading'CyrusSASLauthenticationisavailable.'

    #use-sasl=true

    ###Theseoptionsspecifythedesiredstrengthofthesecuritylayer

    ###thatyouwantSASLtoprovide.0meansnoencryption,1means

    ###integrity-checkingonly,valueslargerthan1arecorrelated

    ###totheeffectivekeylengthforencryption(e.g.128means128-bit

    ###encryption).Thevaluesbelowarethedefaults.

    #min-encryption=0

    #max-encryption=256

    ====================================================================================================================

    以上SVN服务器版本和TortoiseSVN客户端版本应匹配,最新版本1.6.1。TortoiseSVN是windows下的external版本控制工具,VS非expressediton可以用开源插件Ankhsvn(http://ankhsvn.tigris.org/)或收费的VisualSVN来集成。Windows下Subversion和TortoiseSVN构建SVN版本控制 问题介绍完毕。


subversion、TortoiseSVN版本控制

因为公司代理问题,还有团队开发人员不在一起的原因,手头上的这个项目就放弃了vss,改用svn做版本控制。研究了几天,算是基本了解点。subversion支持http和svn两种方式的版本控制,因为是用的iis,http方式貌似需要apache,就算了,这里说下svn方式,希望对大家有帮助。

首先要下载subversion、TortoiseSVN、TortoiseSVN中文语言包。其中中文语言包看个人爱好了。推荐的是服务器上安装subversion、TortoiseSVN,而客户端只需要安装TortoiseSVN就好。

安装过程就是一路的下一步,就不多说了。

先说服务器端安装:

建立一个文件夹code放所有的版本库,类似于我们用的“游戏”文件夹。然后在code下面再建立具体的项目文件夹,例如baiduhi,类似于游戏文件夹下的“魔兽世界”。在baiduhi文件夹上点右键,选择“TortoiseSVN”----“在此创建版本库”,然后版本库就弄好了。进入baiduhai里的conf文件夹,修改svnserve.conf里的内容,也就是取消注释

anon-access = none
auth-access = write
password-db = passwd

变成这样的,再修改passwd文件,添加用户就好了,=的前面是用户名,后面是密码。

如果服务器上不安装TortoiseSVN,就得在命令行里用svnadmin create了,那个看着晕晕的,就不管了,这也是我为什么推荐在服务器上也安装TortoiseSVN的原因了。

到这里,服务器上的版本库创建好了,但是别人要怎么访问呢,总得有个地址吧。

开始菜单--运行--输入cmd,在命令行里输入svnserve -d -r f:/code就好了。来解释下,svnserve就是subversion自带的一个服务器,可以实现svn://这样的地址。-d 表示后台运行 -r表示设置版本库的路径。还有好多其它的参数,可以输入svnserve -help获得,自己看。

需要提醒的是,这个命令窗口不能关闭,关闭了就没有用了。不过可以通过把这个服务变成系统服务的方式来解决,这个放后面说。

到这里服务器端,就全部设置好了。

客户端的配置:

在客户端安装TortoiseSVN,然后新建立一个文件夹,点右键,选择“SVN检出”,输入地址、用户名、密码什么的就好了。svn地址就类似这样的svn://localhost/baiduhi,localhost对应于服务器上面的code文件夹,实际使用时换成ip地址或者域名。

上面说到服务器的那个命令行窗口要关闭的话换成系统服务,可以用下面的方法:

sc create subversion binpath= "D:\Program Files\Subversion\bin\svnserve.exe --service -r f:/code" displayname= "Subversion Repository" depend= Tcpip

sc是系统自带的一个创建服务的工具。

嗯,基本上就是这样了。



windows 下 Apache2.2.4和Subversion1.4.4搭建SVN版本控制平台

windows 下 Apache2.2.4和Subversion1.4.4搭建SVN版本控制平台


一、安装

第一步,安装Apache2.2,下载后直接安装就可以了,没有什么难的。

第二步,安装Subversion1.4.4(目前最新版本),下载时请注意,此软件包有两个版本,一个是针对Apache2.0.x的,另一个是针对Apache2.2.x的,这里要用后一个版本,解压之后即可使用。


二、整合

第一步,打开Apache安装目录下的httpd.conf文件

找到下面的语句:

#LoadModule dav_module modules/mod_dav.so

将上面语句前面的#去掉

第二步,在这句后面追加,如下语句:

LoadModule dav_svn_module "{svn安装目录}/bin/mod_dav_svn.so"
LoadModule authz_svn_module "{svn安装目录}/bin/mod_authz_svn.so"

注:{svn安装目录}就是svn-win32-1.4.4.zip解压后你放的目录

第三步,在这个文件的最后,追加如下语句:

<Location /svn>
      DAV svn
      SVNParentPath “d:/svn”
</Location>


第四步,创建仓库

根据apache的配置文件的设置建立目录:d:/svn,然后用svnadmin create d:/svn/proj1命令创建仓库,命令执行成功之后,会在d:/svn/proj1下面生成很多的文件和目录。


第五步,运行

重新启动Apache Server
在浏览器中输入网址:
http://localhost/svn/test/
这时候,看到页面显示:

Revision 0: /
Powered by Subversion version 1.4.4 (r25188).


安装成功,接下来将进行权限设置。


三、svn权限设置

svn使用apache的权限管理对档案库及目录进行读写管理

修改上面第三步的内容为:

<Location /svn/>
      DAV svn
      SVNListParentPath on
      SVNParentPath “d:\svn”

      ### apache auth begin
      # how to authenticate a user
      AuthType Basic
      AuthName "Subversion repository"
      AuthUserFile “D:\apache2\conf\svn_auth”   ##(保存用户名和密码,这个文件需要用Apache的htpasswd工具创建)
      Require valid-user
      ### apache auth end

      ### svn auth begin
      # our access control policy
      AuthzSVNAccessFile “D:\apache2\conf\svn_access”   ##    (保存用户访问的权限策略)
      # authentication if necessary
      #Satisfy Any
      ### svn auth end
</Location>

用htpasswd工具创建svn_auth 文件,

建立保存用户名和密码的文件

htpasswd -c D:\apache2\conf\svn_auth    username1

-c 表示创建文件,-m表示对密码用md5加密

然后,会提示输入两次密码,以后再加用户就不需要用-c了,直接用-m即可。

下面建立控制用户访问权限的文件svn_access

在D:\apache2\conf中新建一个记事本文件,输入下面的内容:

[groups]
admin = kurz
everyone = @admin

[/]
@admin = r

[proj1:/]
@admin = rw

[proj2:/]
@admin = rw


r    表示读权限

w 表示写权限

好,配置完成,重新启动Apache server

在浏览器地址栏中再次输入:http://localhost/svn/test/

这次要输入密码才能进入,赶快试试吧。

四、基于Apache的svn服务器的多库单库

以上介绍的配置为Apache多库方式,即一个location可以同时为多个版本库服务,
假设你的ip为192.168.0.1,在D:\SVN目录下建了两个版本库,proj1和proj2
可以分别用下面两个url来访问你的版本库

http://192.168.0.1/svn/proj1

http://192.168.0.1/svn/proj2

此时权限文件类似于这样

[groups]
admin=user1
dev=user2

[proj1:/]
@admin=rw
@doc=r

[proj2:/]
@admin=rw
@doc=r

浏览父文件夹的版本库

http://192.168.0.1/svn

显示如下信息

Collection of Repositories
proj1/
proj2/

--------------------------------------------------------------------------------
Powered by Subversion version 1.4.4 (r25188).


还有一种配置方式为Apache单库方式,即一个location只能为一个版本库服务,
配置时只要将上面的SVNParentPath改为SVNPath,同时将后面的路径由版本库的父目录改为版本库的目录
如:

<Location /svn>
SVNPath D:\SVN\proj1
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile D:\apache2\conf\svn_auth
AuthzSVNAccessFile D:\apache2\conf\svn_access
Require valid-user
</Location>

这时,可以用下面的URL来访问版本库proj1

http://192.168.0.1/svn

权限文件可能是

[groups]
admin=user1
dev=user2
[/]
@admin=rw
@doc=r

使用SSL来保护你的服务器
以上的工作已经可以让你的svn服务器正常工作了。
如果你要更安全一些,可以配置ssl来保护你的服务器。
因为美国出口限制,默认安装的Apache服务器不支持SSL。但是你自己可以很容易地在其它地方下载到所需要的模块,然后安装它。

首先你需要SSL的必需文件。你可以http://hunter.campbus.com/ 或这里找到相应的软件包(或者下载本主题的附件1: mod_ssl_etc.rar (595.45 KB) mod_ssl_etc.rar (595.45 KB)
下载次数: 1174
2006-10-16 15:30)。然后只要将包解开将其中的mod_ssl.so拷到Apache的modules目录、openssl.exe、libeay32.dll、ssleay32.dll拷到bin目录、conf/ssl.conf拷到conf目录。

在Apache的conf目录中用文本编辑器打开ssl.conf。

将下面这些行用#注释掉:


DocumentRoot "c:/apache/htdocs"
ServerName [url]www.example.com:443[/url]
ServerAdmin [email]you@example.com[/email]
ErrorLog logs/error_log
TransferLog logs/access_log
修改


SSLCertificateFile conf/ssl.crt/server.crt


SSLCertificateFile conf/ssl/my-server.cert
修改


SSLCertificateKeyFile conf/ssl.key/server.key


SSLCertificateKeyFile conf/ssl/my-server.key
修改


SSLMutex file:logs/ssl_mutex


SSLMutex default
删除以下两行(如果有):


<IfDefine SSL>
</IfDefine>
打开Apache配置文件(httpd.conf),去掉这行的注释


#LoadModule ssl_module modules/mod_ssl.so
Openssl需要一个配置文件。你可以从这里下载一个可工作的版本http://tud.at/programm/openssl.cnf (或者本主题附件2: openssl.cnf.rar (1.21 KB) openssl.cnf.rar (1.21 KB)
下载次数: 820
2006-9-10 19:11)。将它保存到bin/openssl.cnf。

下面你要创建一个SSL证书。你可以打开一个命令行窗口,然后cd到Apache安装目录(比如C:\program files\apache group\apache2),敲入以下命令:


bin\openssl req -config bin\openssl.cnf -new -out my-server.csr
你将被问及一句口令短语。请注意,不要使用简单的几个词,而应该输入一整个句子,比如一篇诗词的一部份,越长越好。同样,你还要输入你的服务器URL。然后其它的问题都是可选问答的,不过我建议你也将它们填充。

下一步,敲入以下命令:


bin\openssl rsa -in privkey.pem -out my-server.key
以及(注意,只有一行)


bin\openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 4000
这样将创建一个4000天后才过期的证书。最后敲入:


bin\openssl x509 -in my-server.cert -out my-server.der.crt -outform DER
这些命令在Apache目录下创建了一些文件(my-server.der.crt, my-server.csr, my-server.key, .rnd, privkey.pem, my-server.cert)。将这些文件拷贝到目录conf/ssl

(比如C:\program files\apache group\apache2\conf\ssl),如果目录ssl不存在,你必须先创建一个。

重启Apache服务。

现在可以用类似这样的url来访问你的版本库了https://localhost/svn/proj1


强制通过SSL来访问

当你配置了SSL来提高版本库安全时,你可能想禁用无SSL的http访问方式,而只允许通过https访问。要达到这种效果,你要在<Location>块加入另外一个指示器SSLRequireSSL。

一个示例<Location>块可能像这样:

<Location /svn>
DAV svn
SVNParentPath D:\SVN
SSLRequireSSL
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>



在windows服务器上安装svn版本控制软件并设置自动部署

1.到http://subversion.tigris.org/getting.html#windows上选择windows版svn服务器下载。

我选择的事silksvn,下载地址是http://www.sliksvn.com/pub/Slik-Subversion-1.6.3-win32.msi

2.安装svn软件。

3.设置path环境变量(在系统属性(右击我的电脑,选属性)>“高级”标签>下面的“环境设定”按钮>找到“PATH”),将svn装目录下的bin目录所在路径添加到path中。

4.建立一个文件夹作为svn的版本库,如我的是d:\svn

5.在命令行中输入

sc create svn
        binpath= "svn安装路径 --service -r d:\svn"
        displayname= "Subversion Server"
        depend= Tcpip
        start= auto

(不用换行)来把svn注册为服务。

6.在服务管理中打开刚注册的Subversion Server服务。

7.在d:\svn下建立版本库目录。比如我的是d:\svn\myproject

8.如果项目原来有项目文件,可能需要把项目文件导入版本库。比如我的一个web项目,它初始的文件存在d:\myproject,我就要输入

svn import -m "initial import" d:\myproject svn://localhost/myproject

来引入初始文件。其中initial import为注释,可以换成别的,但不要删除。

9.修改d:\svn\myproject\conf下的passwd文件,添加用户名和密码

10.修改d:\svn\myproject\conf下的svnserve.conf文件,去掉anon-access,auth-access,password-db,realm前面的注释

11.假设要部署的位置是d:\deploy\myproject,先将版本库签出到那里:

svn checkout svn://localhost/myproject d:\deploy\myproject

12.为了实现提交之后自动部署,新增d:\svn\myproject\hooks下的post-commit文件,里面有一行:

关键在于post-commit脚本的执行环境问题。不能简单地用svn update解决,完整的命令如下:

"C:\Program Files\VisualSVN Server\bin\svn" update [目的版本库路径] --quiet --non-interactive --username [用户名] --password [密码] --config-dir d:\svn\oa\conf

这样就能自动把代码部署到需要的地方。也可以再这个文件里加入其它部署需要的代码。



linux架设subversion(svn)版本控制

linux架设subversion(svn)版本控制

http://mhbjava.javaeye.com/blog/26594

http://www.ybfq.com/lamp/svn-subversion-command-flowchart-in-website-design/

1.需要两个文件,httpd和subversion. httpd是web服务器,用来通过web访问subversion,httpd可以在apache官方网站上下载到

2.新建一个用户:svnroot
最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来,但是下面的一些安装和配置操作还是 需要root用户来完成的,因为有些操作只有root才能做。权限问题很重要。曾经因为权限问题折腾了一天。

3.编译安装httpd (root用户操作):

//解压apache2安装包
# tar xvzf httpd-2.2.2.tar.gz
//进入解压后的目录
# cd httpd-2.2.2
//配置apache安装,前两个参数是必须要加的,你还可以根据您的需要添加其他的参数。
//后面的参数制定你要把apache安装哪里
# ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
# make
//安装
# make install
# cd /usr/local/apache2/bin
//启动apache服务
# ./apachectl start
//打开浏览器http://localhost/如果有测试页"It works!"出现则证明已经安装成功。

4.

安装Subversion

//解压SubVersion安装包 (root用户进行下面的操作)
# tar xvzf Subversion-1.3.1.tar.gz
//进入解压后的目录
# cd Subversion-1.3.1
//配置subversion安装
#./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion
--with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib
--enable-maintainer-mode
# make
//安装
# make install
//创建库文件所在的目录 (svnroot用户进行下面的操作)
# mkdir /home/svnroot/repository
//进入subversion的bin目录
# cd /usr/local/subversion/bin
//创建仓库"test"
# ./svnadmin create /home/svnroot/repository/test
# cd /home/svnroot/repository/test
//看看是不是多了些文件,如果是则说明Subversion安装成功了
# ls –l
# cd /usr/local/subversion/bin
//这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion 仓库中去,
//提交后的修订版为1。
# ./svn import /home/user/import file:///home/svnroot/repository/test –m "注释"
//不让其他人有该目录的权限
# chmod 700 /home/svnroot/repository

5.修改Apache配置文件

# cd /usr/local/apadche2/bin
//启动Apache
# ./apachect1 start
# vi /usr/local/apache2/conf/httpd.conf
   //在最下面添加
   LoadModule dav_svn_module modules/mod_dav_svn.so
   LoadModule authz_svn_module modules/mod_authz_svn.so
   <Location /svn>
   DAV svn
   SVNParentPath /home/svnroot/repository/ //svn父目录
   AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件
   AuthType Basic //连接类型设置
   AuthName "Subversion.zoneyump" //连接框提示
   AuthUserFile /home/svnroot/repository/authfile //用户配置文件
   Require valid-user //采用何种认证
   </Location>
   //其中authfile是通过"htpasswd [–c] /home/svnroot/repository/authfile username password"来创建的
   //"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
   //则只能第一个用户可以访问新建库

6.重启apache

# ./usr/local/apache2/bin/apachectl restart
//打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。

7.权限管理
1)增加用户

# htpasswd [-c] /home/svnroot/repository/authfile wooin
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# htpasswd authfile 用户名(加入新的用户)

2)权限分配

# vi /home/svnroot/repository/authz.conf
   [test:/] //这表示,仓库test的根目录下的访问权限
   wooin = rw //test仓库wooin用户具有读和写权限
   bao = r //test仓库bao用户具有读权限
   [test2:/] //test2仓库根目录下的访问权限
   wooin = r //wooin用户在test2仓库根目录下只有读权限
   bao = //bao用户在 test2仓库根目录下无任何权限
   [/] //这个表示在所有仓库的根目录下
   * = r //这个表示对所有的用户都具有读权限
   #[groups] //这个表示群组设置
   #svn1-developers = wooin, bao //这个表示某群组里的成员
   #svn2-developers = wooin
   #[svn1:/]
   #@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置

将这个设置完成后。重启Apache,就可以通过
http://localhost/svn/test
这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限


备注:

1。apache进程的权限:因为所有跟仓库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了 很大的权限,但是apache进程没有访问仓库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:

User daemon # 将daemon改为svnroot,让apache进程以svnroot的身份运行
Group daemon

2。

在/etc/profile的结尾设置一些svn启动时要做的工作

# start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi

3。/home/respository/svnroot下的文件操作权限有给svnroot.