GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOSでSVNサーバーをセットアップする方法

このチュートリアルでは、CentOSでSVNリポジトリサーバーをセットアップして使用する方法について説明します。始める前に、SVNが実際に何を表し、何に使用されるのかを説明しましょう。 SVNは、実際にはApacheソフトウェア開発者によって作成されたSubVersionの略語です。独自のリポジトリを作成して維持し、専用ユーザーにきめ細かいアクセス権を与えることができます。

ファイル、ドキュメント、フォルダのバージョン管理に非常に効果的です。独自のソフトウェアプロジェクトを開始する予定のグループやチームにとって非常に便利です。

1。予備的注意

このチュートリアルでは、32ビットバージョンのCentOS6.4を使用しています。最終結果は、専用クライアントがあらゆる種類のオペレーティングシステムプラットフォームを使用してSVNリポジトリにアクセスするためにどのように管理できるかを示します。


2。 SVNのインストール

新しいSVNサーバーから始めるには、特定のパッケージをインストールする必要があります。関連するパッケージは、apache httpd、mod_dav_svn、およびsubversionです。このプロセスのWebサーバーサービスとしてHTTPDパッケージが必要です。

このチュートリアルではCentOSオペレーティングシステムを使用しているため、yumリポジトリからパッケージを取得します。必要に応じて、nginx、lighttpd、または使い慣れたウェブサーバーサービスなどの他のパッケージを使用してhttpdを置き換えることができます。手順は次のとおりです。

