ubuntu 22.04 安装 if.svnadmin

1.安装软件
apt update
apt upgrade
apt install -y apache2
apt install -y php
apt install -y subversion subversion-tools libapache2-mod-svn
a2enmod dav
a2enmod dav_svn
systemctl restart apache2

2.创建 svn 目录和配置
mkdir -pv /var/svn
svnadmin create /var/svn
cd /var/svn && ls -lh
cp -v conf/passwd conf/authz ./ && ls -lh
chmod 777 -Rv /var/svn
mkdir -pv /data/svn && chmod 777 -Rv /data/svn

3.配置 apache
vim /etc/apache2/mods-available/dav_svn.conf
添加或修改如下内容
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

DAV svn
SVNParentPath /data/svn  #svn的根目录SSLRequireSSL

#SSL访问权限
AuthType Basic                         #Basic认证方式
AuthName "Authorization SVN"           #认证时显示的信息
AuthUserFile /var/svn/passwd       #用户文件&密码
AuthzSVNAccessFile /var/svn/authz  #访问权限控制文件
Require valid-user                     #要求真实用户,不能匿名

4.修改 apache 默认配置文件,这个文件不一定主是default.conf,有些会在前面加上数字,按 sites-available 所在目录的带有 default 的文件为准
cd /etc/apache2/sites-available && ls -lh
vi /etc/apache2/sites-available/default.conf
将这个文件中的ServerName添加下面的内容
ServerAdmin 127.0.0.1
systemctl restart apache2

5.安装 if.svnadmin
cd /var/www/html
wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip
unzip svnadmin-1.6.2.zip
mv -v iF.SVNAdmin-stable-1.6.2 svnadmin
chmod -R 777 /var/www/html/svnadmin && ls -lh

6.测试
访问地址 http://ip:80/svnadmin
出现报错
Wrong PHP version. The minimum required version is: 5.3
修改
vim /var/www/html/svnadmin/include/config.inc.php

删除或注释内容
// Check PHP version.
if (!checkPHPVersion("5.3")) {
 echo "Wrong PHP version. The minimum required version is: 5.3";
 exit(1);
}

当前php为8.1版本,出现无法运行500页面,若修改以下 php 文件将导致分配权限报错:count()参数错误,所以此方法不可行
PHP7.4以上不再能够使用花括号来访问数组或者字符串的偏移.需要将{}修改成[] 就可以解决问题

vim /var/www/html/svnadmin/include/ifcorelib/IF_HtPasswd.class.php
:419

419行
$text.= ($i & 1) ? chr(0) : $plainpasswd{0};
修改为
$text.= ($i & 1) ? chr(0) : $plainpasswd[0];

因上述方法不可行,改为将 php8.1 模块禁用,改用 php7.3 模块
安装 php7.3 和常用模块,否则可能报错 Call to undefined function xml_parser_create()
安装多个 PHP 版本的最简单方法是使用来自 Debian 开发人员 Ond?ej Sury 的 PPA
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt install php7.3 php7.3-fpm
apt install php7.3-mysql php7.3-mbstring php7.3-xml php7.3-gd php7.3-curl
update-alternatives --set php /usr/bin/php7.3
apt install libapache2-mod-php7.3
禁用模块
a2dismod php8.1 
启用模块
a2enmod php7.3

刷新页面输入内容
Subversion authorization file 行输入
/var/svn/authz
User authentication file (SVNUserFile) 行输入
/var/svn/passwd
Parent directory of the repositories (SVNParentPath) 行输入
/data/svn
Subversion client executable 行输入
/usr/bin/svn
Subversion admin executable 行输入
/usr/bin/svnadmin

保存后默认生成用户密码都是 admin
会在 /var/snv/passwd 文件中自动生成默认用户名和密码

在页面添加代码库 test,选中访问路径 新建,然后添加用户权限,即可访问 http://192.168.10.3/svn/test

上传代码问题解决:由于更改协议,改用 http,如:
http://192.168.10.3/svn/test地址即可

你可能感兴趣的:(ubuntu,linux,运维,svn)