SVNAdmin2 是一款通過圖形介面管理伺服器端SVN的web程式。
正常情況下設定SVN倉庫的人員許可權需要登入到伺服器手動修改 authz 和 passwd 兩個檔案,當倉庫結構和人員許可權上了規模後,手動管理就變的非常容易出錯,本系統能夠識別人員和許可權並提供管理和拓展功能。
SVNAdmin2 支援SVN協定檢出、HTTP協定檢出,並且支援兩種協定之間互相切換,支援docker部署或原始碼部署。
SVNAdmin2 支援進行LDAP的接入,進而達到使用原有的人員架構和分組規則的目的。
SVNAdmin2 第一個版本(20年初)被開發用來個人管理SVN倉庫使用,無意中開源後發現使用者漸多,於是開始專門維護迭代。
問題求助、功能建議、更新計劃、SVN技術討論,可加QQ群:633108141
專案演示地址:http://svnadmin.witersen.com (管理人員/admin/admin)
系統截圖
docker > CentOS7 > CentOS8 > Rocky > Ubuntu
Windows下如有需求,可使用 docker 版本
PHP版本:PHP 5.5+ 推薦 PHP 7.0 +
資料庫:SQLite、MySQL
Subversion:1.8+
此方式可快速部署程式體驗效果,資料不儲存在宿主機,生產環境慎用
docker run -d --name svnadmintemp -p 80:80 -p 3690:3690 --privileged witersencom/svnadmin:2.4.3
docker run -d --name svnadmintemp --privileged witersencom/svnadmin:2.4.3 /usr/sbin/init
/home/svnadmin
目錄cd /home/ && docker cp svnadmintemp:/home/svnadmin ./
docker stop svnadmintemp && docker rm svnadmintemp
docker run -d -p 80:80 -p 3690:3690 -v /home/svnadmin/:/home/svnadmin/ --privileged --name svnadmin witersencom/svnadmin:2.4.3
docker exec -it svnadmin bash
chown -R apache:apache /home/svnadmin
yum install -y zip unzip wget vim which
yum install -y cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
yum install -y epel-release yum-utils
rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum install -y php php-common php-cli php-fpm php-mysqlnd php-mysql php-pdo php-process php-json php-gd php-bcmath php-ldap
yum install -y httpd mod_dav_svn
systemctl start httpd
systemctl enable httpd
yum install -y cronie at
cd /var/www/html/ && wget https://gitee.com/witersen/SvnAdminV2.0/releases/download/v2.4.3/2.4.3.zip
unzip v2.4.3.zip
cd /var/www/html/server/
#選項1
php install.php
cd /var/www/html/server
#選項1或選項2
php install.php
chown -R apache:apache /home/svnadmin
手動啟動後臺程序(啟動方式一)
#pwd
/var/www/html
#後臺執行
nohup php svnadmind.php start >/dev/null 2>&1 &
#停止後臺
php svnandmin.php stop
#偵錯模式
php svnadmin.php console
通過系統管理啟動後臺程序(啟動方式二)
[Unit]
Description=SVNAdmin
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/bin/php /var/www/html/server/svnadmind.php start
[Install]
WantedBy=multi-user.target
#啟動
systemctl daemon-reload
systemctl start svnadmind
#檢視狀態
systemctl status svnadmind
#加入開機自啟動
systemctl enable svnadmind
安裝方式跟手動部署類似,只是寶塔系統了很多視覺化操作很方便
sudo apt-get update
sudo apt-get install -y apache2
sudo apt-get install -y php
sudo apt-get install -y php-cli
sudo apt-get install -y php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo systemctl restart apache2
sudo a2enconf php7.2-fpm
sudo systemctl reload apache2
sudo apt-get install -y php-json
sudo apt-get install -y php7.2-mysql
sudo apt-get install -y php-mysql
sudo apt-get install -y sqlite3
sudo apt-get install -y php7.2-sqlite
sudo apt-get install -y php-gd
sudo systemctl restart apache2
sudo apt-get install -y subversion subversion-tools
cd /var/www/html
wget xxx.zip
unzip xxx.zip
#選項2
sudo server/install.php
chown -R apache:apache /home/svnadmin/
su root
nohup php server/svnadmind.php start &
php code/server/install.php
,沒有升級包則需要手動升級web/config/database.php
web/config/svn.php
web/config/bin.php
確認之前SVN倉庫的版本,如果是1.8+則無需擔心,如果是1.8以下,則需要簡單升級下倉庫
安裝本系統
執行 php server/install.php 使用內建的功能重新設定你的Subversion
將已有的一個或多個SVN倉庫移動到 /home/svnadmin/rep/ 目錄下
在導航SVN倉庫中執行同步列表,即可識別SVN倉庫
注意:如果你原來是一個倉庫一套組態檔的方式,則還需要按照截圖的方式稍微調整下你的組態檔。因為現在是多個倉庫一套組態檔的管理方式。
系統中使用了一些多程序的方案,而這在Windows下實現需要花費更多的時間
短期內沒有支援Windows部署的計劃
Windows下使用可通過docker版本
#使用sqlite資料庫
yum install -y sqlite-devel
cd /home/svnadmin
sqlite3 svnadmin.db
.header on
.mode column
select * from admin_users;
例如:
在 /home/svnadmin/templete/initStruct/01 下面設定第一個倉庫結構模板
在 /home/svnadmin/templete/initStruct/02 下面設定第二個倉庫結構模板
如果在web中建立時,如何選用預設的 /home/svnadmin/templete/initStruct/02 下面的倉庫結構模板?
【解決方案】
由於時間問題,開發時並沒有對此功能做更多的詳細開發,因此只預留了組態檔層面的修改途徑,後續會將倉庫模板功能加入到web設定,無需手動命令列管理
可以通過修改 config/svn.php 中的 templete_init_struct_01 值來修改
注意設定自定義倉庫模板的位置
通常的位置在 /home/svnadmin/templete/initStruct/01 下面
而不是在專案程式碼相關的位置
【出現問題原因】
svn的使用者量和許可權設定數量增加,超過了預設值
【解決方案】
修改 config/daemon.php 檔案中的 SOCKET_READ_LENGTH 和 SOCKET_WRITE_LENGTH
設定到133693415 位元組也就是大約小於128M貌似都是可以的,再大沒有測試過
修改後別忘記要重啟守護行程,重啟守護行程的方式根據安裝方式的不同而不同(不重啟會出問題)
【適用版本】
2.1.0+
捐贈者 | 渠道 | 時間 |
---|---|---|
qq@穿褲衩的狐狸 | 2021-08-19 | |
qq@cat | 微信 | 2022-10-10 |
qq@Listen_ | 微信 | 2022-11-16 |
qq@小吳飛刀丶mike | 微信 | 2022-11-16 |
gitee@tango_zhu | Gitee | 2022-11-18 |
qq@三多~(๑°3°๑) | 支付寶 | 2022-11-28 |
wechat@Z*h | 微信 | 2022-11-30 |