`

RedHat Linux5下apache+svn+trac配置手册

 
阅读更多

 

vn+trac在ubuntu下配置比较简单(http://reedyan.blog.51cto.com/1705672/422886),什么依赖包都给你准备好了,可在redhat就没那么简单了,不过还是要配置啊,下面是蛋疼的配置过程:

-------------安装前准备(统一存放路径:/home/trac,要注意版本问题)--------------

1.       apache:http-2.2.16.tar.gz

2.       python:python 2.4.3(系统自带)

3.       sqlite:sqlite 3.3.6(系统自带)

4.       Genshi:Genshi-0.6.tar.gztrac0.11版本以后代替了clearsilver

5.       Subversion:subversion-1.4.4.tar.gz

6.       Pysqlite: pysqlite-2.5.5.tar.gzpython 2.5以上版本不需要)

7.       Apr-util:Apr-util-1.2.7.tar.tar(支持Subversion

8.       Apr:Apr-1.2.7.tar.tar(支持Subversion

9.       Setuptools:setuptools-0.6c11.tar.gz(支持trac

10.   trac:Trac-0.12.tar.gz

-------------安装过程(以“#”开头的均为命令)------------------------------------------

A.      安装apache

  1. 如系统已安装httpd,最好先卸载掉重新安装

#rpm –e httpd - -nodeps

  1. 解压、编译、安装

trac#tar –zxvf http-2.2.16.tar.gz

trac#cd httpd-2.2.16

http-2.2.16# ./configure --enable-dav --enable-so --enable-ssl --enable-maintainer-mode --prefix=/usr/local/apache2 --enable-mods-shared=all

http-2.2.16#make

http-2.2.16#make install

  1. 安装完毕,启动httpd,输入“http://ip”能看到“it works”证明成功。

http-2.2.16# /usr/local/apache2/bin/apachectl start

B.      安装aprapr-util

apr apr-util 这两个软件是对后端服务软件进行优化的。因为apache作为前端web服务器软件,如果要整合一些后端的web服务器软件的话,如tomcat ,就要用到这两个软件了。这两个软件系统是自带的,也可以下载源码包安装。都市要编译进apache里面去的,以模块的形式。)

  1. 安装apr

trac# tar -xvf apr-1.2.7.tar.tar

trac# cd apr-1.2.7

apr-1.2.7# ./configure

apr-1.2.7#make

apr-1.2.7#make install

  1. 安装apr-util

trac# tar -xvf apr-util-1.2.7.tar.tar

trac# cd apr-util-1.2.7

apr-util-1.2.7#./configure --with-apr=/usr/local/apr/

apr-util-1.2.7#make

apr-util-1.2.7#make install

C.       安装subversion

  1. trac# tar -zvxf subversion-1.4.4.tar.gz
  2. trac# cd subversion-1.4.4
  3. subversion-1.4.4# ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2/bin/apr-1-config  --with-apr-util=/usr/local/apr/bin/apu-1-config --prefix=/usr/local/sv

编译时可能出现错误
编译SVN遇到undefined symbol: sqlite3_open_v2的解决办法
At 2010-04-12 02:24. 笔记
在linux下编译svn,编译完重启apache的时候遇到
 
错误
	1. starting httpd: httpd: Syntax error on line 206 of /etc/httpd/conf/httpd.conf: Cannot load /usr/lib/httpd/modules/mod_dav_svn.so into server: /usr/local/svn/lib/libsvn_subr-1.so.0: undefined symbol: sqlite3_open_v2   
在网上搜了半天,几乎都是千篇一律的采集来的解决不了问题的答案.
 
后来在了老大的帮助下,终于在INSTLL文档中找到的原因
 
文档
	1. 13. SQLite  (REQUIRED)  
	2.   
	3.       Subversion (starting with version 1.6) requires SQLite version  
	4.       3.4.0 or above, and you can meet this dependency several ways:  
	5.         * Use an SQLite amalgamation file.  
	6.         * Specify an SQLite installation to use.  
	7.         * Let Subversion find an installed SQLite.  
	8.   
	9.       To use an SQLite-provided amalgamation, just drop sqlite3.c into  
	10.       Subversion's sqlite-amalgamation/ directory, or point to it with the  
	11.       --with-sqlite configure option.  This file also ships with the Subversion  
	12.       dependencies distribution, or you can download it from SQLite:  
	13.   
	14.           http://www.sqlite.org/download.html  
 
也就所需要把sqlite安装目录下的sqlite3.c复制到svn的目录下的sqlite-amalgamation/目录下就可以了,也可以直接把sqlite目录复制为sqlite-amalgamation.
命令
	1. # cp /tmp/sqlite/sqlite-3.6.23/ /tmp/svn/subversion-1.6.9/sqlite-amalgamation/   
注意,这样编译的时候就不需要指定sqlite的目录了
 

  1. subversion-1.4.4#make
  2. subversion-1.4.4#make install
  3. 安装成功的话,/usr/local/apache2/modules里应该有mod_dav_svn.so

mod_authz_svn.so。如果没有就在httpd.conf中添加:

#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

  1. 配置svn(整合apache+svn

1 配置到第6步的时候,输入“svn”会提示“Type 'svn help' for usage.”,证明svn已经安装成功。

2)创建版本库

home#mkdir svn(我在home目录下建立一个svn目录来保存版本库)

home# svnadmin create /home/svn/s1(创建s1版本库,创建完之后用ls命令查看一下,如果生成很多文件就表示创建成功啦~

3)导入文件到版本库

home# svn import /share/www file:///home/svn/s1 -m “注释”(把/share/www目录下的导入到当前版本库下,这个功能我没试过,不知道行不行,这一步不用也可以继续配置)

4)配置版本库目录安全性

#chmod –R 700 /home/svn(不让其他人有该目录的权限)

修改http.conf文件的:

#vi /usr/local/apache2/conf/httpd.conf(这个是我系统路径)

User daemon

Group daemon

把上述内容改成:

User apache

Group apache

(注意:我的系统在安装apache的时候,自动增加了apache用户和apache,如果你系统没有这个用户和组,则请自己添加该用户和组)

5)修改svn版本库的所有者

#chown –R apache:apache /home/svn

6)配置apache支持svn

#vi /usr/local/apache2/conf/httpd.conf

在文件末尾添加以下内容:

<Location /svn>

DAV svn

SVNParentPath /home/svn  #版本库的根目录,请查看第二步

AuthType Basic #连接类型设置 基本验证

AuthName "Hello welcome to here" #登录时提示对话框的内容

AuthUserFile /home/svn/passwd #访问版本库用户的文件,此处用apachehtpasswd命令生成

AuthzSVNAccessFile /home/svn/auth.conf #版本库权限文件爱你

Require valid-user #"Require valid-user"告诉apacheauthfile中所有的用户都可以访问

</Location>

保存退出,重启一下apache

# /usr/local/apache2/bin/apachectl –k restart

到处,在浏览器访问http://ip/svnsvn是我的版本库目录)会提示用户名和密码,这是好事来的,继续配置。

7)配置svn权限管理(配置/home/svn/auth.conf

7.1)添加用户

#/usr/local/apache2/bin/htpasswd –c /svn/passwd user1

第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加,第二次添加用户不需要带 参数 :

# /usr/local/apache/bin/htpasswd /svn/passwd user2

7.2)权限分配

#vi /home/svn/auth.conf

[groups] /*这个表示群组设置

Admin=usr1,user2 /*这个表示admin群组里的成员 user1,user2

Develop=u1, u2 /*这个表示Develop群组里的成员 u1,u2

[svn:/] /*这表示,仓库svn的根目录下的访问权限

user1 = rw /*www仓库user1用户具有读和写权限

user2 = r /* www仓库userl用户具只有读权限

@develop=rw /*这表示  develop的成员都具有读写权限

[/] /*这个表示在所有仓库的根目录下

* = rw /*这个表示对所有的用户都具有读写权限

注意:在编辑authz.conf文件时,所有行都必须要顶头写,不能有缩行出现,否则会报错:"Access denied: 'user1' ",里面的内容可以根据自己的需要自行添加,不必与我上面所写的相同!

8)重启apache

如果访问http://ip/svn/s1s1是我刚才建的一个版本库)提示输入用户名密码,输入刚才创建的用户名和密码登录进去看到“Revision 0: /”之类的就表示成功啦!

9apache+svn配置完成。

 

 

接(一)

D.      安装Genshi

  1. 解压

trac# tar -zxvf Genshi-0.6.tar.gz

  1. 安装

trac#cd Genshi-0.6

Genshi-0.6# python setup.py install

E.      安装pysqlite

  1. 解压

trac# tar -zxvf pysqlite-2.5.5.tar.gz

  1. 安装

trac#cd pysqlite-2.5.5

pysqlite-2.5.5# python setup.py install

  1.  

F.       安装setuptools

  1. 解压

trac# tar -zvxf setuptools-0.6c11.tar.gz

  1. 安装

trac# cd setuptools-0.6c11

setuptools-0.6c11# python setup.py install

G.      安装Trac

  1. 解压

trac# tar -zxvf Trac-0.12.tar.gz

trac# cd Trac-0.12

  1. 安装

Trac-0.12# python setup.py install

H.       配置trac+apache

  1. 装好trac后,使用trac-admin初始化一个项目p4,根目录为mypro,修改目录用户组。

新建一个目录:

#mkdir /home/mypro

修改用户组为apache

#chown –R apache:apache /home/mypro

新建一个p4项目:

#trac-admin /home/mypro/p4 initenv

这个命令即可启动初始化/home/trac/my_project项目的交互进程,是建立trac项目,运行后提示如下:
    Project Name [My Project]> 
输入项目名称
    Database connection string [sqlite:db/trac.db]> 
因为前面使用的是sqlite 所以直接回车即可
    Repository type [svn]>
仓库类型svn回车
    Path to repository [/path/to/repos]>
回车
    Templates directory [/usr/share/trac/templates]> 
模板路径,还是回车

  1. 测试新建项目

trac有两种方式提供web服务,其一是trac自带的tracd,它本身就是一个httpd,启动方式如下:

#tracd --port 8000 /home/trac/my_project

或者你有两个项目,则在后面加一个目录:

#tracd --port 8000 /home/trac/my_project1 /home/trac/my_project2

这种方式很简单,但问题是trac本身都不建议你用,因为tracd不够完善.

但不管怎么样,你可以试用一下tracd,看看你的安装配置是不是都可以work了,毕竟加上apache,是件相对复杂很多的事情,所以,在这之前用tracd来检验一下还是必要的。

启动服务后,你就可以在一台客户机上使用浏览器来来浏览你开启的web服务了。比如:

http://localhost:8000/my_project

如果可以看到trac的默认首页,就说明是OK的,然后就开始将trac集成到apache.

trac集成的到apache有很多方法,可以使用mod_python模块,可以使用cgi模块或者fast-cgi模块

我这里使用了cgi模式,这个方法比较简单。如果你需要速度快一点,那使用fast-cgi好了.
首先把trac源代码目录中cgi-bin目下的两个文件拷贝到你存放cgi的地方,比如/usr/local/apache2/cgi-bin目录下。

#cp /home/trac/Trac-0.12/cgi-bin /usr/local/apache2/cgi-bin其中/home/trac/Trac-0.12是我trac的安装目录,/usr/local/apache2是我apache安装目录

  1. 修改http.conf配置文件

#vi /usr/local/apache2/conf/httpd.conf

在末尾添加以下内容

#config trac

#以下这句我也不是很明白,在官网那里找的

ScriptAlias /mypro /usr/local/apache2/cgi-bin/trac.cgi

# Trac needs to know where the database is located

#/mypro是我当前的trac根目录

<Location /mypro>

  #单个项目时用这样写

  SetEnv TRAC_ENV /home/mypro/p3

  #多个项目这样写

  SetEnv TRAC_ENV_PARENT_DIR /home/mypro

  #使用svn共享的密码认证

  AuthType Basic

  AuthName "Trac user login"

  AuthUserFile /home/svn/passwd

  Require valid-user

</Location>

#以下这句我也不是很明白,在官网那里找的

Alias /usr/local/apache2/cgi-bin/trac.cgi /home/trac/Trac-0.12/trac/htdocs

<Directory /home/trac/Trac-0.12/trac/htdocs>

  Order allow,deny

  Allow from all

</Directory>

  1. 简历python egg快取目录(没有此项好像打不开)

#mkdir /var/www/.python-eggs

#chown -R apache:apache /var/www/.python-eggs

  1. 此时再打开http://ip/mypro会看到trac的首页。

I.       基本配置完成。

  剩下的工作就是研究下trac啦!

 

 

本文出自 “芦苇丛中” 博客,请务必保留此出处http://reedyan.blog.51cto.com/1705672/425051

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics