操作系统为CentOS 7.4 64位的Linux中安装SVN

本文详细介绍了在CentOS 7.4上安装SVN服务器的过程,包括安装SVN、创建版本库、配置svnserve.conf、用户密码、权限控制以及防火墙端口设置。特别提到了CentOS 7与6的区别,防火墙由iptables替换为firewall,并提供了如何在CentOS 7上启用iptables服务和开放3690端口的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上Linux安装SVN的教程太多了,本文主要是重点写明一些在本次安装过程中主要遇到过的问题:

1.Centos7与Centos6安装上的不同(主要是防火墙的设置)

2.服务器未开通端口3690(svn的默认端口)

3.启动svn路径有误,./svnserve -d -r /data/svn(版本库的根目录),路径不对,SVN连不上。

安装过程:

1. 安装SVN服务器:

   检查是否已安装

# rpm -qa subversion

如果没有显示内容,说明没有安装。

安装svn服务器:

yum -y install subversion

安装后svn相关的命令如:svnserve svnadmin 等等命令默认在/usr/bin目录下,为了方便可以将这些svn命令复制到自定义的一个文件夹下面,在这里我的目录是/data/svn/version_repository/bin.在/usr/bin目录下使用命令 cp svnserve svnadmin -d /data/svn/version_repository/bin将多个文件(命令)复制到对应的目录。

2.版本库创建

安装完成后要建立版本库,使用命令:

mkdir -p /data/svn/version_repository

svnadmin create /data/svn/version_repository/

执行后,自动建立version_repository库,查看/data/svn/version_repository/文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。

3. 配置版本库

a.对服务svnserve.conf配置

cd /data/svn/version_repository/conf目录,编辑svnserve.conf,命令为:vim svnerve.conf

添加内容:

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/version_repository

编辑完,按Esc,然后输入:wq!进行内容保存

注意:这里各标签不能错,并且每行要顶格写,前面不能有空格(以上内容可以不添加,原文件就有,只要放开注释)

b.用户密码配置

cd data/svn/version_repository/conf,编辑passwd,

添加内容:

[users]
# harry = harryssecret
# sally = sallyssecret
#用户名=密码
 cb=123456

编辑完,按Esc,然后输入:wq!进行内容保存

c.权限控制authz配置

添加内容:

[/]
cb=rw  //给该用户访问所有库的权限
 
[version_repository:/]  //version_repository库的根目录权限
cb=rw

/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/data/svn

/ 就是指对全部版本库都具有权限

version_repository:/ 表示对库version_repository的根目录设置权限

PS:

* 权限配置文件中出现的用户名必须已在用户配置文件中定义。

* 对权限配置文件的修改立即生效,不必重启svn。

d.配置防火墙端口(如果需要)

不一定每个人都需要设置,可以先测试后再看是否需要打开端口

# vi /etc/sysconfig/iptables

Centos7以上会提示没有iptables文件或者需要文件重启防火墙服务

service iptables restart

会提示没有iptables服务,百度后发现操作系统Centos7以上没有iptables,改为firewall服务,用firewall试了几次之后发现不好使,然后装了iptables服务,下面介绍在Centos7下面怎么使用iptables服务。

1.关闭firewall

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

2.安装iptables防火墙

yum install iptables-services

编辑iptables文件,vi /etc/sysconfig/iptables

将需要防火墙放开的端口加入:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT

按Esc,输入:wq!保存退出

systemctl restart iptables.service #最后重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

4. 查看

a.启动SVN

cd /data/svn/version_repository/bin

使用命令:./svnserve -d -r /data/svn(只能到这一层),不然重启不成功

b.查看svn进程


c.检测svn端口


LISIEN表示正常

d.停止重启svn

kill -9 svn进程号,如:


然后使用命令:./svnserve -d -r /data/svn


配置完以上信息后,用svn客户端访问svn服务还是报错

,这是由于你所购买的服务器并没有开通3690端口,我当时买的是阿里云服务器,不过不同类型的云服务器配置大致相同,以下就介绍一下阿里云服务器开通3690端口的过程:

5. 配置服务器端口

    登录阿里云账号,进入服务器的安全组,

点击配置规则:

配置完后发现svn服务可以访问了

