如何在linux服务器上搭建多个网站

如何在linux服务器上搭建多个网站,第1张

其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:

[users]

alan=password

king=hello

这个里面的user表示当前test版本库的成员

63修改authz

[root@localhostconf]#viauthz

用户组格式:

[groups]<用户组名>=<用户1>,<用户2>

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。用户必须要在passwd文件里能找到,它是给那个里面的user赋权限

版本库目录格式:

[/目录]@<用户组名>=<权限><用户名>=<权限>

示例:

[groups]

admin=alan

[/]

@admin=rw

[/svn/p1/WebProject]

king=rw(表示king能够读写/svn/p1/WebProject目录下的所有信息)

[/svn/p1/web]

zp=r(表示zp能够读/svn/p1/web目录下的所有信息)

到此svn服务器的的安装和配置就已经完成了。

在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了然而在linux上搭建SVN却非常繁琐,这篇文章就来一步一步教您如何在Centos上搭建SVN

源码目录:/home/user/project

工程名:project

工程目录:/source/svn/project

访问地址:svn://ip/project

一、 安装svn

yum install subversion

二、 svn服务器配置

1 创建svn根目录

mkdir /source/svn

2 添加工程

svnadmin create /source/svn/project

3 导入工程初始文件(可省)

svn import /home/user/project/ file:///source/svn/project -m "init project"

4 配置工程用户

进入工程的配置目录:

cd /source/svn/project/conf

下面一共三个文件:authz passwd svnserveconf

passwd: 里面保存用户信息,基本格式为:user = passwd

authz: 里面保存用户的分组信息,以及每个组的访问权限

svnserveconf: 里面保存服务器的基本配置(下面介绍)

针对该例子的配置如下:

41 passwd里面添加用户

[users]

pm = pm123

42 authz配置用户权限

复制代码

[grouPS]

#添加一个分组(实际当中可以添加多个,每个组可以有多个用户以,隔开)

pm_g = pm

# 该项目的权限配置

[project:/]

# pm_g分组配置读写权限(实际中可以增加只读分组)

@pm_g = rw

43 svnserveconf配置(可默认)

# 匿名用户权限(none:拒绝, write:读写, read:只读权限)

anon-access = none

# 鉴权用户访问

auth-access = write

# 用户信息配置文件(也可以是绝对路径)

password-db = passwd

# 权限配置文件

authz-db = /source/svn/project/conf/authz

三、 启动svn服务器

svnserve -d -r /source/svn

四、 拉取代码

svn co svn://ip/project

  如何设置才能让Linux开机自动启动SVN

  本节主要讲解一下Linux开机自启动SVN,上节我们讲解了Windows下开机自动启动SVN服务,通过本节的介绍你可以做一个对比,看一下在两种操作系统中开机自动启动SVN服务的区别,希望本节对你学习有所帮助。

  在Redhat上配置好svnserve,通过Myeclipse访问,实现版本控制。但是开启svn服务是手工输入命令来启动,这样每次重启服务器后都得重新输一次命令,太麻烦。于是就有了新问题:如何让SVN随着服务器开机自己启动? 先了解一下Linux的自动运行程序,以下分割线内为转自

  http://hibaiducom/wangtao8899/blog/item/dd7365c41c5423a18226ace1html的内容。 华丽的分割线 在RedHatLinux中自动运行程序 1.开机启动时自动运行程序

  Linux加载后,它将初始化硬件和设备驱动,然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或/etc/rcd或/etc/rcd目录下的脚本文件,可以使init自动启动SVN其它程序。例如:编辑/etc/rcd /rclocal文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。 2.登录时自动运行程序

  用户登录时,bash首先自动执行系统管理员建立的全局登录script:/ect/profile。然后bash在用户起始目录下按顺序查找三个特殊文 件中的一个:/bash_profile、

  /bash_login、/profile,但只执行最先找到的一个。因此,只需根据实际需要在上述文件 中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexecbat)。 3.退出登录时自动运行程序

  退出登录时,bash自动执行个人的退出登录脚本/bash_logout。例如,在/bash_logout中加入命令"tar-cvzfcsourcetgz*c",则在每次退出登录时自动执行"tar"命令备份*c文件。

  4.定期自动运行程序

  Linux有一个称为crond的守护程序,主要功能是周期性地检查/var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些 文件中的命令。用户可以通过crontab命令来建立、修改、删除这些命令文件。例如,建立文件crondFile,内容 为"00923Jan*HappyBirthday",运行"crontabcronFile"命令后,每当元月23日上午9:00系统自动执 行"HappyBirthday"的程序("*"表示不管当天是星期几)。 

  wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('ad-hidden')hide();}, function(){$('ad-hidden')show();});

  

  5.定时自动运行程序一次

  定时执行命令at与crond类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at[-ffile]time,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:

  

1   $at12:00   

2   at>mailtoRoger-s″Havealunch″Ctr-D   3   Job1at2000-11-0912:00   

 

 

2000-11-0912:00时候自动发一标题为"Havealunch",内容

为plantxt文件内容的邮件给Roger。   

5   #!/bin/bash   6   RESTART=""#里面写相应服务代码   

7   START=""  8   STOP=""  9 

 

 case"$1"in   10   restart)   

11   $RESTART   12   echo"";;   13   start)   14   $START   

15   echo"";;   16   STOP)   

17   $STOP   

18   echo"";;   

19   )   

20   echo"Usage:$0{restart&#166;start&#166;stop}"   21   exit1   22   esac   23  

 

exit1

    

  脚本写完要修改一下权限chmodu+xtestsh 首先,linux随机启动SVN的服务程序都在/etc/initd这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写 到一个文件里让系统能够按顺序执行,类似windows下的autorundat文件),另外在/etc这个文件夹里还有诸如名为 rc1d,rc2d一直到rc6d的文件夹,这些都是

  

  linux不同的runlevel,我们一般进入的Xwindows多用户的运行级别是第5 级,也就是rc5d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc(1-6)d文件夹下的文件其实都是 /etc/initd文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说,在/etc/initd文件夹下是全部的服务程序, 而每个rc(1-6)d只链接它自己启动需要的相应的服务程序!要启动scim(某一程序),我们首先要知道scim程序在哪里,用locate命令可 以找到,scim在/usr/bin/scim这里,其中usr表示是属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本 程序,把它放到/etc/initd里,然后在rc5d里做一个相应的软链接就可以了。这个脚本其实很简单,就两行: #!/bin/bash /usr/bin/scim 第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。还需要注意的一点是,在rc5d里,每个链接的名字都是以S或者K开头的,S开头的表示 是系统启动是要随机启动的,K开头的是不随机启动的。这样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S 改成K后,这个服务就不能随机启动sVN了。因此,我这个链接还要起名为SXXX,这样系统才能让它随机启动。 华丽的分割 线 了解这些后,(计算机基础知识) 作法就很简单了。 1创建执行脚本svnsh(/root路径下),其内容很简单,如下: #!/bin/bash svnserve-d--listen-port8080-r/home/svnroot/repository 2添加可执行权限命令行运行#chmodug+x/root/svnsh 3添加自动运行打开(vi或gedit)/etc/initd/rcd/rclocal,在最后添加一行内容如下:/root/svnsh保存 退出http://wwwwoaidiannaocom。 4检查重启服务器,使用ps-ef看看svn进程是否启动了。哈哈,轻松解决,以后开机就自动启动svn了。

root用户是Linux下的超级用户,相当于Windows7下的Administrator,就是最高权限,由于权限太高,有可能造成误删除之类的操作,一般建议新建一个用户,安装或配置相关的东西时可以sudo到root下

新建的用户下都有一些隐藏的文件,是基于这个用户的配置文件,比如bash_profile这个文件就相当于/etc/profile这个文件,只是前者只作用于当前用户,后者作用于所有

安装一些软件或服务,由于考虑到一些目录权限的问题,我一般用root安装,至于安装完后的其它用户没有权限访问这个服务的问题,可以用chown和chmod命令改一下属主或权限就行了

编译安装是可以指定安装路径的,--prefix指定的就是安装的路径,不指定的话会有一个默认路径,可以通过/configure --help 看到所有的参数。

Windows与Linux下SVN怎样使用

本文分2个部分(包括Windows与Linux操作系统平台),第1部分:怎样安装 第2部分:怎样使用

