从零开始在Linux系统Fedora 12下安装Apache+Subversion V10.docx
- 文档编号:10609494
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:19
- 大小:507.70KB
从零开始在Linux系统Fedora 12下安装Apache+Subversion V10.docx
《从零开始在Linux系统Fedora 12下安装Apache+Subversion V10.docx》由会员分享,可在线阅读,更多相关《从零开始在Linux系统Fedora 12下安装Apache+Subversion V10.docx(19页珍藏版)》请在冰豆网上搜索。
从零开始在Linux系统Fedora12下安装Apache+SubversionV10
从零开始在Linux系统(Fedora12)下安装Apache+Subversion
目录
1准备工作1
1.1软件下载2
1.1.1Apache下载2
1.1.2Subversion下载2
1.2软件解压3
1.2.1解压Apache源码包3
1.2.2解压Subversion源码包3
1.3软件编译、安装4
1.3.1编译、安装Apache源码包4
1.3.2编译、安装Subversion源码包6
1.4安装SVN所需module—mod_dav_svn8
1.5(可选)让Apache能加载新安装的module—mod_dav_svn模块9
2配置版本库10
2.1建立版本库目录10
2.2建立svn版本库(与上面目录对应)11
2.3版本库所有者和权限修改11
3配置用户12
3.1创建用户密码文件12
3.2创建用户12
3.3删除用户12
3.4修改密码12
4配置版本库的访问权限13
4.1创建授权文件authz14
4.2创建用户群组14
4.3创建访问规则14
5修改subversion.conf配置文件,让Apache知道如何处理Subversion客户端15
6配置过程可能用到的其它命令16
6.1Linux系统下查询机器的IP16
6.2看apache报错的日志文件16
6.3重新启动SVN16
首先说明一下SVN版本管理系统不一定要Apache才能运行,但是可以使用apache,视具体情况来选择。
(1)如果只要通过file:
//或svn:
//来访问,则不需要apache,只安装svn即可,使用svnserve来作为服务。
(2)如果你要建立一个可以通过http:
//或https:
//来访问的版本库服务器,则你需要使用apache。
http与https的差异在于https采用了SSL加密技术。
简单讲https是http的安全版。
即http下加入SSL层,https的安全基础是SSL,因此加密的详细内容就需要SSL。
1准备工作
说明:
以下命令全部在root用户下输入
(1)如何从普通用户转换成root用户?
方法很简单,在终端中输入su命令就可以了,回车后会提示你输出root管理员的密码(如果你设置了密码的话)。
转换前后会有一些变化,变化过程用一个例子来说明。
假如我现在在“主文件夹”目录下,我当前的用户名是liversystemuser。
在转换前则我当前在“终端”中的位置应该是:
[liversystemuser@localhost]$
我在当前位置输入su后,即[liversystemuser@localhost]$su回车后则我完成了身份的转换,转换后我在“终端”中的位置则变为:
[root@localhost]#。
(2)如何从root用户回到普通用户
要从root身份转换成普通用户身份需要进行的是按下Ctrl+D。
1.1软件下载
1.1.1Apache下载
下载地址:
http:
//httpd.APACHE.org/download.cgi
图11Apache下载页面
注意:
由上图可以看出有扩展名为.tar.gz和.tar.bz2两种源码包,不同的扩展名的源码包其后的解压命令是不同的。
我下载的是:
httpd-2.2.17.tar.gz
1.1.2Subversion下载
下载地址:
http:
//subversion.tigris.org/servlets/ProjectDocumentList?
folderID=260&expandFolder=74
图12Subversion下载页面
Subversion的安装稍有技巧:
如果是用yum命令(见1.3节)安装则只需要下载subversion-1.6.13.tar.gz或subversion-1.6.13.tar.bz2
如果是用makeinstall命令安装则需要下载subversion-1.6.13.tar.bz2和subversion-deps-1.6.13.tar.bz2两个压缩包(第二个是前一个的依赖包),并且解压至同一目录下,这样subversion会自动地编译、安装依赖库;若习惯性的先安装依赖库,后安装subversion,则依赖库的编译需要手动进行。
(在后面的编译、安装一节中还会提到)
1.2软件解压
在“终端”中进入你下载的软件所放置的文件夹,比如我把软件放在了“主文件夹”下面的“test”文件夹下。
“终端”操作如图1-3所示。
图13“终端”操作图
由图可以看出在“test”文件夹下只有前面所说的两个源码软件包,下面要做的就是把这两个软件包解压。
1.2.1解压Apache源码包
如果下载的是.tar.gz包,解压命令是:
tarzxvfhttpd-2.2.17.tar.gz
(小提示:
在“终端”中输入tarzxvfhttp后按一下“table”键系统将自动补全文件名httpd-2.2.17.tar.gz,Linux系统的这个功能很方便。
)
如果下载的是.tar.bz包,则解压命令是:
tarjxvfhttpd-2.2.17.tar.bz2
关于Linux的常用命令,参见:
Linux常用命令全集
1.2.2解压Subversion源码包
如果下载的是.tar.gz包,解压命令是:
tarzxvfsubversion-1.6.13.tar.gz
图14Subversion解压命令
如果下载的是.tar.bz包,则解压命令是:
tarjxvfsubversion-1.6.13.tar.gz
1.3软件编译、安装
安装方式有两种,一种是用make、makeinstall命令,另一种是用yuminstall命令,两者的区别在于:
前者编译和安装是分开的,make命令用来编译,makeinstall用来安装。
yuminstall则将编译和安装两个过程一次完成。
Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,在用yuminstall安装软件时能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
1.3.1编译、安装Apache源码包
1.3.1.1用make命令编译,然后用“makeinstall”安装
(1)进入到APACHE的目录
命令如下:
cdhttpd-2.2.17
(2)开始进行APACHE安装配置,命令如下:
./configure--enable-dav--enable-so--prefix=/usr/local/APACHE2/
(3)编译、安装,命令如下:
make
makeinstall
(4)启动APACHE服务
/usr/local/apache2/bin/APACHEctlstart
打开Firefox浏览器,输入:
http:
//localhost/,出现如下界面(图1-5),则APACHE安装成功。
图15apache安装成功运行页面
1.3.1.2“yuminstall”命令安装
要运用yum命令进行安装必须要有root身份(系统管理员身份),怎样从普通用户身份转换成root身份呢?
(2)以root身份安装Apache
在当前位置,即:
[root@localhost]#输入yuminstallApache即可。
完整的形式就是:
[root@localhost]#yuminstallApache(见图1-5)
另外,关于yum的详细信息参见:
图16以root身份安装Apache中间过程
(3)重起Apache以完成安装
完成以上步骤后还不算最终完成apache的安装,还需要重起apache才能看到apache安装成功的界面。
以root身份进入到APACHE的目录,命令如下:
cdhttpd-2.2.17
连续执行以下命令:
[root@localhosthttpd]#cd/etc/
[root@localhosthttpd]#cdhttpd/
[root@localhosthttpd]#/etc/init.d/httpdrestart
(apache的配置和日志目录分别在/etc/httpd/conf和/ect/httpd/logs)
如图1-7所示,在浏览器中输入:
localhost/看到图1-7则表示最终安装成功。
图17重启apache
1.3.2编译、安装Subversion源码包
如果之前安装过subversion,则要卸载先前安装的Subversion库文件:
rm-f/usr/local/lib/libsvn*
rm-f/usr/local/lib/libapr*
rm-f/usr/local/lib/libexpat*
rm-f/usr/local/lib/libneon*
1.3.2.1用make命令编译,然后用“makeinstall”安装
(1)进入到Subversion的目录
命令如下:
cdsubversion-1.6.13
(2)开始进行Subversion安装配置,命令如下:
./configure--with-apxs=/usr/local/apache2/bin/apxs--prefix=/usr/local/subversion--with-apr=/usr/local/APACHE--with-apr-util=/usr/local/APACHE2--with-ss--with-zlib--enable-maintainer-mode
(3)编译、安装
make
makeinstall
1.3.2.2“yuminstall”命令安装
在当前位置,即:
[root@localhost]#输入yuminstallSubversion.i386即可。
完整的形式就是:
[root@localhost]#yuminstallSubversion。
详见图1-6、1-7。
图18Subversion安装过程图
图19Subversion安装成功图
1.4安装SVN所需module—mod_dav_svn
mod_dav_svn模块用于apache读取svn版本库用。
安装命令是:
#yumlistinstallmod_dav_svn
这个命令不仅安装mod_dav_svnd而且可以发现与mod_dav_svn相关的包mod_dav_svn.i386,安装mod_dav_svn.i386
安装完成后可以发现在/etc/httpd/conf.d文件夹下,自动产生了subversion.conf文件,而且自动添加了如下两行:
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
安装完毕之后发现,在/etc/httpd/conf.d下多出了subversion.conf,以及/etc/httpd/modules下多出了mod_dav_svn.so和mod_authz_svn.so两个文件,这正是subversion.conf中所需要的(见图1-10)。
图110安装后增加的文件
确定一下svn有没有安装成功
#/usr/local/svn/bin/svnserve--version
安装成功的话会看到相关版本信息!
1.5(可选)让Apache能加载新安装的module—mod_dav_svn模块
这一步对一些老版本的Subversion来说是必须的,如果没有这一步Apache将不知如何处理上面提到过的SVN所需的模块,所有必需要配置一下Apache的httpd.conf让Apache能加载安装的模块。
命令:
vihttpd.conf
将以下两行到加到配置文件中LoadModule节的末尾。
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
目前安装的这个版本的Subversion(1.6.13)在1.4中已经将模块加载信息加入到了配置文件subversion.conf中(注意是/etc/httpd/conf.d下的subversion.conf文件而不是/etc/httpd/conf下的httpd.conf文件,新版本的subversion已经将在apache中的配置从httpd.conf文件中独立出来,这样做符合“模块化”思想,便于维护。
)见图1-11中最前面的两行。
图1-11subversion.conf文件截图
说明:
前面接到新版的Subversion在apache中的配置实现了与apaches本身配置文件在“物理上”的分离,之所以说是在“物理上”的分离因为逻辑上两者并没有分离。
在图1-12的选中部分可以看到“Includeconf.d/*.conf”,这段代码的意思就是包含conf.d文件夹中的所有.conf文件。
因此说只是“物理上”的分离。
图1-12httpd.conf文件截图
2配置版本库
2.1建立版本库目录
(可建立多个,新建库后以下各项都需重新配置。
注意区别安装目录与版本库目录,以下讲的都是版本库目录)
命令:
mkdir–p/var/www/svn/pos(-p的前后有空格)
(mkdir是创建一个目录的命令名,-p表示连续的创建目录,删除目录的命令是rmdir。
详见
类似可以创建mkdir–p/var/www/svn/pos2/var/www/svn/pos3
(注意pos2与/home之间有个空格)
(当只需要创建一个目录是有没有-p效果是一样的,但像上面的语句一次创建两个目录就必需要有-p了。
)
2.2建立svn版本库(与上面目录对应)
命令:
svnadmincreate/var/www/svn/pos
执行此命令后svn自动在pos目录下添加必须的配置文件.
注意:
版本库不同于一般的文件夹,直接在操作系统上新建文件无法被SVN识别,必须使用import等命令将文件导入版本库.
此为svn内部指令,create用于新建版本库。
请使用svnhelp查看详细说明。
2.3版本库所有者和权限修改
目前,repository目录依然为root用户所有,默认权限为755,为了让用户能够通过apache正常读写该目录,我们需要先将该目录以及该目录的上层目录svnroot的所有权交给apachehttpd(安装apachehttpd的时候,会自动增加apache用户组和apache用户),然后为了安全起见,将repository和svnroot目录的权限都改为700,apache外其他用户就没有了该目录的任何权限了。
首先,打开apache配置文件/etc/httpd/conf/httpd.conf,确保将User和Group设置为
Userapache
Groupapache
然后,进入/var/www目录,修改pos仓库的所有者
cd/var/www/svn/pos
chown-Rapache.apachepos
chcon-R-thttpd_sys_content_tpos
至此,已经为subversion的使用做好了准备工作,有了一个可由apache进行读写的版本库,只要对apache稍加设置,我们便可以通过web来访问版本库了。
结合httpd使用subversion时的身份认证和授权设置问题是需要特别注意的,将在接下来的部分进行说明。
3配置用户
身份认证文件保存用户的用户名和密码,用于确定用户身份。
3.1创建用户密码文件
执行以下命令创建用户密码文件,创建的文件位于/var/www/svn,文件名为passwd
htpasswd-c/var/www/svn/passwd(-c表示create文件)
3.2创建用户
htpasswd-m/var/www/svn/passwduser1
输入这个命令这个会让你输入user1的密码和确认密码(命令中的-m表示密码用MD5加密,关于htpasswd命令的详细使用可以使用htpasswdhelp命令查看帮助)
3.3删除用户
删除用户的命令是:
htpasswd-D/var/www/svn/passwsuser1
3.4修改密码
注意:
htpasswd没有修改用户密码的命令,如果想修改用户密码只能先删除这个用户,再创建相同的用户并设置新密码。
删除用户:
htpasswd-D/var/www/svn/passwsuser1
然后再按上面说明创建user1用户再设新密码就可以了。
接下来再创建两个用户
htpasswd-cm/var/www/svn/passwduser2
Newpassword:
*****
Re-typenewpassword:
*****
htpasswd-m/var/www/svn/passwduser3
Newpassword:
*******
Re-typenewpassword:
*******
这样user1,user2和user3这三个用户便被创建。
4配置版本库的访问权限
授权文件用于确定每个用户对特定目录的操作权限,格式可参考版本库下的conf/authz(conf目录下的authz文件用于svnserve的授权,与我们所使用的mod_authz_svn的授权文件具有相同的格式)。
因而我们可以直接把conf下的authz复制到我们想要的/home/svnroot/repository目录下,然后加以修改。
这里我以给pos项目分配权限说明subversion的授权机制,项目的目录结构如下所示:
svn
|—pos
||—trunk
||—branches
||—tags
|
|—otherprojects…
其中,trunk表示主干,branches则为项目的分支,tags存放某个版本的快照(比如说项目的里程碑)。
习惯上来说,大多数开发人的本地拷贝都来自truck目录,所以每个开发人员都应有trunk目录下自己具有权限对应文件夹的读写权限,这样他们才能正常的进行日常的开发。
而分支目录一般在,如某些开发人员需要大幅修改代码以增加新功能,或者代码进入较为稳定的阶段,开始bug去处工作等情况下使用,尽管这意味着这些代码总是有固定的一个或几个开发人员维护。
tags目录则一般用于某个版本的发布,比如当项目到达版本1834时,release1已经完成,那么就可以将它复制到tags目录,作为一个快照存放,取一个好记得多的名字,比如release1(这个文件夹应该只让某些人有写入权限,这样可以防止快照被破坏)。
回过头来看看我们已经在身份验证文件中添加的用户,现在我们有user1,user2和user3三个用户,假设其中user1是项目的pm,user2和user3则是开发人员,那么很明显了,我们需要建立两个用户组g_pm和g_dev,user1属于g_pm组,user2和user3则属于g_dev组,分别授权。
基于我们刚才的分析,g_pm组和g_dev组的用户都应该拥有对整个项目的读写权限,这也许太过简单了,不过正是我们目前的项目所需要的,什么时候需要一个复杂的授权方案,再修改authz文件也不迟。
4.1创建授权文件authz
命令
cd/var/www/svn
viauthz(vi命令一般用来查看、编辑文本文件,但如果要打开的文件不存在的话,这个命令就会创建一个新文件)
4.2创建用户群组
在authz文件中加入以下内容,注意每个有效配置行的前面都不能有空格
[groups]//群组设置
g_pm=micheal//某群组里的成员
g_dev=user2,user3
4.3创建访问规则
[pos:
/]//仓库pos的根目录的访问权限
@g_pm=r//g_pm组用户具有读和写权限,@开头的表示群组设置
@g_dev=r//g_dev用户具有读写权限
[pos:
/trunk]//仓库pos的trunk目录的访问权限
@g_pm=rw//g_pm组用户具有读和写权限
@g_dev=rw//g_dev用户具有读写权限
[pos:
/branches]//仓库pos的branches目录下的访问权限
@g_pm=rw//g_pm组用户具有读和写权限
@g_dev=rw//g_dev用户具有读写权限
[pos:
/tags]//仓库pos的tags目录下的访问权限
@g_pm=rw//g_pm组用户具有读和写权限
@g_dev=rw//g_dev用户具有读写权限
如果需要对某个用户授权,可以这么写:
[pos:
/branches]//仓库pos的branches目录下的访问权限
user3=r//user3用户具有读权限
当然,这样的authz文件显得很繁琐,而且没有必要,但是这样的配置在需求出现变化的时候将会很容易修改。
5修改subversion.conf配置文件,让Apache知道如何处理Subversion客户端
现在已经配置了Apache和Subversion,但是Apache不知道如何处理Subversion客户端,例如TortoiseSVN。
为了让Apache知道哪个URL是用作Subversion版本库,所以需要编辑/etc/httpd/conf.d下的f文件。
DAVsvn
#SVNListParentPathon
SVNParentPath/var/www/svn/pos
#SVNIndexXSLT"/svnindex.xsl"
AuthTypeBasic
AuthName"Subversionrepositories"
AuthUserFile/var/www/svn/passwd
AuthzSVNAccessFile/var/www/svn/authz
Requirevalid-user
刚才输入的代码的简短解释是:
表5-1设置Apache的subversion.conf
设置
解释
意思是Subve
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 从零开始在Linux系统Fedora 12下安装Apache+Subversion V10 从零开始 Linux 系统 Fedora 12 安装 Apache Subversion
链接地址:https://www.bdocx.com/doc/10609494.html