收藏 分享(赏)

中国家配网SVN服务器 apache svnmanager系统实施方案方案.doc

上传人:精品资料 文档编号:7790654 上传时间:2019-05-26 格式:DOC 页数:36 大小:717.50KB
下载 相关 举报
中国家配网SVN服务器 apache svnmanager系统实施方案方案.doc_第1页
第1页 / 共36页
中国家配网SVN服务器 apache svnmanager系统实施方案方案.doc_第2页
第2页 / 共36页
中国家配网SVN服务器 apache svnmanager系统实施方案方案.doc_第3页
第3页 / 共36页
中国家配网SVN服务器 apache svnmanager系统实施方案方案.doc_第4页
第4页 / 共36页
中国家配网SVN服务器 apache svnmanager系统实施方案方案.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、 中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 1 -LINUX+APACHE+MYSQL+PHP+SVN+SVNMANAGER编译安装配置1.系统环境Linux: CentOS6.0 2.6.32-71.el6.x86_64Apache: apache-tomcat-7.0.23.tar.gzMysql: mysql-5.0.22.tar.gzPhp: php-5.2.12.tar.gzSvn: subversion-1.6.6.tar.bz2Svn deps: subversion-deps-1.6.6.tar.bz2Svnmanager: s

2、vnmanager-1.09.tar.gz2.安装 apache2.1 安装 apr-1.2.12tar zvxf apr-1.4.2.tar.gzcd apr-1.4.2./configure /* 安装不指定路径时 默认安装到/usr/local/aprmake ; make install2.2 安装 apr-util-1.3.9tar zvxf apr-util-1.3.9.tar.gzcd apr-util-1.3.9./configure - -with-apr=/usr/local/aprmake ; make install2.3 安装 apachetar jxvf httpd

3、-2.2.21.tar.gz /解包中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 2 -cd httpd-2.2.21 /进来准备编译安装 apachemkdir /usr/local/apache2 /这个目录用来安装 apache./configure -prefix=/usr/local/apache2 -enable-so -enable-dav -enable-dav-fs -enable-maintainer-mode/so是开启动态库支持,svn要求 apache必须启用so,dav和dav-fs 是将来svn 认证用的,mainta

4、iner是开启调试模式不加亦可。make;make install /编译并安装id apache /确认 apache 用户不存在useradd apache /添加 apache 用户,将来 apache 就以这个用户运行chown -R apache.apache /usr/local/apache2 /更改 apache 安装目录属主、组,这个不是必须的vi /usr/local/apache2/conf/httpd.conf /修改 apache 配置文件,让它以用户 apache 身份运行修改 User 和 Group 均为 apache2.安装 mysql2.1 源码编译安装ta

5、r zxvf mysql-5.0.22.tar.gz /解包cd mysql-5.0.22 /进去准备编译安装mkdir /usr/local/mysql /先创建个安装目录./configure -prefix=/usr/local/mysql /指定安装目录为刚创建的/usr/local/mysqlmake;make install /编译并安装id mysql /确认 mysql 用户不存在useradd mysql /要是 mysql 用户已经存在了,可就不要在 useradd了哦。/usr/local/mysql/bin/mysql_install_db -user=mysql /以

6、用户 mysql 身份创建默认库中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 3 -/usr/local/mysql/bin/mysqld_safe make install3.2 报错及解决方法故障描述:解决方法:cd /usr/softtar zxvf expat-2.0.1.tar.gz cd expat-2.0.1./configuremake;make install源码编译安装完成 expat 包后,重新编译安装 subversion4.检查 svn 安装配置mkdir -p /data/svndata /这个目录将作为 svn 的版本

7、库的总(父)目录使用vi /usr/local/apache2/conf/httpd.conf /apache 的配置需要做些检查和更改LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so /有这两个模块则 svn 安装是正确的,若是带 #注释的就把#删掉,同时要保证/usr/local/apache2/modules 目录下有 mod_dav_svn.so 和 mod_authz_svn.so 这两个文件。手动添加以下内容:/定义网页目录为/sv

8、nDAV svn /开启 svn(融合 apache 的中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 5 -svn 哦)SVNListParentPath On /开启 svn 版本库父目录功能SVNParentPath /data/svndata /指定父目录位置,以后所有版本库都将存放在该目录下AuthType Basic /指定授权模式AuthName “SVN REPOS“ /登陆窗口标题显示 SVN REPOSAuthUserFile /usr/local/svn/passwd /指定访问版本库的账户和密码存放文件,该文件需要用 apac

9、he 的 htpasswd 命令创建AuthzSVNAccessFile /usr/local/svn/authz /指定访问版本库的用户和组的权限控制文件Require valid-user /要求有效的用户才能访问/字段结束标志esc /按 esc 退出编辑模式shift+zz /保存退出5.测试 svn 与 apache 是否融合成功/usr/local/apache2/bin/htpasswd -c /usr/local/svn/passwdtest /创建访问版本库的账户和存放账户的文件,回车后会提示输入密码两边(我们用 gaso123 做密码),因为是第一次创建,svn_passw

10、dfile 文件原本不存在所以需要加-c 参数,以后创建 svn 用户就不需要 -c 参数了,直接引用 svn_passwdfile 文件即可vi /usr/local/svn/authz/gaso=rw /这两行授权用户 gaso 有访问所有版本库的权限gasorepo:/gaso=rw /这两行授权用户 gaso 有访问 gasorepo 版本库的权限保存退出/usr/local/svn/bin/svnadmin create /data/svndata/jps /创建 gasorepo 版本库6.启动 apache,测试 svnchown -R apache.apache /data/s

11、vndata /我们这个部署里 svn 是通过 apache 对版本库进行访问的,它对版本库进行访问其实就是通过 apache 的用户 apache 来进行的,所以版本库父目录就必须属于用户 apache 才能规避权限问题,最后的 svnmanager 也有同样的问题,所以这个属主修改很重要!chown -R apache:apache /usr/local/svn/usr/local/apache2/bin/httpd -k start /启动 apache在浏览器里输入 http:/localhost/svn/jps /输入用户名 gaso和密码 gaso123 就可以看到版本库了,不过里

12、面没东西:)也可以直接访问 http:/192.168.1.25/svn/jps /这个直接访问版本库总目录中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 6 -故障描述:重启 apache 服务,出现如下故障rootsvn svnmanager# /usr/local/apache2/bin/httpd -k restarthttpd: Could not reliably determine the servers fully qualified domain name, using :1 for ServerName解决方案:在 apache

13、配置文件中添加条目:servername localhost:80Vi /usr/local/apache2/conf/httpd.confservername localhost:807.安装 phpyum y install libxml2 libpng zlib libiconvlibxml2gdtar zxvf php-5.2.4.tar.gzcd php-5.2.4mkdir /usr/local/php./configure -prefix=/usr/local/php -with-apxs2=/usr/local/apache2/bin/apxs mysql=/usr/local

14、/mysql -with-freetype-dir -with-jpeg-dir=/usr/lib -with-png-dir -with-zlib -with-libxml-dir=/usr -enable-xml -disable-rpath -enable-discard-path -enable-safe-mode -enable-bcmath -enable-shmop -enable-sysvsem -enable-inline-optimization -with-curl -with-curlwrappers -enable-mbregex -enable-fastcgi -e

15、nable-force-cgi-redirect -enable-mbstring -with-mcrypt -with-gd -enable-gd-native-ttf -enable-pcntl -enable-sockets -with-xmlrpc -enable-zip -enable-soap /php 用 apxs2 指定 apache2.0,用 apxs 指定apache1.x,所以这里用 apxs2,因为 svnmanager 要用到 mysql 所以这里还要withmysqlmake;make installcp php.ini-recommended /usr/local

16、/php/lib/php/php.ini /拷贝 php 的配置文件到它该去的地儿编辑这个 php.ini,添加一行 include_path = /usr/local/php/lib/php报错信息:configure: error: libjpeg.(a|so) not found.解决方案:cp -frp /usr/lib64/libpng.* /usr/lib/cp -frp /usr/lib64/libpng* /usr/lib/报错:configure: error: mcrypt.h not found. Please reinstall libmcrypt.安装:libmcry

17、pt报错:/usr/bin/ld: cannot find -lltdlcollect2: ld returned 1 exit statusmake: * libphp5.la Error 1解决方案:cd /usr/soft/svn/libmcrypt-2.5.8/libltdl中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 7 -./configure -enable-ltdl-installmake;make install8.测试 php 安装是否成功vi /usr/local/apache2/conf/httpd.conf /修改 apa

18、che 配置文件检查是否有以下内容,没有则添加:LoadModule php5_module modules/libphp5.so /没有这个模块就手工添加,同时要检查 apache 的安装目录里 modules 目录下,要保证有 libphp5.so 这个文件添加 php 支持文件类型:AddType application/x-compress .ZAddType application/x-httpd-php .phpAddType application/x-gzip .gz .tgzAddType application/x-httpd-php .htmlAddType applic

19、ation/x-httpd-php .htmDirectoryIndex index.php index.html /主要是加上 index.phpvi /usr/local/apache2/htdocs/index.php /编辑一个 php 测试文件加入以下内容:保存退出重新启动 apache/usr/local/apache2/bin/httpd -k restart访问能看到 apache 的 php 信息页面则说明 php 安装成功故障描述:通过 http:/192.168.1.25/index.php 访问,测试结果如下:证明 php 和 apache 没有加载成功,重新编译安装

20、php9.安装 VersionControl_SVN/usr/local/php/bin/pear install VersionControl_SVN-0.3.3 /pear 是安装php 的时候默认安装的,VersionControl_SVN 这个软件是 svnmanager 需要用到的,必须安装10.安装 svnmanager中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 8 -tar zxvf svnmanager-1.08.tar.gzcp -r svnmanager-1.08 /usr/local/apache2/htdocs/svnma

21、nager /把解压出来的文件复制到 apache 的站点根目录 htdocs 里cd /usr/local/apache2/htdocs/svnman/cp config.php.linux config.php /把配置文件重命名一下编辑 config.php,修改以下几项内容:/Shell commands$htpassword_cmd = “/usr/local/apache2/bin/htpasswd“; /告诉svnmanager apache 的密码生成执行文件的位置$svn_cmd = “/usr/local/svn/bin/svn“; /告诉svnmanager svn 命令

22、的执行目录$svnadmin_cmd = “/usr/local/svn/bin/svnadmin“; /告诉svnmanager svnadmin 命令的执行目录/Subversion locations$svn_config_dir = “/data/svndata“; /告诉 svnmanager svn 的配置目录,通常指到版本库父目录或者版本库目录即可$svn_repos_loc = “data/svndata“; /告诉 svnmanager svn 的版本库父目录在哪里,这个跟上面那个 configdir 我也搞不清楚到底有什么区别,我一般就是指到版本库父目录就没问题,上面的 c

23、onfigdir要是注释掉则会报错$svn_passwd_file = “/usr/local/svn/passwd“; /告诉svnmanager svn 的账户密码文件的位置$svn_access_file = “/usr/local/svn/authz“; /告诉svnmanager svn 的权限控制文件的位置$dsn = “mysql:/root:123com localhost/svnmanager“; /指定 mysql 连接的信息,这行要注意原文可能是 mysqli:/多数情况下都需要改成mysql:/,有时候不改可能会导致连不上 mysql,最后的 svnman 为 svnm

24、anager 将要使用的数据库,会在后面创建。$admin_name = “admin“; /本行和下面一行指定 svnmanager 首次登陆的初始账号和密码,这两行就不需要改了$admin_temp_password = “admin“;保存退出10.创建 svnmanager 使用的数据库/usr/local/mysql/bin/mysql -u root -p输入密码: (默认为空)mysqlcreate databasesvnmanager; /刚才在 svnmanager 的配置文件 config.php 里面指定的 mysql 连接信息的那个库就是这个。mysqlexit中国家配

25、网 SVN+apache+mysql+php+svnmanager 系统实施方案- 9 -11.SVN 版本库创建11.1 建立 svn 版本库本系统采用为每个项目单独建一版本库的策略。配置文件,密码文件,访问控制文件等都放在版本库的 conf 目录下。所以每次开始一个新项目都必须新建一个版本库,并重新配置各配置文件。还有很重要的一条,要求各组员重新配置客户端,包括服务器版本库路径,本地路径等信息。 建立版本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)mkdir p /data/svndata/jps 建立 svn 版本库(与上面目录

26、对应 )svnadmin create /data/svndata/jps执行此命令后 svn 自动在 repos 目录下添加必须的配置文件.注意:版本库不同于一般的文件夹,直接在操作系统上新建文件无法被 SVN 识别, 必须使用 import 等命令将文件导入版本库.svnadmin create /data/svndata/jps导入现有项目假设有一个项目,其架构如下:# cd /data/svndata/jps/ (查看 svn 项目目录结构)# lsJps|-|-ALL/|-HR/|-信息资产部/|-加盟部/|-市场部/|-技术管理部/|-系统产品部/|-经营班子/|-网络产品部/|-

27、行政部/|-财务部/|-运营维护部/ |-产品技术部/通过 svn 的 import 方式,就可以把现有的项目结构及文件导入仓库中:rootmail svndata svn import /data/svndata/jps/ file:/data/svndata/jps -m “初始化“这样,会把/data/svndata/jps 作为根目录,其下面的所有目录作为子目录,把其下的目录和文件放入 Repository 的根目录中。使用 list,可显示 Repository 的内容:中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 10 -svn lis

28、t file:/data/svndata/jpsrootmail svndata# svn list file:/data/svndata/jpsALL/HR/信息资产部/加盟部/市场部/技术管理部/系统产品部/经营班子/网络产品部/行政部/财务部/运营维护部/产品技术部/如果希望把/data/svndata/jps/HR 作为根目录,需要设置其父目录/data/svndata/jps放入 repos 版本库svn import /data/svndata/jps/ file:/data/svndata/jps -m “初始化“ 反正,对于一个项目而言,import 的工作通常只进行一次,然后

29、是在该基础上进行添加、调整、删除等工作。可以通过 export 一个 SVN_EDITOR 变量,当进行 commit 等更新、提交工作时,作为输入-m (messages)信息的编辑器:# export SVN_EDITOR=“/bin/vi“11.2 手动配置 svn 版本库配置11.2.1 配置 svn 配置文件版本库 1:vi /data/svndata/jps/conf/svnserve.conf(我们 svn 配置文件路径:/usr/local/svn/passwd(口令配置)、authz(权限配置)内容修改为:generalanon-access = noneauth-acces

30、s = writepassword-db = /data/svndata/jps/conf/pwd authz-db = /data/svndata/jps/conf/authz realm = jps(注意:把文件中上面各项前面的# 号去掉,然后去掉他前面的空格。保存)版本库 2:中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 11 -vi /data/svndata/jps/conf/svnserve.conf内容修改为:generalanon-access = noneauth-access = writepassword-db = /data

31、/svndata/conf/pwd authz-db = /data/svndata/conf/authzrealm = repos即除 realm = repos 外,其他与版本库 1 配置文件完全相同。如果有更多的版本库,依此类推。这里的各配置项意思是:anon-access 指匿名访问的权限,可以是 read,write,none,默认为 read,这个建议配为 noneauth-access 指认证用户的权限,可以是 read,write,none,默认为 writepassword-db 指密码数据库的路径,去掉前面的,存的是认证用户的用户名和密码,uername=passwdaut

32、hz-db 实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限(注意:把文件中上面各项前面的# 号去掉,然后去掉他前面的空格。保存)11.2.2 配置允许访问的 svn 用户vi /data/svn/conf/pwd.conf为了简化配置,2 个版本库共用 1 个用户配置文件。如有必要,也可以分开。注意:对用户配置文件的修改立即生效,不必重启 svn。文件格式如下:users= = 其中,users是必须的。下面列出要访问 svn 的用户,每个用户一行。示例:usersalan = passwordking = hello11.2.3 配置 svn 用户访问权限Vi /data/

33、svn/conf/authz.conf为了简化配置,2 个版本库共用 1 个权限配置文件/data/svn/conf/pwd.conf。如有必要,也可以分开。文件中定义用户组和版本库目录权限。注意:* 权限配置文件中出现的用户名必须已在用户配置文件中定义。中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 12 -* 对权限配置文件的修改立即生效,不必重启 svn。用户组格式:groups= ,其中,1 个用户组可以包含 1 个或多个用户,用户间以逗号分隔。版本库目录格式::/项目/ 目录 = = 其中,方框号内部分可以有多种写法:/表示根目录及以下。根

34、目录是 svnserve 启动时指定的,我们指定为/data/svndata。这样,/就是表示对全部版本库设置权限。jps:/表示对版本库 1 设置权限repos:/abc 表示对版本库 2 中的 abc 项目设置权限repos:/abc/aaa 表示对版本库 2 中的 abc 项目的 aaa 目录设置权限权限主体可以是用户组、用户或*,用户组在前面加 ,*表示全部用户。权限可以是 w、r、wr 和空,空表示没有任何权限。示例:groupsadmin = alan/admin = rwrepos1:/abc/aaa11.2.4 配置完毕,删除无用文件rm /data/svndata/jps1/

35、conf/authzrm / data /svndata/repos1/conf/passwdrm / data /svndata/repos2/conf/authzrm / data /svndata/repos2/conf/passwd11.2.5 启动 SVN11.2.5.1 建立启动 svn 的用户useradd jpssvnpasswd C根据提示为用户 jpssvn 设置密码允许用户 jpssvn 访问版本库chown -R jpssvn:jpssvn /data/svndata(这里我是直接用 root 启动的)中国家配网 SVN+apache+mysql+php+svnmana

36、ger 系统实施方案- 13 -11.2.5.2 启动 svn用设定帐户启动su jpssvn -c “svnserve -d -listen-port 1039 -r /data/svndata“其中:su jpssvn 表示以用户 jpssvn 的身份启动 svn-d 表示以 daemon 方式(后台运行)运行-listen-port 1039 表示使用 1039 端口,可以换成你需要的端口。但注意,使用 1024 以下的端口需要 root 权限-r /data/svndata 指定根目录是/data/svndata(2 )对于单个代码仓库:启动命令: svnserve -d -r 文件夹

37、路径-listen-host 192.168.1.20 其中-d 表示在后台运行, -r 指定服务器的根目录,这样访问服务器时就可以直接用 svn:/ 服务器 ip 来访问了。如果服务器有多 ip 的话-listen-host 来指定监听的 ip 地址.可以在 svn 客户端中通过 svn:/192.168.1.20 来访问 svn 服务器(3 )对于多个代码仓库:我们在启动时也可以用-r 选项来指定服务器根目录, 但访问时需要写上每个仓库相对于 svn 根目录的相对路径 .假如我们有两个代码仓库/data/svndata/jps1 和/data/svndata/jps2, 我们用:svnse

38、rve -d -r /data/svndata listen-port 端口号 -listen-host 主机 ip 来启动, 那么在客户端访问时可以用 svn:/192.168.1.20:1039/repos1 和svn:/192.168.1.20:1040/repos2 来分别访问两个项目启动完成以后启动的方法:rootaustit fabian# svnserve -d -r /data/svndata -listen-port 1039 -listen-host 192.168.1.20注意:svn 默认端口是 3690 ,你需要在防火墙上开放这个端口。也可以通过svnserve 的-

39、listen-port 选项来指定一个已经开放的其他端口, 不过这样的话客户端使用也必须家上端口, 如 svn:/192.168.100.200:1039/repos11.2.6 检查是否启动成功查看 svnserve 进程:ps -ef|grep svnserve如果显示如下,即为启动成功:svn 6941 1 0 15:07 ? 00:00:00 svnserve -d -listen-port 1039 -r /data/svndata用 root 帐户启动:rootaustit fabian# svnserve -d -r /data/svndata -listen-port 1039

40、-listen-host 192.168.1.20用 jpssvn 账户启动:rootaustit fabian# su jpssvn -c “svnserve -d -listen-port 1039 -r /data/svndata“rootaustit fabian# ps -ef|grep svnserveroot 3720 1 0 Jan09 ? 00:00:00 svnserve -d -listen-port=1039 -r /data/svndata中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 14 -11.2.7 文档导入 SVN

41、11.2.7.1 设置工作目录工作目录路径:/data/svndata/sharesvn import /data/svndata/sharefile:/data/svndata/jps -m “initial import“或者svn import /data/svndata/share svn:/192.168.1.20:1039/jps -m “initial import“11.2.7.2 查看版本库svn list svn:/192.168.1.20:1039/jps或者:svn list file:/data/svndata/jps 11.2.7.3 从版本库检出svn co sv

42、n:/192.168.1.20:1039/jpsjps11.2.8 SVN 开机自启动11.2.8.1 创建开机自启动脚本创建 svn 开机自启动脚本: /etc/init.d/svnserve#!/bin/sh# description: Svnserve auto start-stop script.# chkconfig: 345 91 91#. /etc/init.d/functionsSVN_HOME=/data/svn/binSVN_OWNER=jpssvnif ! -f “$SVN_HOME/svnserve“ thenecho “svnserver startup: canno

43、t start“exitfistart() $SVN_HOME/svnserve -d -listen-port 1039 -r /data/svndataecho “svnserve is runing. “stop() killproc svnserveecho “svnserve is stoped“restart() 中国家配网 SVN+apache+mysql+php+svnmanager 系统实施方案- 15 -killproc svnserveecho “svnserve is stoped“$SVN_HOME/svnserve -d -listen-port 1039 -r /

44、data/svndataecho “svnserve is runing. “# See how we were called.case “$1“ instart)start;stop)stop;restart)restart;esacexit 011.2.8.1 设置脚本权限添加脚本可执行权限:chmod 755 /etc/init.d/svnserve11.2.8.2 创建运行级别脚本连接ln s /etc/init.d/svnserve /etc/rc.d/rc3.d/S91svnserveln s /etc/init.d/svnserve /etc/rc.d/rc4.d/S91svnserveln s /etc/init.d/svnserve /etc/rc.d/rc5.d/S91svnserve11.2.8.3 添加到开机启动程序chkconfig add avnservechkconfig -levels svnserve 345 on11.2.9 SVN 账户管理11.2.9.1 禁止匿名登录修改用户配置文件 svnserve.conf,配置文件路径:/data/svndata/jps/conf/svnserve.conf找到 anon-access = read,修改为: anon-access = none,表示匿名登陆下的用户权限为空。即:系统不支持匿名登

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报