Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1726426
  • 博文数量: 163
  • 博客积分: 10591
  • 博客等级: 上将
  • 技术积分: 1980
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-08 18:17
文章分类

全部博文(163)

文章存档

2018年(1)

2012年(1)

2011年(47)

2010年(58)

2009年(21)

2008年(35)

分类: LINUX

2008-10-28 21:26:39

 很久没有写些东西了,今天下午老大给我说公司的subversion现在认证用户只是写在配置文件里,比较麻烦。让我试着配配svnmanager,用它来管理会好些。参考网上的一些资料,下午已经配置成了,简单的步骤写写:)
 
一、环境
Centos5.2+apache+subversion+mysql+php
 
这些都是系统安装时,一起安装上的,没有什么好说的。
 
除了上面的软件外,还有几个包关系到后面的安装:
php-mysql
php-pear
mod_dav_svn
 
通过如下命令检查:
#rpm -qa |grep php
#rpm -qa |grep mod_dav_svn
 
没有安装的话,用安装盘或yum安装就行。
 
二、集成SVN和Apache
 
1.创建仓库
 

#mkdir -p /var/svn/repos
#svnadmin create /var/svn/repos/test

#chown -R apache:apache /var/svn

2.配置apache

添加如下内容:

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so  #svn使用,顺序也要这样

 

<Location /svn/>
        DAV svn
        SVNListParentPath on
        SVNParentPath /var/svn/repos             #仓库路径
        AuthType Basic
        AuthName "ZGSM SVN"
        AuthUserFile /var/svn/passwdfile
        AuthzSVNAccessFile /var/svn/accessfile
        Require valid-user
</Location>

3.创建密码文件及访问文件

#touch /var/svn/passwdfile

#touch /var/svn/accessfile

#chown apache:apche passwdfile accessfile

4.启动apache并验证svn

#service httpd start

在浏览器里输入,看是否有提示输入用户名密码,有吗?哈哈

三、安装和配置svnmanager
 
1.下载svnmanager
 
解压并放置到/var/www/html/下
#tar zxvf svnmanager-1.03.tgz
#mv svnmanager-1.03 svnmanager
#mv svnmanager /var/www/html/
 
2.安装VersionControl_SVN
 
还记得我们最开始提到的php-pear包,安装这个包后会有/usr/bin/pear命令,我们使用它来安装VersionControl_SVN,最新的版本为0.3.1,输入下面的命令:
#pear install --alldeps VersionControl_SVN-0.3.1
 
 
3.向http.conf文件添加新内容
#vi /etc/httpd/conf/httpd.conf            添加如下内容是为了更安全:
 

<Directory "/var/www/html/svnmanager/">
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from all
</Directory>

 

4.创建svnmanager使用的mysql数据库

#service mysqld start

#mysql
mysql>create database svn;
mysql>grant all on svn.* to svnmanager@localhost identified by "111111";
mysql>flush privileges;
mysql>quit;

 

5.更改svnmanager的配置文件

#cd /var/www/html/svnmanager/

#mv config.php.linux  config.php

#vi config.php                改为如下内容:

<?php

$htpassword_cmd = "/usr/bin/htpasswd";
$svn_cmd = "/usr/bin/svn";
$svnadmin_cmd = "/usr/bin/svnadmin";

//Subversion locations

$svn_repos_loc = "/var/svn/repos";
$svn_passwd_file = "/var/svn/passwdfile";
$svn_access_file = "/var/svn/accessfile";

//If the following is set, removing a repository will cause it to be

//moved to this location rather than being deleted.

$svn_trash_loc = "";

//$svnserve_user_file = "/var/www/repos/svnserve_passwd_file";

$svnserve_user_file="";

//SMTP Server for outgoing mail

$smtp_server = "smtp.mailserver.net";



$dsn = "mysqli://svnmanager:111111@localhost/svn";


$admin_name = "admin";
$admin_temp_password = "admin";

?>

6.验证

重启apache,然后从浏览器里输入,出现了吗?:)

 

四、汉化
 
首先下载汉化包,下载地址:
我们把汉化包里的文件都替换到现有/var/www/html/svnmanager里的文件之后,还有几步要做:
1.更改/etc/php.ini文件,设置
default_charset='gb2312' 或 
default_charset='gbk‘
 
2.更改/etc/httpd/conf/httpd.conf文件,设置
AddDefaultCharset GB2312  或
AddDefaultCharset GB2312
 
重启apache之后就可以看到中文页面了,:)
 
 
五、未解决的问题:中文目录名显示不正常
 
我想大家在上面那个汉化包的下载地址已经看到了关于中文目录名的解决方法,但是我按照上面的方法做,svnmanager里用户权限设置的下拉列表里,依然无法正常显示中文目录名。我是这么做的:
 
1.修改/etc/my.cnf文件,在相应的标签下添加:
[mysqld]
character-set-server=gbk
collation-server=gbk_chinese_ci
default-character-set=gbk

[mysql.server]
default-character-set=gbk
[mysqld_safe]
default-character-set=gbk
[client]
default-character-set=gbk
 
之后用service mysqld restart重启数据库,然后用
mysql>status   查看字符集如下,默认的是latin1。
Server characterset  gbk
Db characterset      gbk
Client characterset  gbk
Conn characterset    gbk
 
2.重建数据库
因为我们上面已经建立过svnmanager使用的数据库,且字符集是latin1,现在重新建立:
#mysql
mysql>drop database svn;
mysql>create database svn;
mysql>grant all on svn.* to  identified by '111111';
mysql>flush privileges;
mysql>quit
 
3.修改svnmanager里的文件
(1)修改程序中连接数据库的字符集,也就是adodb的链接部分:
在文件 /var/www/html/svnmanager/prodo-0.2.3/framwork/data/adodb/drivers/adodb-mysqli.inc.php 中88行 
if ($argDatabasename)  return $this->SelectDB($argDatabasename);
语句前加入 一下语句:mysqli_query($this->_connectionID,"set names'gbk'");
 
(2)更改/var/www/html/svnmanager/svnmanager/library/class.accessfile.php
在文件 /libarary/class.accessfile.php 中第177行 
require ("config.php");
语句前加入以下语句 $accessfile = mb_convert_encoding($accessfile,'UTF-8','GBK');
 
 
4.重启apache,再连接,仓库的注释部分倒是可以输入中文了。
但到用户权限的页面还是无法正常显示中文目录名。
 
 
另外也试了其它几种配置,甚至重新编译mysql,默认字符集制定gbk,可都不成功,郁闷!如果哪位大侠成功了,还望执教!!!
 
 
 
六、后记
svn建立的仓库是不支持中文的,但是仓库的下面可以存在中文目录。而且如果你之前就配置过svn的用户及权限,那么使用svnmanager不能把它们导入,需要全部重新建立。
 
 
2008-10-29 晚 22:10
阅读(7594) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

benxiong2009-05-13 12:06:55

哈哈,太好了,有机会我也再试试中文目录名~~

chinaunix网友2009-04-28 10:54:07

中文目录搞定了,在楼主的文章的基础上,修改linux默认字符集为gbk /etc/sysconfig/i18n 为ZH_CN.gbk

chinaunix网友2009-04-23 16:40:16

白屏的一个重要原因是config.php中的$dsn = "mysql://root:dilisky@localhost/svnmanager";原来是mysqli,改回来就可以了。

nailxu2008-12-18 17:23:31

如果增加用户时总提示邮件地址无效,则通过修改PHP文件解决: vi /var/www/html/svnmanager/svnmanager/UserModule/AddPage.tpl 删除对邮件地址验证的行: Invalid e-mail address!

nailxu2008-12-18 17:22:24

如果不出来东西,显示白屏,则是因为PHP页面报错,但是错误信息被屏蔽了。可以修改/etc/php.ini,查找error_reporting = E_ERROR 改成 E_ALL,查找display_errors=Off 改成 On。刷新找问题。