subversion Apache viewvc 代码语法高亮配置

来源:互联网 发布:淘宝怎么开通海外渠道 编辑:程序博客网 时间:2024/06/01 11:22
subversion Apache 配置

0、文件准备:
|————————————————————————————
|  svn-win32-libintl dll
│  highlight-setup-3.13.exe (可不需要)
│  httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
│  viewvc-1.1.20.tar.gz

│ Pygments-1.6.tar.gz  

│ Pygments-1.6-py2.6.egg

│ setuptools-0.6c11.win32-py2.6.exe


├─python

│      python-2.6.6.msi
│      pywin32-218.win32-py2.6.exe
│      
├─svn1.6.21
│      svn-win32-1.6.21.zip
│      svn-win32-1.6.21_py.zip
│      
├─svn1.6.6
│      svn-python-1.6.6.win32-py2.6.exe
│      svn-win32-1.6.6.zip
│      svn-win32-1.6.6_py26.zip
│      
└─svn1.7.9
        svn-win32-1.7.9.zip
        svn-win32-1.7.9_py26.zip
        
1、安装好 subversion 1.6.21、 Apache 2.2.22

2、修改配置文件 httpd.conf

(1)Apache 中集成添加 subversion 支持

去掉注释
#for subversion
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

添加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
也可以添加绝对路径
#for subversion
LoadModule authz_svn_module "D:/Program Files/svn-win32-1.6.21/bin/mod_authz_svn.so"
LoadModule dav_svn_module "D:/Program Files/svn-win32-1.6.21/bin/mod_dav_svn.so"

文件结尾添加

<Location /svn>
DAV svn
SVNPath E:\svnrepos1
</Location>

(2)添加Subversion权限控制

配置SVN访问权限

如C:\svn\test\conf
authz         用于目录权限控制
passwd        帐号和密码管理
svnserve.conf svn配置文件
--------------------------------------------------------------
svnserve.conf 文件配置详解

anon-access = none|read|write
决定非授权用户的访问级别。
write 访问允许所有的仓库操作。
read 访问允许所有操作,除了提交和修改版本属性。
none 不允许任何访问。
默认级别是 read。
auth-access = none|read|write
决定授权用户的访问级别,使用与上面相同的访问级别。默认级别是 write。
password-db = filename
设置密码数据库的位置。默认:passwd
realm = realm-name
设置仓库的授权域 (realm)。如果两个仓库拥有相同的密码数据库,它们应当在同一个域中,
反之亦然;这样的关联可以允许客户端为多个仓库使用单一的密码缓存。
默认域的值是仓库的路径,相对于服务器进程的虚根目录。
--------------------------------------------------------------
passwd 文件配置详解:
[users] #用户配置
username = password
用户名 = 用户密码
--------------------------------------------------------------
authz 文件配置详解:
如:
[groups] # 组配置
admin = username
user  = username2
组名  = 用户名

#目录权限控制
如:
[\] #跟目录
@admin = rw #r可以读 w可写
[\test] #\test\
@user = r   #r可以读

==============================================================
配置web查看权限:
httpd.conf
----------------------------------------------------------
# web-svn 查看权限
<Location /svn>
   DAV svn
   AuthType Basic                       #启用用户权限
   AuthName "Subversion repositories"   #web用户登入界面提示语
   AuthUserFile C:\svn\password.conf    #密码文件
   Require valid-user                   #限定用户只有输入正确的用户名及密码后才能访问这个路径
   SVNParentPath C:\svn                 #svn仓库目录
</Location>
----------------------------------------------------------
# web-viewvc 查看权限
<Location /viewvc>
   AuthType Basic                       #启用用户权限
   AuthName "Subversion repository"     #web用户登入界面提示语
   AuthUserFile C:\svn\password.conf    #密码文件
   Require valid-user                   #限定用户只有输入正确的用户名及密码后才能访问这个路径
</Location>


==========================================================
配置密码文件
----------------------------------------------------------
C:\Program Files\CollabNet\Subversion Server\httpd\bin
----------------------------------------------------------
htpasswd -cmb c:\svn\password.conf abc 123456

c:create
m:md5
b:在命令行上输入密码
D:删除帐号

解释:创建password.conf文件,增加用户名为abc的用户,密码为md5加密的123456

更新密码
htpasswd password.conf abc
添加新用户
htpasswd password.conf abcd
删除用户
htpasswd -D password.conf abcd
==========================================================


3、添加viewvc代码查看功能
(1)安装Python 2.6.6 ,并安装好python win32 接口支持包 win32-py2.6
(2)将subversion Python Buildling 复制到到python安装目录的lib子目录下。
    解压缩svn-win32-1.6.21_py.zip,将svn、libsvn 复制到 C:\Python26\Lib 下
(3)解压缩 viewvc-1.1.20.tar.gz ,例如 D:\viewvc-1.1.20
    进入此目录执行 python viewvc-install 安装到 D:\Program Files\viewvc1120
    安装完后显示如下内容:    
    ViewVC file installation complete.

    Consult the INSTALL document for detailed information on completing the
    installation and configuration of ViewVC on your system.  Here's a brief
    overview of the remaining steps:

      1) Edit the d:\Program Files\viewvc1120\viewvc.conf file.

      2) Either configure an existing web server to run
         d:\Program Files\viewvc1120\bin\cgi\viewvc.cgi.

         Or, copy d:\Program Files\viewvc1120\bin\cgi\viewvc.cgi to an
         already-configured cgi-bin directory.

         Or, use the standalone server provided by this distribution at
         d:\Program Files\viewvc1120\bin\standalone.py.

(4)修改httpd.conf ,
(line 200)添加:
# for subversion viewvc
<Directory "D:/Program Files/viewvc1120">
    Order allow,deny
    Allow from all
</Directory>

(line 337)添加:
    # for subversion viewvc
    ScriptAlias /viewvc "D:/Program Files/viewvc1120/bin/cgi/viewvc.cgi"
    ScriptAlias /query "D:/Program Files/viewvc1120/bin/cgi/query.cgi"

(5) 编辑 viewvc.conf 文件,
    找到(line 112),修改
        svn_roots = svnrepos: E:/svnrepos1
    找到line 170 ,修改
        default_root = /

问题解决:

ImportError: DLL load failed: 找不到指定的程序。

1)、如果配置完python和svn-python 后仍然不能正常显示svnrepos,按如下方式尝试:
用 svn-win32-1.6.6_py26.zip 覆盖  svn-win32-1.6.21_py.zip (解压缩到python26 lib目录 )
安装 svn-python-1.6.6.win32-py2.6.exe
svn-win32-1.7.9.zip覆盖 svn 1.6.6 服务器端所有二进制文件
svn-win32-1.7.9_py26.zip 重新覆盖 python26 lib目录 下的文件
svn-win32-libintl dll

2)、需要将subversion和apache的环境变量加入,不然可能会报找不到Dll的错误。

Path=D:\devtools\MinGW-full-gcc-multi-Sep-2011\bin;D:\program files\Apache HTTP
Server\bin;D:\program files\Subversion\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WIN

3)、Apache应该用VC6版本的,之前就是一直用VC2008编译版本的,总是提示找不到Dll错误。


4、viewvc添加代码语法高亮功能

语法高亮用 Pygments 实现

(1)解压准备好的 Pygments-1.6.tar.gz

  1. Download the most recent tarball from the download page
  2. Unpack the tarball
  3. sudo python setup.py install

Note that the last command will automatically download and install setuptools if you don't already have it installed. This requires a working internet connection.

This will install Pygments into your Python installation's site-packages directory.


如果你连接到了internet的话,也可以用 easy_install 自动安装,

先安装好 easy_install ,执行:

setuptools-0.6c11.win32-py2.6.exe

进入python26 Scripts 目录,执行:

easy_install Pygments


(2)修改 viewvc.conf

enable_syntax_coloration = 1