-----------------------------------------第1部分:怎样安装-----------------------------------------

怎样安装分2种情况,第1种:在公司上班 第2种:在宿舍电脑

--------------------第1种:在公司上班--------------------

说明:通常SVN服务器是安装在windows上的,安装好后,客户端2种平台都能使用

Windows平台下

服务端与客户端:

通常这种情况,你想安装,公司都不会让你安装,一般是由公司内网管专业人士统一安装好,并给你分配好账户与密码,以及每个SVN下使用权限,所以这种情况你可以不用去管怎样安装了,只管怎样使用即可

linux平台下

服务端:即windows上的服务端

客户端:如果你在本机安装的Linux虚拟机,通常是自己安装的,不是公司网管安装的,安装办法如下:

1步即能安装:在linux下输入命令 sudo apt-get install subversion

即SVN,安装后同windows上SVN一样,只不过这里是输入命令而已

--------------------第2种:在宿舍电脑--------------------

Windows与Linux平台下

说实在的,宿舍就1台电脑本来电脑就垃圾而且还开着虚拟机,在开2个VS2010,就已经卡的要死在来个SVN,估计会慢如蜗牛,其实大部分程序员也是只有一台电脑,安装SVN真的没必要除非有多台电脑SVN本质是为方便团队开发

-----------------------------------------第2部分:怎样使用-----------------------------------------

怎样使用要分2种情况,第1种:是Windows平台 第2种:是Linux平台

--------------------第1种:是Windows平台--------------------

1更新

右键->SVN更新

2提交(也可说成是上传)

第1步:进入要提交的SVN文件目录里面,导入文件

第2步:导入后,返回上一层目录,即返回到要提交的SVN文件目录,右键点击此SVN目录,弹出,提交,进入

第3步:进入提交对话框后,会显示2个编辑框,上面的编辑框是确认要提交的内容,下面的编辑框是你刚导入的文件内容,

你现在若是想提交刚才导入的内容,就把下面编辑框的内容用鼠标拖动到上面的编辑框,并按确定

若不想提交刚才导入的内容,直接按取消退出即可

3导出

即怎样去掉SVN的专用标志,有的是对勾,有的是号等等

方法 1:在文件属性--->选择显示所有文件,这时文件里会出现1个svn的文件目录,把它删掉即可(文件目录多时,不推荐)

方法 2:在SVN右键--->导出,这时导出的文件不会带SVN标志了

4删除

在SVN右键中,删除之后要返回上一层目录,点提交

删除信息在变更列表,要拖动到信息栏下,然后点确定

5保存认证

每当电脑密码更改时,SVN以前保存的密码也会要更新,此时会弹出一个认证框,重新输入账号与新密码,在保存认证处打勾即可

--------------------第2种:是Linux平台--------------------

1更新

命令:svn update

2提交(也可说成是上传)

第1步:进入要提交的SVN文件目录里面,

第2步:添加要提交的目录用svn add ----------->注:(代表添加文件、目录或符号链)

第3步:提交

(1)提交全部

svn ci -m""----------->m表示写注释,代表注释内容

注:在LINUX上同一目录存在其它文件,svn ci提交时,只会提交SVN服务器已有的文件如果想让同一目录下的其它文件也提交到SVN服务器,可以先通过svn add先添加此文件或文件夹等

(2)提交单个

svn ci -m"add select_area packet" Gateway_Handlercpp

后面一个加上要提交的文件(记的把后缀名写上去)

提交成功后会提示

Sending Gateway_Handlercpp

Transmitting file data

Committed revision 242

3保存认证

每当电脑密码更改时,SVN以前保存的密码也会要更新,此时会显示要输入密码,重新输入账号与新密码,最后会提示是否要保存密码(yes/no),选yes即可

4下载

命令 svn co (代表下载地址,例如http://1921681101/project/servers/command)

之后会在当前目录下,导出一个command文件夹,里面是SVN服务器上的文件

5删除

svn del (为文件名,或文件)

6查看修改后的操作是哪些

svn diff

---------------------------------------------------以下是摘抄的---------------------------------------------------

1、将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

例如:svn checkout svn://19216811/pro/domain

简写:svn co

1、将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

例如:svn checkout svn://19216811/pro/domain

简写:svn co

2、往版本库中添加新的文件

svn add file

例如:svn add testPHP(添加testphp)

svn add php(添加当前目录下所有的php文件)

3、将改动的文件提交到版本库

svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“ testphp

简写:svn ci

4、加锁/解锁

svn lock -m “LockMessage“ [--force] PATH

例如:svn lock -m “lock test file“ testphp

svn unlock PATH

5、更新到某个版本

svn update -r m path

例如:

svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

svn update -r 200 testphp(将版本库中的文件testphp还原到版本200)

svn update testphp(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)

简写:svn up

6、查看文件或者目录状态

1)svn status path(目录下的文件和子目录的状态,正常状态不显示)

:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定

2)svn status -v path(显示文件和子目录状态)

第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的svn中保留了本地版本的原始拷贝。

简写:svn st

7、删除文件

svn delete path -m “delete test fle“

例如:svn delete svn://19216811/pro/domain/testphp -m “delete test file”

或者直接svn delete testphp 然后再svn ci -m ‘delete test file‘,推荐使用这种

简写:svn (del, remove, rm)

8、查看日志

svn log path

例如:svn log testphp 显示这个文件的所有修改记录,及其版本号的变化

9、查看文件详细信息

svn info path

例如:svn info testphp

10、比较差异

svn diff path(将修改的文件与基础版本比较)

例如:svn diff testphp

svn diff -r m:n path(对版本m和版本n比较差异)

例如:svn diff -r 200:201 testphp

简写:svn di

11、将两个版本之间的差异合并到当前文件

svn merge -r m:n path

