2015年9月5日土曜日

Apacheサービス登録

【サービス登録】
httpd.exe –k install

【サービス登録解除】
httpd.exe –k uninstall

SVNのユーザ作成

以下のサイトの丸パクリです。

フリーな人生:Windowsで、SVN(Subversion) + Apache Basic認証、ユーザの追加、リポジトリの作成

【インストール】

まずSVNをインストールしてください。
インストールが終了したら、コンソールで以下のコマンドを実行し、正常に行われたかどうか確認します。
svn --version

だめだったらパスが通ってないので、環境変数のPathに追加してください。

あと、Apache2.2もインストールしておいてください。

インストールの仕方とかは他のサイトを参考にしてください。すみません。。。


【Basic認証の設定】

SVNユーザの追加は、ApacheのBasic認証を利用します。
httpd.confで指定した任意のフォルダに、同じくhttpd.confで指定した任意のファイルを作成します。

以下、Apache設定
「httpd.conf」を編集します(Apache2.2/conf下)。

#以下のモジュールのコメントアウトをはずす
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

#以下のモジュールの記述を追加。モジュールがなければ、SVNのフォルダから探してmodulesフォルダにコピーする
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

#以下の記述を追加
<Location /svn>
  DAV svn
  SVNParentPath "d:/svn"
(※以下が認証の設定)
  AuthType Basic
  AuthName "Subversion repositories"
  AuthUserFile "C:/Apache2.2/etc/svnpasswd"  ←※1
  Require valid-user
</Location>

※1…パスワードファイルの絶対パス。任意の場所で大丈夫なので、拡張子なしの空のファイルを作っておいてください。
あとで説明するユーザの追加時に自動でできたかも。すみません、忘れました。。。

#ちなみに以下のように複数作れます
<Location /svn2>
  DAV svn
  SVNListParentPath on
  SVNParentPath "d:/svn2"

  AuthType Basic
  AuthName "Subversion repositories"
  AuthUserFile "C:/Apache2.2/etc2/svnpasswd"
  Require valid-user
</Location>
<Location /svn3>
  DAV svn
  SVNListParentPath on
  SVNParentPath "d:/svn3"

  AuthType Basic
  AuthName "Subversion repositories"
  AuthUserFile "C:/Apache2.2/etc3/svnpasswd"
  Require valid-user
</Location>


【ユーザの追加】

コマンドプロンプトを起動してください。
最初のユーザは、-cコマンドを付与して作成します。

c:> cd c:/Apache2.2/etc
c:/Apache2.2/etc>
"C:\Apache2.2\bin\htpasswd.exe" -c svnpasswd username(ユーザ名)
このあとパスワードを入力する

2人目以降は-cコマンドを付けずに実行。付けると上書きされるので。

c:/Apache2.2/etc>
"C:\Apache2.2\bin\htpasswd.exe" svnpasswd username(ユーザ名)

これでetcフォルダの下のsvnpasswdファイルに複数のユーザが追加されます。

また、ここで設定したユーザIDがコミット時などのログに利用されるAuthorになります。


【リポジトリ作成】

(1)ディレクトリを作成
mkdir D:\svn\repo

(2)リポジトリとして認識させる
svnadmin create D:\svn\repo


あとはTortoiseSVNとか、Eclipseとか、または他のツールでフォルダごとインポートします。