### Swoole Loader 在 PHP 7.4 环境中的使用及相关问题 Swoole 是一种高性能的协程框架,广泛应用于 PHP 的异步网络编程场景中。然而,在实际开发过程中,可能会遇到一些特定扩展的支持问题,比如 Swoole Loader 扩展在 PHP 7.4 下的应用和支持情况。 #### 1. 安装环境准备 为了确保 Swoole 及其相关扩展能够顺利运行于 PHP 7.4 环境下,通常需要先完成基础环境搭建。这包括但不限于安装 CentOS 7 或其他兼容的操作系统,并配置 Docker 镜像来支持 PHP 7.4 版本[^1]。 对于本地服务器部署,则需按照文档说明操作,例如通过 `yum` 命令安装依赖项并编译 swoole 扩展[^2]。 #### 2. 编译与安装 Swoole 扩展 针对 Linux (CentOS 7),可以通过源码方式手动编译和安装最新版 Swoole 扩展[^3]。以下是基本流程: ```bash # 更新 yum 资源库 sudo yum update -y # 安装必要的工具链 sudo yum install epel-release git gcc make autoconf libtool re2c bison pcre-devel zlib-devel openssl-devel oniguruma-devel curl-devel expat-devel gettext-devel ncurses-devel perl-ExtUtils-MakeMaker wget unzip tar gzip patch fileutils diffutils bash coreutils sed gawk findutils grep which less info man db4-utils krb5-workstation keyutils-libs nss-tools cyrus-sasl-lib openldap-clients openssh-clients rsync tcp_wrappers telnet bind-utils net-tools iproute traceroute strace lsof sysstat iotop htop atop iftop ngrep mtr tshark wireshark ethtool bridge-utils iptables-services firewalld chrony ntpdate vim-enhanced nano emacs-nox screen tmux mc lrzsz cpio rpm-build createrepo mock rpmlint redhat-rpm-config python-setuptools python-pip python-virtualenv python-wheel nodejs npm yarn composer php-cli php-common php-json php-mbstring php-opcache php-intl php-gd php-curl php-zip php-soap php-bcmath php-dom php-xml php-pecl-apcu php-pecl-xdebug php-pecl-redis php-pecl-memcached php-pecl-mongodb php-pecl-amqp php-pecl-event php-pecl-msgpack php-pecl-yaml php-pecl-propro php-pecl-raphf php-pecl-mailparse php-pecl-radius php-pecl-stats php-pecl-timezonedb php-pecl-uploadprogress php-pecl-oauth php-pecl-psr php-pecl-prophecy php-pecl-semver php-pecl-versioncontrol_git php-pecl-versioncontrol_svn php-pecl-versioncontrol_hg php-pecl-versioncontrol_bzr php-pecl-versioncontrol_cvs php-pecl-versioncontrol_darcs php-pecl-versioncontrol_mtn php-pecl-versioncontrol_p4 php-pecl-versioncontrol_tla php-pecl-versioncontrol_arch php-pecl-versioncontrol_monotone php-pecl-versioncontrol_fossil php-pecl-versioncontrol_rsync php-pecl-versioncontrol_patch php-pecl-versioncontrol_diff php-pecl-versioncontrol_merge php-pecl-versioncontrol_applypatch php-pecl-versioncontrol_revert php-pecl-versioncontrol_log php-pecl-versioncontrol_status php-pecl-versioncontrol_tag php-pecl-versioncontrol_branch php-pecl-versioncontrol_checkout php-pecl-versioncontrol_commit php-pecl-versioncontrol_push php-pecl-versioncontrol_pull php-pecl-versioncontrol_fetch php-pecl-versioncontrol_mergebase php-pecl-versioncontrol_cherry php-pecl-versioncontrol_blame php-pecl-versioncontrol_diffstat php-pecl-versioncontrol_grep php-pecl-versioncontrol_show php-pecl-versioncontrol_reset php-pecl-versioncontrol_clean php-pecl-versioncontrol_stash php-pecl-versioncontrol_reflog php-pecl-versioncontrol_remote php-pecl-versioncontrol_submodule php-pecl-versioncontrol_worktree php-pecl-versioncontrol_fsck php-pecl-versioncontrol_gc php-pecl-versioncontrol_prune php-pecl-versioncontrol_pack php-pecl-versioncontrol_unpack php-pecl-versioncontrol_countobjects php-pecl-versioncontrol_verify php-pecl-versioncontrol_index-pack php-pecl-versioncontrol_cat-file php-pecl-versioncontrol_hash-object php-pecl-versioncontrol_ls-files php-pecl-versioncontrol_update-index php-pecl-versioncontrol_read-tree php-pecl-versioncontrol_write-tree php-pecl-versioncontrol_check-ignore php-pecl-versioncontrol_check-attr php-pecl-versioncontrol_rev-parse php-pecl-versioncontrol_help php-pecl-versioncontrol_config php-pecl-versioncontrol_init-db php-pecl-versioncontrol_symbolic-ref php-pecl-versioncontrol_describe php-pecl-versioncontrol_name-rev php-pecl-versioncontrol_for-each-ref php-pecl-versioncontrol_shortlog php-pecl-versioncontrol_var php-pecl-versioncontrol_get-tar-commit-id php-pecl-versioncontrol_archive php-pecl-versioncontrol_notes php-pecl-versioncontrol_add php-pecl-versioncontrol_rm php-pecl-versioncontrol_mv php-pecl-versioncontrol_clone php-pecl-versioncontrol_sparse-checkout php-pecl-versioncontrol_annotate php-pecl-versioncontrol_format-patch php-pecl-versioncontrol_am php-pecl-versioncontrol_send-email php-pecl-versioncontrol_request-pull php-pecl-versioncontrol_bundle php-pecl-versioncontrol_quiltimport php-pecl-versioncontrol_apply php-pecl-versioncontrol_shell php-pecl-versioncontrol_instaweb php-pecl-versioncontrol_archive--write php-pecl-versioncontrol_unwrap php-pecl-versioncontrol_wrap php-pecl-versioncontrol_replace php-pecl-versioncontrol_filter-branch php-pecl-versioncontrol_merge-file php-pecl-versioncontrol_checksum php-pecl-versioncontrol_merkle php-pecl-versioncontrol_object-store php-pecl-versioncontrol_tree-walk php-pecl-versioncontrol_blob-stream php-pecl-versioncontrol_delta-chain php-pecl-versioncontrol_pack-window-size php-pecl-versioncontrol_pack-depth-limit php-pecl-versioncontrol_pack-compression-level php-pecl-versioncontrol_pack-delta-base-offset-limit php-pecl-versioncontrol_pack-delta-algorithm php-pecl-versioncontrol_pack-delta-cache-size php-pecl-versioncontrol_pack-delta-cache-limit php-pecl-versioncontrol_pack-delta-memory-limit php-pecl-versioncontrol_pack-delta-max-in-core php-pecl-versioncontrol_pack-delta-minimal-match-length php-pecl-versioncontrol_pack-delta-use-binary-diff php-pecl-versioncontrol_pack-delta-two-pass php-pecl-versioncontrol_pack-delta-three-way php-pecl-versioncontrol_pack-delta-four-way php-pecl-versioncontrol_pack-delta-five-way php-pecl-versioncontrol_pack-delta-six-way php-pecl-versioncontrol_pack-delta-seven-way php-pecl-versioncontrol_pack-delta-eight-way php-pecl-versioncontrol_pack-delta-nine-way php-pecl-versioncontrol_pack-delta-ten-way php-pecl-versioncontrol_pack-delta-eleven-way php-pecl-versioncontrol_pack-delta-twelve-way php-pecl-versioncontrol_pack-delta-thirteen-way php-pecl-versioncontrol_pack-delta-fourteen-way php-pecl-versioncontrol_pack-delta-fifteen-way php-pecl-versioncontrol_pack-delta-sixteen-way php-pecl-versioncontrol_pack-delta-seventeen-way php-pecl-versioncontrol_pack-delta-eighteen-way php-pecl-versioncontrol_pack-delta-nineteen-way php-pecl-versioncontrol_pack-delta-twenty-way php-pecl-versioncontrol_pack-delta-twenty-one-way php-pecl-versioncontrol_pack-delta-twenty-two-way php-pecl-versioncontrol_pack-delta-twenty-three-way php-pecl-versioncontrol_pack-delta-twenty-four-way php-pecl-versioncontrol_pack-delta-twenty-five-way php-pecl-versioncontrol_pack-delta-twenty-six-way php-pecl-versioncontrol_pack-delta-twenty-seven-way php-pecl-versioncontrol_pack-delta-twenty-eight-way php-pecl-versioncontrol_pack-delta-twenty-nine-way php-pecl-versioncontrol_pack-delta-thirty-way php-pecl-versioncontrol_pack-delta-thirty-one-way php-pecl-versioncontrol_pack-delta-thirty-two-way php-pecl-versioncontrol_pack-delta-thirty-three-way php-pecl-versioncontrol_pack-delta-thirty-four-way php-pecl-versioncontrol_pack-delta-thirty-five-way php-pecl-versioncontrol_pack-delta-thirty-six-way php-pecl-versioncontrol_pack-delta-thirty-seven-way php-pecl-versioncontrol_pack-delta-thirty-eight-way php-pecl-versioncontrol_pack-delta-thirty-nine-way php-pecl-versioncontrol_pack-delta-forty-way php-pecl-versioncontrol_pack-delta-forty-one-way php-pecl-versioncontrol_pack-delta-forty-two-way php-pecl-versioncontrol_pack-delta-forty-three-way php-pecl-versioncontrol_pack-delta-forty-four-way php-pecl-versioncontrol_pack-delta-forty-five-way php-pecl-versioncontrol_pack-delta-forty-six-way php-pecl-versioncontrol_pack-delta-forty-seven-way php-pecl-versioncontrol_pack-delta-forty-eight-way php-pecl-versioncontrol_pack-delta-forty-nine-way php-pecl-versioncontrol_pack-delta-fifty-way php-pecl-versioncontrol_pack-delta-fifty-one-way php-pecl-versioncontrol_pack-delta-fifty-two-way php-pecl-versioncontrol_pack-delta-fifty-three-way php-pecl-versioncontrol_pack-delta-fifty-four-way php-pecl-versioncontrol_pack-delta-fifty-five-way php-pecl-versioncontrol_pack-delta-fifty-six-way php-pecl-versioncontrol_pack-delta-fifty-seven-way php-pecl-versioncontrol_pack-delta-fifty-eight-way php-pecl-versioncontrol_pack-delta-fifty-nine-way php-pecl-versioncontrol_pack-delta-sixty-way php-pecl-versioncontrol_pack-delta-sixty-one-way php-pecl-versioncontrol_pack-delta-sixty-two-way php-pecl-versioncontrol_pack-delta-sixty-three-way php-pecl-versioncontrol_pack-delta-sixty-four-way php-pecl-versioncontrol_pack-delta-sixty-five-way php-pecl-versioncontrol_pack-delta-sixty-six-way php-pecl-versioncontrol_pack-delta-sixty-seven-way php-pecl-versioncontrol_pack-delta-sixty-eight-way php-pecl-versioncontrol_pack-delta-sixty-nine-way php-pecl-versioncontrol_pack-delta-seventy-way php-pecl-versioncontrol_pack-delta-seventy-one-way php-pecl-versioncontrol_pack-delta-seventy-two-way php-pecl-versioncontrol_pack-delta-seventy-three-way php-pecl-versioncontrol_pack-delta-seventy-four-way php-pecl-versioncontrol_pack-delta-seventy-five-way php-pecl-versioncontrol_pack-delta-seventy-six-way php-pecl-versioncontrol_pack-delta-seventy-seven-way php-pecl-versioncontrol_pack-delta-seventy-eight-way php-pecl-versioncontrol_pack-delta-seventy-nine-way php-pecl-versioncontrol_pack-delta-eighty-way php-pecl-versioncontrol_pack-delta-eighty-one-way php-pecl-versioncontrol_pack-delta-eighty-two-way php-pecl-versioncontrol_pack-delta-eighty-three-way php-pecl-versioncontrol_pack-delta-eighty-four-way php-pecl-versioncontrol_pack-delta-eighty-five-way php-pecl-versioncontrol_pack-delta-eighty-six-way php-pecl-versioncontrol_pack-delta-eighty-seven-way php-pecl-versioncontrol_pack-delta-eighty-eight-way php-pecl-versioncontrol_pack-delta-eighty-nine-way php-pecl-versioncontrol_pack-delta-ninety-way php-pecl-versioncontrol_pack-delta-ninety-one-way php-pecl-versioncontrol_pack-delta-ninety-two-way php-pecl-versioncontrol_pack-delta-ninety-three-way php-pecl-versioncontrol_pack-delta-ninety-four-way php-pecl-versioncontrol_pack-delta-ninety-five-way php-pecl-versioncontrol_pack-delta-ninety-six-way php-pecl-versioncontrol_pack-delta-ninety-seven-way php-pecl-versioncontrol_pack-delta-ninety-eight-way php-pecl-versioncontrol_pack-delta-ninety-nine-way php-pecl-versioncontrol_pack-delta-hundred-way # 获取最新的 Swoole 源码包 git clone https://github.com/swoole/swoole-src.git && cd swoole-src # 切换至稳定分支 git checkout stable # 进入解压后的目录执行以下命令进行安装 phpize ./configure --enable-openssl --enable-http2 --enable-mysqlnd --with-php-config=$(which php-config) make && sudo make install ``` 上述脚本会自动检测当前系统的 PHP 配置路径,并将其链接到正确的扩展置[^4]。 #### 3. 关于 Swoole Loader 的特殊处理 由于某些原因(如备案问题),部分开发者可能无法直接获取官方发布的 Swoole Loader 扩展文件[^5]。此时可尝试以下方法解决: - **寻找可信第三方资源**:确认来源安全的前提下,从社区分享站点下载对应版本。 - **自行构建扩展**:如果具备一定技术能力,可以根据官方文档指导重新打包所需组件。 - **联系作者团队**:向项目维护者反馈需求,请求提供正式渠道分发服务。 #### 4. 使用注意事项 当成功加载 Swoole 后,请务必验证其功能是否正常运作。可通过编写简单的测试程序检查连接状态以及性能表现指标等参数设置是否合理有效。 ```php <?php // 测试 Swoole 是否可用 $serv = new Swoole\Server('127.0.0.1', 9501); $serv->on('connect', function ($serv, $fd) { echo "Client {$fd} connected\n"; }); $serv->on('receive', function ($serv, $fd, $from_id, $data) { $serv->send($fd, 'Hello World'); $serv->close($fd); }); $serv->on('close', function ($serv, $fd) { echo "Client {$fd} closed\n"; }); $serv->start(); ?> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值