例如:svn merge -r 200:205 testphp(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

12、SVN 帮助

svn help

svn help ci

——————————————————————————

以上是常用命令,下面写几个不经常用的

——————————————————————————

13、版本库下的文件和目录列表

svn list path

显示path目录下的所有属于版本库的文件和目录

简写:svn ls

14、创建纳入版本控制下的新目录

svn mkdir: 创建纳入版本控制下的新目录。

用法: 1、mkdir PATH…

2、mkdir URL…

创建版本控制的目录。

1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增

调度,以待下一次的提交。

2、每个以URL指定的目录,都会透过立即提交于仓库中创建。

在这两个情况下,所有的中间目录都必须事先存在。

15、恢复本地修改

svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:

用法: revert PATH…

注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复

被删除的目录

16、代码库URL变更

svn switch (sw): 更新工作副本至不同的URL。

用法: 1、switch URL [PATH]

2、switch –relocate FROM TO [PATH]

1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将

服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的

方法。

2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动

(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用

这个命令更新工作副本与仓库的对应关系。

17、解决冲突

svn resolved: 移除工作副本的目录或文件的“冲突”状态。

用法: resolved PATH…

注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的

相关文件,然后让 PATH 可以再次提交。

18、输出指定文件或URL的内容。

svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。

svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

19、查找工作拷贝中的所有遗留的日志文件,删除进程中的锁。

当Subversion改变你的工作拷贝(或是svn中的任何信息),它会尽可能的小心,在修改任何事情之前,它把意图写到日志文件中去,然后执行log文件中的命令,然后删掉日志文件,这与分类帐的文件系统架构类似。如果Subversion的操作中断了(举个例子:进程被杀死了,机器死掉了),日志文件会保存在硬盘上,通过重新执行日志文件,Subversion可以完成上一次开始的操作,你的工作拷贝可以回到一致的状态。

这就是svn cleanup所作的:它查找工作拷贝中的所有遗留的日志文件,删除进程中的锁。如果Subversion告诉你工作拷贝中的一部分已经“锁定”了,你就需要运行这个命令了。同样,svn status将会使用L 显示锁定的项目:

$ svn status L somedirM somedir/fooc $ svn cleanup$ svn statusM somedir/fooc20、拷贝用户的一个未被版本化的目录树到版本库。svn import命令是拷贝用户的一个未被版本化的目录树到版本库最快的方法,如果需要,它也要建立一些中介文件。

$ svnadmin create /usr/local/svn/newrepos $ svn import mytree file:///usr/local/svn/newrepos/some/project Adding mytree/fooc Adding mytree/barc Adding mytree/subdir Adding mytree/subdir/quuxh Committed revision 1

在上一个例子里,将会拷贝目录mytree到版本库的some/project下:

$ svn list file:///usr/local/svn/newrepos/some/project barc fooc subdir/

注意,在导入之后,原来的目录树并没有转化成工作拷贝,为了开始工作,你还是需要运行svn checkout导出一个工作拷贝。

另附:为SVN加入Email通知

可以通过Subversion的Hook脚本的方式为SVN加入邮件列表功能

编译安装了Subversion后 在源码的tools 下有一个comm-emailpl的Perl脚本,在你的档案目录下有一个hooks目录,进入到hooks目录把post-committmpl 改名为post-commit并给它可执行的权限。

更改post-commit脚本 把comm-emailpl脚本的决对路径加上,否则 SVN找不到comm-emailpl

REPOS="$1"

REV="$2"

/usr/local/svn/resp/commit-emailpl "$REPOS" "$REV" email@address1com email@address2com

#log-commitpy --repository "$REPOS" --revision "$REV"

最后一行是用来记日志的 我不用这个功能 所以注释掉了

-------------------------------------------------------------------------------------------------------

注意:为保证代码安全最好要备份每个操作都要谨慎

一,安装svn服务器

在Linux中安装了服务端,

$ yum install subversion

二,在Windows中安装客户端(TortoiseSVN-19427285-x64-svn-194msi)

三,基本的SVN服务器配置

1,新建一个目录用于存储SVN所有文件

$ mkdir /svn

2,新建一个版本仓库$ svnadmin create /svn/project

3,添加用户

要添加SVN用户非常简单,只需在/svn/project/conf/passwd文件添加一个形如“username=password”的 账号为username和密码为password

[users]

mysj = mysj

test = test

5,修改用户访问策略

/svn/project/conf/authz记录用户的访问策略,以下是参考:

[groups]

admin=mysj //将用户进行分组

user=test

[project:/] //进行授权

@admin = rw //r表示读,w表示写

@user = r

=

6,修改svnserveconf文件,让用户和策略配置升效

svnserveconf内容如下:

此处切记要注意空格,不然会导致svn配置不成功

[general]

anon-access = none

auth-access = write

password-db = /svn/project/conf/passwd

authz-db = /svn/project/conf/authz

7,启动服务器

# svnserve -d -r /svn

注意:如果修改了svn配置,需要重启svn服务,步骤如下:

$ ps -aux|grep svnserve

$ kill -9 ID号 杀死服务

$ svnserve -d -r /svn

四,在Windows系统中检出svn的文件,此时的地址也应该为 svn://Linux的ip地址/project/文件夹名(你自己创建的)。

SVN是程序员常用的一款软件,它可以很好的帮助程序员进行版本控制以及代码管理,通常的SVN服务器是搭建在Linux等系统下进行的。但是今天小编分享一种在win7操作系统使用Subversion搭建SVN服务器的方法,而且设置方法也比较简单,感兴趣或有需要的用户可以一起参考下面教程进行设置体验。

具体方法如下:

1、首先来下载和搭建SVN服务器,进入网址后;

2、点开上面红色框标记的VisualSVN连接,下载VisualSVNserver,下载完成后双击安装;

3、点击Next下一步;

4、然后再点击Next项,下一步;

5、选择“标准版本”,点击Next如下;

6、选择安装路径,服务器端文件存放位置,默认端口号(Location是指VisualSVNServer的安装目录,Repositorys是指定你的版本库目录ServerPort指定一个端口,Usesecureconnection勾山表示使用安全连接),点击Next,进入下一步;

7、准备安装,点击Install,进入下一步;

8、等待安装;

9、完成后,点击next,进入下一步;

10、点击Finish即可完成安装。安装完成后,启动VisualSVNServerManage;

11、可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等要建立版本库,需要右键单击左边窗口的Repositores;

12、在弹出的右键菜单中选择CreateNewRepository或者新建-Repository;

13、键入对象库名称后,进入下一步;

14、选择”空的对象库“,进入下一步;

15、设置对象库的权限,点击create;

16、点击Finish即可完成基本创建。

上述就是win7系统使用Subversion搭建SVN服务器的方法,有需要的用户可以掌握。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在linux服务器上搭建多个网站

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情