SVNMANGER 安装
- 环境:
centos-7.9
mysql-5.7
subversion-1.8.19
httpd-2.4.6-97
php-5.4.16
php-pear-1.9.4
manmanager-1.10
一、安装subversion
1 2 3 4 5
| yum install subversion mod_dav_svn mod_ssl openssl httpd* -y
svn --version
|
二、安装php
1
| yum install -y php php-mysql php-pear php-mbstring php-mysqli
|
三、SVNmanager
1 2 3
| cd /usr/local wget -c https://sourceforge.net/projects/svnmanager/files/svnmanager/1.10/svnmanager-1.10.tar.gz wget -c http://download.pear.php.net/package/VersionControl_SVN-0.5.2.tgz
|
将svnmanager解压至/var/www/html下
1 2 3 4 5 6 7 8
| tar zxvf svnmanager-1.10.tar.gz mv svnmanager-1.10 svnmanager cp -R svnmanager /var/www/html/ //pear安装VersionControl_SVN-0.5.2 (与之前的版本不同,不需要再安装XML_Parser包) pear install VersionControl_SVN-0.5.2.tgz
// 方式2 国外资源无法解析 修改修改 /etc/resolv.conf nameserver 8.8.8.8 才能安装上 VersionControl_SVN pear install -f -o VersionControl_SVN
|
配置svnmanager中的config.php文件
svnmanager的配置文件在/var/www/html/svnmanager目录下,有一个config.php.linux和config.php.win,分别针对Linux和Windows操作系统下的配置模板.Copy config.php.linux 到config.php
1 2 3 4 5 6 7 8 9 10 11 12
| $htpassword_cmd = "/usr/bin/htpasswd"; $svn_cmd = "/usr/bin/svn"; $svnadmin_cmd = "/usr/bin/svnadmin"; $svn_config_dir = “/etc/access/"; $svn_repos_loc = "/data/svndata/"; $svn_passwd_file = " /etc/access/passwd"; $svn_access_file = " /etc/access/authz"; $smtp_server = "smtp.domain.org"; $dsn = "mysqli://admin:admin@127.0.0.1/svnmanager"; # (请<font color="red">注意</font>这里使用的是mysqli) //Administrator account $admin_name = "admin"; $admin_temp_password = "admin”;
|
配置访问权限
1 2
| chown -R apache:apache /var/www/html/svnmanager/ systemctl restart httpd
|
四、报错
一、表现是下拉出现中文乱码
svnmanager1.10安装完毕后,选择“Repository Admin”–>”Group Privileges”,会出现repository的列表,选择其中一个”Select”后,会出现如下错误:
1 2 3 4 5 6 7 8 9 10 11
| VersionControl_SVN_Exception: "svn_path" is not a valid option #0 /usr/local/php/lib/php/VersionControl/SVN.php(267): VersionControl_SVN_Command->setOptions(Array) #1 /usr/local/php/lib/php/VersionControl/SVN.php(226): VersionControl_SVN::init('list', Array) #2 /opt/apps/web/php/svnmanager/svnmanager/RepositoryModule/GroupPrivilegesEditPage.php(214): VersionControl_SVN::factory(Array, Array) #3 /opt/apps/web/php/svnmanager/prado-2.0.3/framework/Web/UI/TControl.php(419): GroupPrivilegesEditPage->onLoad(Object(TEventParameter)) #4 /opt/apps/web/php/svnmanager/prado-2.0.3/framework/Web/UI/TPage.php(1079): TControl->onLoadRecursive(Object(TEventParameter)) #5 /opt/apps/web/php/svnmanager/prado-2.0.3/framework/Web/UI/TPage.php(955): TPage->onLoadRecursive(Object(TEventParameter)) #6 /opt/apps/web/php/svnmanager/prado-2.0.3/framework/TApplication.php(483): TPage->execute() #7 /opt/apps/web/php/svnmanager/index.php(5): TApplication->run() #8 {main}
|
解决方案
解决方法是编辑/var/www/html/svnmanager/svnmanager/RepositoryModule目录下的
UserPrivilegesEditPage.php 和 GroupPrivilegesEditPage.php 文件 :
1
| $options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY, 'svn_path' => $svn_cmd);
|
改成:
1
| $options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY);
|
二、报错2 解决中文目录问题
早期的版本,svnmanager连中文目录都无法显示,主要是在权限分配时。但svnmanager-1.10已经支持显示中文目录了,但也仅仅是能在下拉列表中显示而已,当你想进一步查看该中文目录下的子目录时,就会报类似如下的错误:
1 2 3
| VersionControl_SVN_Exception: Execution of command failed returning: 1 svn: E000022: Can't convert string from native encoding to 'UTF-8': svn: E000022: file:///data/svn/repositories/developer///doc/?\228?\184?\147?\229?\136?\169
|
解决方法:
修改/usr/share/pear/VersionControl/SVN/Command.php文件,在run()方法中找到如下代码:
1 2 3 4 5
| if (!$this->passthru) { exec("{$this->prependCmd}$cmd 2>&1", $out, $returnVar); } else { passthru("{$this->prependCmd}$cmd 2>&1", $returnVar); }
|
改为:
1 2 3 4 5
| if (!$this->passthru) { exec("export LC_CTYPE=en_US.UTF-8 && {$this->prependCmd}$cmd 2>&1", $out, $returnVar); } else { passthru("export LC_CTYPE=en_US.UTF-8 && {$this->prependCmd}$cmd 2>&1", $returnVar); }
|
三、补充
3.1 数据库编码检查
1
| show variables like 'character_set_%';
|
不是的话要修改my.cnf 设置编码为utf-8
3.2 查看命令输出结果
1 2 3 4 5
| /usr/bin/svn list --config-dir /data/tz_svn/svn_pass --non-interactive 'file:///data/tz_svn/svn_data/tandy_2019/hr'
中文目录1 中文目录2
|
参考资料
https://blog.csdn.net/weixin_30955341/article/details/94981519
http://svnmanager.sourceforge.net/index.php?page=faq
https://www.cnblogs.com/reblue520/p/7494035.html