独立安装的 SVN 服务器 (使用 svnserve)
如果您是通过 apt 安装了 subversion 包,并且使用 svnserve 命令来启动和管理 SVN 仓库,那么您需要重启的服务是 svnserve。

推荐方法:使用 systemctl (适用于 Ubuntu 16.04 及更新版本)
这是现代 Ubuntu 系统中推荐的服务管理方式。
-
重启服务
sudo systemctl restart svnserve
-
停止服务
sudo systemctl stop svnserve
-
启动服务
(图片来源网络,侵删)sudo systemctl start svnserve
-
查看服务状态
sudo systemctl status svnserve
传统方法:使用 service 命令 (适用于旧版 Ubuntu)
在 Ubuntu 14.04 或更早版本中,通常使用 service 命令。
-
重启服务
sudo service svnserve restart
-
停止服务
(图片来源网络,侵删)sudo service svnserve stop
-
启动服务
sudo service svnserve start
如何判断您是否在使用 svnserve?
您可以检查 SVN 仓库的 URL,如果您的仓库 URL 类似于:
svn://your_server_ip/path/to/repo
或者
svn+ssh://your_server_ip/path/to/repo
那么您很可能就是在使用 svnserve。
通过 Apache HTTP Server 集成的 SVN 服务器
如果您使用 Apache 来提供 SVN 服务,SVN 实际上是作为 Apache 的一个模块(通常是 mod_dav_svn)运行的,在这种情况下,您需要重启的是 Apache 服务器,而不是一个单独的 SVN 服务。
推荐方法:使用 systemctl (适用于 Ubuntu 16.04 及更新版本)
-
重启 Apache 服务器
sudo systemctl restart apache2
-
停止 Apache 服务器
sudo systemctl stop apache2
-
启动 Apache 服务器
sudo systemctl start apache2
-
查看 Apache 服务器状态
sudo systemctl status apache2
传统方法:使用 service 命令 (适用于旧版 Ubuntu)
-
重启 Apache 服务器
sudo service apache2 restart
-
停止 Apache 服务器
sudo service apache2 stop
-
启动 Apache 服务器
sudo service apache2 start
如何判断您是否在使用 Apache 集成?
您可以检查 SVN 仓库的 URL,如果您的仓库 URL 类似于:
http://your_server_ip/svn/path/to/repo
或者
https://your_server_ip/svn/path/to/repo
那么您就是通过 Apache 访问的 SVN 服务器。
总结与排查
如果您不确定自己使用的是哪种方式,或者上面的命令不起作用,可以按照以下步骤进行排查:
-
检查服务是否存在
# 检查 svnserve 服务 systemctl status svnserve # 检查 apache2 服务 systemctl status apache2
如果服务不存在,它会提示
Unit svnserve.service could not be found.。 -
检查端口占用
svnserve默认使用 3690 端口,而 Apache 默认使用 80 (HTTP) 和 443 (HTTPS) 端口。# 查看3690端口是否被 svnserve 占用 sudo netstat -tuln | grep 3690 # 查看80和443端口是否被 apache2 占用 sudo netstat -tuln | grep ':80' sudo netstat -tuln | grep ':443'
svnserve的端口有进程监听,说明您是独立安装的,Apache 的端口有进程监听,说明您是 Apache 集成的。 -
检查进程
# 查看 svnserve 进程 ps aux | grep svnserve # 查看 apache2 进程 ps aux | grep apache2
常见问题:修改了配置文件后不生效?
如果您修改了 SVN 的配置文件(如 /etc/subversion/svnserve.conf 或 Apache 的配置文件 /etc/apache2/mods-enabled/dav_svn.conf),仅仅重启服务可能不够。
- 对于
svnserve:确保您修改的配置文件路径正确,并且配置文件的权限(chown和chmod)正确。svnserve对配置文件的格式和权限要求非常严格。 - 对于 Apache:在重启前,最好先检查配置文件语法是否正确。
# 检查 Apache 配置文件语法 sudo apache2ctl configtest
如果提示
Syntax OK,则说明语法没问题,再执行重启命令即可。
希望这些信息能帮助您!
