UE4のプロジェクトをSubversionで管理する httpアクセス編 その4

2019年3月3日

仮想サーバーのApache導入設定が完了し、テストのhtmlページをhttpアクセスで表示する事ができるようになったので、今回はSubversionで作成したリポジトリにhttpでアクセスします。

※画像はクリックで拡大できます

 

スポンサーリンク

WebDAVの導入

 

サーバー上のファイルの読み取りや編集をWebプラウザ上で行えるようになるWebDAVをインストールします。

# yum install mod_dav_svn

 

完了しました!が出れば成功です。

 

リポジトリの所有権変更

Apacheのプロセスがリポジトリにアクセスできるように所有権を変更します。

所有者にはApacheインストール時の「httpアクセス編 その1」で追加したユーザー名を使用します。

ー UE4のプロジェクトをSubversionで管理する httpアクセス編 その1 ー

指定するリポジトリですが、以前の記事で「/var/svn/repos/project」で作成していましたが、テスト用のindex.htmlを/home/ユーザー名/html内に作った経緯もあり、「/home/svn/repos/project」に作り直してます。

作り方自体は一緒で場所だけ変えただけです。

ー UE4のプロジェクトをSubversionで管理する その4 ー

下記コマンドで所有権を変更します。

# chown -R 追加したユーザー名:追加したユーザー名 /home/svn/repos/

 

10-subversion.confの設定

 

WebDAVをインストールした事で、「/etc/httpd/conf.modules.d/」の中に「10-subversion.conf」が作成されています。

10-subversion.confに下記の設定を追記する事で、リポジトリへのアクセスURLを設定します。

# <Location /svn/repos>
#   DAV svn
#   SVNParentPath "/home/svn/repos/"
#   SVNListParentPath on
# </Location>

 

接続の確認

 

これまでの設定で、httpによるリポジトリのアクセスは可能になっています。早速「http://サーバーのIP/svn/repos/」をプラウザに入力してみます。

httpでアクセスできました!

とりあえず現状だと誰でもアクセスできちゃいますが、httpでリポジトリへのアクセスは成功です。

 

BASIC認証方式の設定

 

誰でもアクセスできてしまうのは悲しいので、先ほど設定した「10-subversion.conf」にさらに追記する事で、BASIC認証を設定します。

# <Location /svn/repos>
#   DAV svn
#   SVNParentPath "/home/svn/repos/"
#   SVNListParentPath on
#   AuthType Basic
#   AuthName "svn repository"
#   AuthzSVNAccessFile /etc/subversion/conf/authzsvn.conf
#   AuthUserFile /etc/subversion/conf/authuser.conf
#   Require valid-user
# </Location>

 

追記した内容の中で、AuthzSVNAccessFileとAuthUserFile に関してですが、/etc/subversion/まではあるのですが、その先の「conf」ディレクトリと「authzsvn.conf」、「authuser.conf」ファイルは存在しませんでした。

なので各ファイルを作成します。

# cd /etc/subversion
# mkdir conf
# cd conf
# vi authzsvn.conf
# vi authuser.conf

 

次に、開発メンバー分のユーザーと対応するパスワードを今作ったauthuser.confに追加します。下記コマンドを入力するとニ回パスワードの入力が求められます。

# htpasswd /etc/subversion/conf/authuser.conf ユーザー名

 

各開発メンバーにそれぞれルートディレクトリの権限を設定します。

# [/]
# ユーザー名1=rw
# ユーザー名2=rw
# ユーザー名3=r

# ユーザー名1とユーザー名2は読み込み、書き込み可能
# ユーザー名3は読み込みのみ可能

 

設定を反映するため、一応Apacheを再起動します。

# systemctl restart httpd

 

BASIC認証の動作確認

BASIC認証の設定が完了したので、先ほどは誰でも見れてしまう「http://サーバーのIP/svn/repos/」にアクセスしてみます。

リポジトリが表示される前に、BASIC認証画面がでるようになりました!

これで先ほど追加したユーザー名とパスワードを入力しないとリポジトリにアクセスできないようになりました。

 

TortoiseSVNのチェックアウトをhttp経由でしてみる

 

ウェブプラウザでリポジトリのBASIC認証は確認できたので、TortoiseSVNを使ってローカルPCにチェックアウトできるかを試します。

リポジトリのURLに「http://サーバーのIP/svn/repos/project」を設定してチェックアウトします。

TortoiseSVNでも認証がでました!

設定したユーザー名とパスワードで無事ローカルPCにチェックアウトできました!

 

まとめ

 

今回までで、Subversionのsvn+ssh接続の記事が6つ、http接続の記事が4つと計10記事にまでなってしまいました。しかもUE4のプロジェクト管理が目的ですが、まだUE4のプロジェクトを実際にimportしてません(汗

個人的にですが、svn+ssh接続よりもhttp接続の方が情報が集めやすく、またウェブプラウザで成功が目で確認しやすかったりと、比較的やりやすく感じました。

本当はhttpアクセス編 その1でやれば良かったのですが、ルーターにポートフォワーディングの設定をして外部からのアクセスを許可しています。グローバルIPで接続が来た場合、httpのポート範囲=80番、仮想サーバーのローカルIPに対してプロトコル=TCPで接続振り分けしています。

ですので、仮想サーバーへ自分がアクセスする場合は仮想サーバーのローカルIP、開発メンバーが外から仮想サーバーへアクセスする場合はグローバルIPをURLへ使用しています。

で、グローバルIPは動的IPなので変わってしまいます。現状は変わったらグローバルIPをメンバーに伝えなおす感じになっちゃってます。

ドメインを取ればグローバルIPの変わりにドメイン指定で行けるようですが、お金かかるしとりあえず良いかなと思ってますw

次回はようやく、UE4のプロジェクトをコミットしてみたいと思います。

スポンサーリンク