ifconfig
[[email protected] ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:61:E4:88
inet addr:192.168.43.101 Bcast:192.168.43.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe61:e488/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4640 errors:0 dropped:0 overruns:0 frame:0
TX packets:6845 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:444461 (434.0 KiB) TX bytes:549473 (536.5 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2125 errors:0 dropped:0 overruns:0 frame:0
TX packets:2125 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:186888 (182.5 KiB) TX bytes:186888 (182.5 KiB)
yum install -y httpd
[[email protected] ~]# yum install -y httpd
Loaded plugins: refresh-packagekit, security
Repository 'OEL64' is missing name in configuration, using id
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.i686 0:2.2.15-26.0.1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================
Package Arch Version Repository Size
==============================================================================================================
Installing:
httpd i686 2.2.15-26.0.1.el6 OEL64 825 k
Transaction Summary
==============================================================================================================
Install 1 Package(s)
Total download size: 825 k
Installed size: 2.8 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : httpd-2.2.15-26.0.1.el6.i686 1/1
Verifying : httpd-2.2.15-26.0.1.el6.i686 1/1
Installed:
httpd.i686 0:2.2.15-26.0.1.el6
Complete!
yum install -y subversion
[[email protected] ~]# yum install -y subversion
Loaded plugins: refresh-packagekit, security
Repository 'OEL64' is missing name in configuration, using id
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package subversion.i686 0:1.6.11-7.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================
Package Arch Version Repository Size
==============================================================================================================
Installing:
subversion i686 1.6.11-7.el6 OEL64 2.2 M
Transaction Summary
==============================================================================================================
Install 1 Package(s)
Total download size: 2.2 M
Installed size: 11 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : subversion-1.6.11-7.el6.i686 1/1
Verifying : subversion-1.6.11-7.el6.i686 1/1
Installed:
subversion.i686 0:1.6.11-7.el6
Complete!
yum install -y mod_dav_svn
[[email protected] ~]# yum install -y mod_dav_svn
Loaded plugins: refresh-packagekit, security
Repository 'OEL64' is missing name in configuration, using id
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mod_dav_svn.i686 0:1.6.11-7.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================
Package Arch Version Repository Size
==============================================================================================================
Installing:
mod_dav_svn i686 1.6.11-7.el6 OEL64 79 k
Transaction Summary
==============================================================================================================
Install 1 Package(s)
Total download size: 79 k
Installed size: 161 k
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : mod_dav_svn-1.6.11-7.el6.i686 1/1
Verifying : mod_dav_svn-1.6.11-7.el6.i686 1/1
Installed:
mod_dav_svn.i686 0:1.6.11-7.el6
Complete!


3。 SVN構成

これで、インストール部分は完了です。次に、構成部分に進みます。まず、SVNリポジトリ用の専用ディレクトリを作成しましょう。これはオプションのプロセスですが、大規模なグループに実装する場合は良い習慣です。手順は次のとおりです。

mkdir /data/svn

次に、最初のリポジトリディレクトリを作成します。名前を repo1にします。 。クライアントは後でブラウザまたはSVNクライアントツールを介してリポジトリにアクセスできるようになるため、ディレクトリはWebサーバーサービスの所有者であるため、Apacheにディレクトリの所有権を付与します。手順は次のとおりです。

svnadmin create /data/svn/repo1
chown -R apache:apache /data/svn/repo1

完了すると、いくつかの関連するフォルダとファイルがデフォルトで新しいリポジトリディレクトリの下に作成されることに気付くでしょう。

cd /data/svn/repo1
ls
[[email protected] repo1]# ls
conf db format hooks locks README.txt


次に、要件を満たすように構成ファイルを編集します。まず、構成ファイルsvnserver.confを編集して、付与されたユーザーに割り当てる関連特権を受け入れます。手順は次のとおりです。

cd conf/
ls
[[email protected] conf]# ls
authz passwd svnserve.conf
vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

次に、 passwdという名前の新しいファイルを作成します これには、SVNリポジトリのユーザーのリストが含まれます。手順は次のとおりです。

htpasswd -c /data/svn/repo1/conf/passwd jay
[[email protected] conf]# htpasswd -c /data/svn/repo1/conf/passwd jay
New password:
Re-type new password:
Adding password for user jay
[[email protected] conf]# cat passwd
jay:14hCNCmBZY/qA

これで、SVNリポジトリで使用するユーザーが正常に作成されました。 SVNリポジトリにアクセスするためにさらに2人のユーザーを作成しましょう。手順は次のとおりです。

htpasswd /data/svn/repo1/conf/passwd fikri
[[email protected] conf]# htpasswd /data/svn/repo1/conf/passwd fikri
New password:
Re-type new password:
Adding password for user fikri
htpasswd /data/svn/repo1/conf/passwd farid
[[email protected] conf]# htpasswd /data/svn/repo1/conf/passwd farid
New password:
Re-type new password:
Adding password for user farid
[[email protected] conf]# cat passwd
jay:14hCNCmBZY/qA
fikri:/hlooqJMfYLkw
farid:P7Zvu6B3HyFGo


完了しました。これで、SVNリポジトリで使用するために3人のユーザーがリストされました。この練習では、ユーザーの権限を制限する方法を示したいと思います。 repo1リポジトリにアクセスするための特権を割り当てましょう。これを行うには、authz構成ファイルを編集する必要があります。手順は次のとおりです。

vi authz
[repo1:/]
farid = r
fikri = rw
* =

上記の構成に基づいて、前に作成した3人のユーザーに異なる権限を設定しました。ユーザーFARIDに読み取り専用特権を割り当て、FIKRIに読み取り/書き込み特権を割り当て、JAYまたはその他のユーザーに特権を持たないように割り当てました。これは、テストの後半で、ユーザーJAYがrepo1リポジトリ内のファイルを表示できないことを示します。

それでは、HTTPDサービス構成ファイルを編集しましょう。

vi /etc/httpd/conf/httpd.conf

httpd.confファイルに外部構成ファイルを含めるために、次の行が存在することを確認してください。存在しない場合は、ファイルの最後に追加してください。

[.....]
Include conf.d/*.conf
[.....]

次に、conf.dディレクトリに移動して、関連する構成ファイルにいくつかの変更を加えます。すでにsubversion.confファイルがあることに気付くでしょう。リポジトリをブラウザで表示できるようにするためにファイルを編集します以下の手順は次のとおりです:-

cd /etc/httpd/conf.d/
ls
[[email protected] conf.d]# ls
mod_dnssd.conf README subversion.conf welcome.conf
vi subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /repo1>
DAV svn
SVNPath /data/svn/repo1
Authtype Basic
AuthName "My Repository"
AuthzSVNAccessFile /data/svn/repo1/conf/authz
AuthUserFile /data/svn/repo1/conf/passwd
Require valid-user
</Location>

最初の2行はapacheSVNモジュールをロードし、次の行はURL/repo1が作成されたリポジトリを指すことを定義します。

また、AuthzSVNAccessFileを使用して、特定のユーザーがリポジトリ内の特定のアイテムに対する読み取り/書き込み権限を持つように設定しました。ユーザーのリストは/data/ svn / repo1 / conf/passwdファイルから取得されます。

次に、行われた構成変更をロードするためにHTTPDサーバーを再起動します。

service httpd restart
[[email protected] conf.d]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]


4。 SVNテストフェーズ

作成した構成が目的を満たしているかどうかを確認しましょう。テストフェーズでは、2つの異なるクライアントマシンを使用します。 MicrosoftWindowsとLinuxCentOS6.4デスクトップを使用します。

まず、Linux CentOS 6.4マシンに移動し、リポジトリをローカルシステムにチェックアウトします。 Linuxクライアントとして、SVNリポジトリに接続するためにSubversionパッケージをインストールする必要があります。

yum install -y subversion
[[email protected] ~]# yum install -y subversion
Loaded plugins: refresh-packagekit, security
Repository 'OEL64' is missing name in configuration, using id
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package subversion.i686 0:1.6.11-7.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================
Package Arch Version Repository Size
==============================================================================================================
Installing:
subversion i686 1.6.11-7.el6 OEL64 2.2 M
Transaction Summary
==============================================================================================================
Install 1 Package(s)
Total download size: 2.2 M
Installed size: 11 M
Downloading Packages:
--------------------------------------------------------------------------------------------------------------
Total 70 MB/s | 2.2 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : subversion-1.6.11-7.el6.i686 1/2
Verifying : subversion-1.6.11-7.el6.i686 2/2
Installed:
subversion.i686 0:1.6.11-7.el6
Complete!

mkdir repo_client
svn co http://192.168.43.101/repo1 repo_client
[[email protected] ~]# mkdir repo_client
[[email protected] ~]# svn co http://192.168.43.101/repo1 repo_client
Authentication realm: <http://192.168.43.101:80> My Repository
Password for 'fikri':
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:
<http://192.168.43.101:80> My Repository
can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
Checked out revision 0.
[[email protected] ~]# cd repo_client/
[[email protected] repo_client]# ls -a
. .. .svn

素晴らしい!ユーザーfikriを使用して、SVNサーバーからリポジトリをチェックアウトすることができました。ここで、このユーザーがREADおよびWRITE権限を持っているかどうかを確認するために、リポジトリディレクトリ内にフォルダを作成します。

cd repo_client/
svn mkdir first_dir

次に、変更をリポジトリにコミットします:

svn commit -m "My first folder"

これが表示されます:

Committed revision 1.

これは、コミットが成功したことを意味します。


お疲れ様でした!リポジトリディレクトリ内にフォルダを作成してコミットしました。

それでは、これをMicrosoftWindowsマシンでテストしてみましょう。 Firefoxブラウザを介してリポジトリのURLを参照します。お気に入りのブラウザを使用してテストできます。ブラウザフィールドにURLhttp://192.168.43.101/repo1を入力すると、次のような認証ウィンドウがポップアップ表示されます。

ユーザーJAYでログインします。このユーザーは特権グループのメンバーではないため、ページにアクセスできないと想定します。

では、このチュートリアルの最終テストを行いましょう。 MicrosoftWindowsマシンをSVNクライアントとして使用してみましょう。これを行うには、SVNクライアントソフトウェアをインストールする必要があります。この場合は、TortoiseSVNを使用します。ここからダウンロードするか、使い慣れたSVNクライアントを使用できます。

インストールしたら、Windowsマシンに新しいフォルダを作成し、testSVNという名前を付けます。


次に、フォルダーを右クリックすると、SVN CheckOutへのリンクが表示されます(リンクが表示されない場合は、Windowsを再起動してください)。 「SVNチェックアウト」をクリックして続行します。

クリックすると、次のようなポップアップボックスが表示されます。 URLフィールドの下にSVNサーバーリポジトリを入力し、[OK]をクリックします。

認証用のユーザー名とパスワードの入力を求めるポップアップボックスが表示されます。この場合、ユーザーFARIDを使用して続行します。

完了すると、ポップアップボックスに、SVNリポジトリのチェックアウトが終了したことが示されます。ここから、ユーザーFARIDにはリポジトリから読み取る権限があると結論付けることができます。

以前にユーザーFIKRIから作成されたフォルダーがtestSVNディレクトリに存在することに気付くでしょう。

テストを終了します。ユーザーFARIDに読み取り専用アクセス権が必要であることをテストしてみましょう。そのためには、FIRST_DIRフォルダー内に移動して、別のフォルダーを作成します。これをSECOND_DIRと呼びます

作成したら、フォルダーを右クリックしてTortoiseSVNにカーソルを合わせると、そこにいくつかの選択肢がリストされていることがわかります。続行するには、追加をクリックしてください ボタン。このボタンは、作成したフォルダーをローカルのsvnリポジトリに追加します。

次のようなポップアップボックスが表示されます。[OK]をクリックして続行します。

完了すると、次のようなポップアップメッセージが表示されます。これで、クライアントリポジトリにフォルダが正常に作成されました。

フォルダーは正常に作成され、ローカルに追加されましたが、まだSVNサーバーに同期されていないため、他のマシンの他のユーザーは、今作成したフォルダーを表示できません。今すぐフォルダを保存してコミットします。これを行うには、フォルダを右クリックして、 SVN Commitをクリックします。 以下のスクリーンショットのように。


以下のようなポップアップボックスが表示され、いくつかの詳細を確認するように求められます。オプションのコメントを入力し、[OK]をクリックして続行します。

ログインユーザー名を要求する認証ボックスが表示されます。ユーザーFARIDとして入力し、続行します。

完了すると、変更を行うことが禁止されているというエラーが表示されます。ユーザーfaridが読み取り専用特権を持っているため、私たちが期待したことです。

おめでとう!これで、最初のSVNサーバーがセットアップされ、特定のユーザー制限に対して適切な特権が正常に構成されました。


Cent OS
  1. CentOSでSFTPサーバーをセットアップする方法

  2. CentOS 7 /RHEL7でSysLogサーバーをセットアップする方法

  3. CentOS/RHEL 7 で squid プロキシ サーバーをセットアップする方法

  1. CentOS 7 /RHEL7でNFSサーバーをセットアップする方法

  2. CentOS、RHEL、FedoraでSVNサーバーをセットアップする方法

  3. CentOSでMySQLレプリケーションを設定する方法

  1. LinuxCentOS7にMumbleサーバー{Murmur}をインストールしてセットアップする方法

  2. CentOS7でVSFTPDを使用してFTPサーバーをセットアップする方法

  3. CentOSでNTPサーバーをセットアップする方法は?