読者です 読者をやめる 読者になる 読者になる

all green

プログラム、アプリ作成、Web等備忘録が中心です

subversionのインストール

自作ソースをまとめるためにsubversionでも使おうかなと思って設定をした時のメモ。
(バーチャルホストの設定、SVNリポジトリの作成など)

前に勤めていた会社では、アカウントの追加削除や
リポジトリの作成くらいはやっていたけど
インストールからはやってみたことがなかったので
いい機会だと思ってやってみました。

と思って軽く調べるとさくらインターネットVPSだと
もともとインストールされているいるようで・・・。

以下手順等

環境等
Apache 2.4(ソースからインストールしたもの)

バーチャルホストの設定

httpd.confを編集

  • Includeのコメントを外して有効にする
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
</VirtualHost>
  • Directorの変更

今回はメインのドメインが/var/www/html
サブメイン/var/www/subを使用するので以下の設定

<Directory /var/www>
    AllowOverride none
    #Require all denied
</Directory>


httpd-vhosts.confの編集

<VirtualHost *:80>
    ServerAdmin test@www.example.com
    DocumentRoot "/var/www/html/"
    ServerName www.example.com
    ErrorLog "logs/www.example.com-error_log"
    CustomLog "logs/www.example.comaccess_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin test@sub.example.com
    DocumentRoot "/var/www/sub/"
    ServerName sub.example.com
    ErrorLog "logs/sub.example.com-error_log"
    CustomLog "logs/sub.example.com-access_log" common
</VirtualHost>

ここでmod_dav_svnyumでインストールする流れで
yumでapache2.2をインストールしてしまった・・・
眠い中適当に作業するとあかんですね

自分の場合はApache 2.4をソースからインストールしているので
subversionもソースでインストールします。


まずはアンインストールから

# yum list installed | grep subversion
subversion.x86_64   1.6.11-12.el6_6     @updates

# yum remove subversion

最新版をDL
http://subversion.apache.org/

# mv subversion-1.8.11.tar.gz /usr/local/src/
# cd /usr/local/src/
# tar -zxvf subversion-1.8.11.tar.gz
# cd subversion-1.8.11
# ./configure


SQLiteがないとおこられる

SQLiteのインストール

SQLite公式SQLite Home Page
sqlite-amalgamation-3080802.zipをDL

解凍してできた「sqlite-amalgamation-3080802」を移動

# mv sqlite-amalgamation-3080802 /usr/local/src/subversion-1.8.11/sqlite-amalgamation

configureとインストール

# cd /usr/local/src/subversion-1.8.11
# ./configure
# make

で以下エラー

/usr/local/src/subversion-1.8.11/sqlite-amalgamation/sqlite3.c:14078:27: error: #if with no expression
make: *** [subversion/libsvn_subr/sqlite3wrapper.lo] Error 1

めんどうなのでバージョンを変えて試してみる。

# mv subversion-1.7.19.tar.gz /usr/local/src/
# mv sqlite-amalgamation-3080802 /usr/local/src/subversion-1.7.19/sqlite-amalgamation
# cd /usr/local/src/subversion-1.7.19
# ./configure
# make
# make install

httpd.confを編集

# vi /usr/local/apache2/conf/httpd.conf
LoadModule dav_module modules/mod_dav.so       # コメントを外す
LoadModule dav_fs_module modules/mod_dav_fs.so # コメントを外す

追加
Include conf/extra/subversion.conf

vi /usr/local/apache2/conf/extra/subversion.conf
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location />
   DAV svn
   SVNParentPath /var/www/svn

   # Limit write permission to list of valid users.
   #<LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /home/svn/.htpasswd
      Require valid-user
   #</LimitExcept>
</Location>

パスワード作成

htpasswd -c /home/svn/.htpasswd XXXXXX

リポジトリを作成

# svnadmin creat /var/www/svn/XXXXXX

この後TortoiseSVNでアクセスしてコミットをしようとしたら
「could not begin a transaction」とエラーがでた。
/var/www/svn/XXXXXX以下がrootの権限になっていたので
ユーザー、グループをapacheのユーザーに変更することで解決しました