*Apache+Subversion インストール [#ab255ad4]
#contents2_1(compact=true,depth=1-2)

&br;
*Apache2 の取得 [#o6f632ba]
 $ cd /usr/local/src
 $ wget http://www.meisei-u.ac.jp/mirror/apache/httpd/httpd-2.2.11.tar.gz
 $ tar zvxf httpd-2.2.11.tar.gz

&br;
*apr インストール [#r24aba77]
apr(Apache Portable Runtime)をインストールする。&br;

**インストール [#pbddd53d]
 $ cd /usr/local/src/httpd-2.2.11/srclib/apr
 $ ./configure --prefix=/usr/local/apr --enable-threads
 $ make
 $ sudo make install

**参考URL [#c6c6cec5]
-[[http://apr.apache.org/]]



&br;
*apr-util インストール [#r8c23096]
apr-util(Apache Portable Runtime Utility)をインストールする。&br;

**確認 [#x91965e4]
事前に apr、iconv、expat をインストールしておく。&br;

***iconv [#wedeaf6b]
iconv がインストールされているか確認する。
 $ which iconv

***expat [#d8ef0e94]
expat がインストールされているか確認する。
 $ yum list install | grep expat-devel

expat がインストールされていなかったら、インストールする。
 $ sudo yum install expat-devel


**インストール [#hb2da324]
 $ cd /usr/local/src/httpd-2.2.11/srclib/apr-util
 $ ./configure --prefix=/usr/local/apr  --with-apr=/usr/local/apr
 $ make
 $ sudo make install

**メモ [#hc81222e]
confiture するとき、 --with-expat=/usr/local --with-iconv=/usr/local などと場所を指定もできるみたい。


&br;
*apache2 インストール [#r71f3fb4]
**インストール [#i8ea18db]
 $ cd /usr/local/src/httpd-2.2.11
 
 $ ./configure 
 --prefix=/usr/local/apache2  
 --enable-mods-shared=most 
 --enable-dav 
 --enable-dav-fs 
 --enable-dav-lock 
 --enable-cgi 
 --enable-cgid 
 --enable-cache
 --enable-mem-cache
 --enable-proxy 
 --enable-proxy-blancer
 --enable-rewrite 
 --enable-so 
 --with-apr=/usr/local/apr 
 --with-apr-util=/usr/local/apr
 
 $ make
 $ sudo make install

**configure オプションメモ [#w58aa486]
ドキュメントキャッシュ機能(参考:[[強化されたドキュメントキャッシュ機能を使う:http://www.atmarkit.co.jp/flinux/special/apache22/apache02.html]])
-enable-cache (ドキュメントキャッシュ機能を有効にする)
-enable-disk-cache (ディスクキャッシュ)
-enable-mem-cache (メモリキャッシュ)

負荷分散のためのロードバランス機能
-enable-proxy
-enable-proxy-blancer

&br;
*apache 設定 [#e17674ab]
**apache 実行ユーザ作成 [#y7089392]
 $ sudo groupadd apache
 $ sudo useradd -g apache -s /sbin/nologin apache

**設定ファイル(httpd.conf)の修正 [#bbb0847e]
以下のように修正する。
 $ sudo vim /usr/local/apache2/conf/httpd.conf

 変更前
 User daemon
 Group daemon
  ↓
 変更後
 User apache
 Group apache

以下の1行を追加する。
 LoadModule dav_svn_module     modules/mod_dav_svn.so


&br;
*apache 自動起動 [#ka62754b]
**apache 起動のためファイルコピー [#e2a66b6b]
 $ sudo cp /usr/local/src/httpd-2.2.11/build/rpm/httpd.init /etc/rc.d/init.d/httpd
 $ sudo chmod 755 /etc/init.d/httpd

**ファイルの修正 [#a3075d16]
 $ sudo vim /etc/rc.d/init.d/httpd

 変更前
 CONFFILE=/etc/httpd/conf/httpd.conf
  ↓
 変更後
 CONFFILE=/usr/local/apache2/conf/httpd.conf

 変更前
 apachectl=/usr/sbin/apachectl
  ↓
 変更後
 apachectl=/usr/local/apache2/bin/apachectl

 変更前
 httpd=${HTTPD-/usr/sbin/httpd}
  ↓
 変更後
 httpd=${HTTPD-/usr/local/apache2/bin/httpd}


**apache 自動起動設定に httpd を追加 [#c9df9491]
 $ sudo chkconfig --add httpd

**apache 自動起動設定 [#bdd15830]
 $ sudo chkconfig httpd on

**apache 自動起動設定の確認 [#t3eda13e]
ランレベル 2, 3, 4, 5 になっていればよい。
 $ chkconfig --list httpd




&br;
*Neon インストール [#qc84724a]
neon(WebDAVクライアントライブラリ)をインストールする。&br;

**確認 [#qefcbdb6]
事前に zlib と expat もしくわ libxml2 (XMLパーサーライブラリ)をインストールしておく。 &br;

***zlib [#c2a56d75]
zlib がインストールされているか確認する。
 $ yum list installed | grep zlib-devel

zlib がインストールされていなかったら、インストールする。
 $ sudo yum install zlib-devel

***libxml2 [#y6fc71ea]
libxml2 がインストールされているか確認する。
 $ yum list installed | grep libxml2-devel

libxml2 がインストールされていなかったら、インストールする。
 $ sudo yum install libxml2-devel


**インストール [#ab01fd30]
バージョンは 0.25.5。&br;

 $ cd /usr/local/src/
 $ wget http://www.webdav.org/neon/neon-0.25.5.tar.gz
 $ tar zvxf neon-0.25.5.tar.gz
 $ cd neon-0.25.5
 $ ./configure --prefix=/usr/local/neon --with-libxml2 --with-expat
 $ make
 $ sudo make install

**共有ライブラリに追加 [#i9f71bff]
***ファイルの修正 [#a4e3a202]
neon.conf を新たに作成し「/usr/local/neon/lib」を記述する。
 $ sudo vim /etc/ld.so.conf.d/neon.conf
 
 /usr/local/neon/lib

***ldconfig 更新 [#mbe4f29e]
 $ sudo ldconfig
 
***確認 [#a1e8ea96]
 $ ldconfig -p | grep 'neon'

**参考URL [#bf791077]
-[[http://www.webdav.org/neon/]]



&br;
*swig インストール [#z5874b4d]
swig(Simplified Wrapper and Interface Generator)をインストールする。&br;

**インストール [#w8bb347e]
バージョンは 1.3.29。&br;

 $ cd /usr/local/src/
 $ wget http://downloads.sourceforge.net/swig/swig-1.3.29.tar.gz
 $ tar zvxf swig-1.3.29.tar.gz
 $ cd swig-1.3.29
 $ ./configure --prefix=/usr/local/swig --with-python=/usr/local/python-2.5.2/bin/python 
 $ make
 $ sudo make install


**共有ライブラリに追加 [#zfaf1ae5]
***ファイルの修正 [#tdb49a53]
swig.conf を新たに作成し「/usr/local/swig/lib」を記述する。
 $ sudo vim /etc/ld.so.conf.d/swig.conf
 
 /usr/local/swig/lib

***ldconfig 更新 [#yad2ebfd]
 $ sudo ldconfig
 
***確認 [#j839c7b3]
 $ ldconfig -p | grep 'swig'


**参考URL [#p4afb3ad]
-[[http://www.swig.org/]]




&br;
*Subversion インストール [#xee02197]

**確認 [#u2ff3fdc]
事前に arp、apr-util、neon、zlib、gettext、iconv をインストールしておく。 &br;


***gettext [#z78caec9]
gettext がインストールされているか確認する。
 $ yum list installed | grep gettext

gettext がインストールされていなかったら、インストールする。
 $ sudo yum install gettext
 $ sudo yum install gettext-devel

**インストール [#kbea5ceb]
 $ cd /usr/local/src/
 $ wget http://subversion.tigris.org/downloads/subversion-1.5.6.tar.gz
 $ tar zvxf subversion-1.5.6.tar.gz
 $ cd subversion-1.5.6
 $ ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-neon=/usr/local/neon --with-swig=/usr/local/swig --without-jdk
 $ make
 $ sudo make install

**参考URL [#k8d85a68]
-[[http://subversion.tigris.org/]]


&br;
*Subversion リポジトリ作成 [#c0239ea2]
環境にあわせて適当に設定してください。&br;
ちなみに、私はこんな感じ。&br;
 /home/svn
    |-- .htpasswd
    |-- .svnaccess
    `-- repos
       |-- sample (リポジトリ)
       |   |-- trunk
       |   |-- branches
       |   `-- tags
       |-- hoge (リポジトリ)
       |   |-- trunk
       |   |-- branches
       |   `-- tags
       `-- fuga (リポジトリ)
           |-- trunk
           |-- branches
           `-- tags

**Subversion 用のユーザ作成 [#zcc1f337]
 $ sudo useradd -m svnadmin
 $ sudo passwd svnadmin

**ディレクトリを作成 [#lf17d7ca]
 $ sudo mkdir -p /home/svn/repos

 $ cd /home/
 $ sudo chown svnadmin:svnadmin svn

 $ cd /home/svn
 $ sudo chown svnadmin:svnadmin repos


**リポジトリの作成 [#b03797f6]
 $ su - svnadmin
 [svnadmin@hoge]$ cd /home/svn/repos 
 [svnadmin@hoge]$ mkdire sample

 [svnadmin@hoge]$ svnadmin create sample

 [svnadmin@hoge]$ svn mkdir file:///home/svn/repos/sample/trunk -m "create"
 [svnadmin@hoge]$ svn mkdir file:///home/svn/repos/sample/branches -m "create"
 [svnadmin@hoge]$ svn mkdir file:///home/svn/repos/sample/tags -m "create"


**リポジトリの権限設定 [#t66e1fb0]
sample(リポジトリ)フォルダ以下を apache ユーザの権限でアクセスできるようにする。&br;
なんか、もっといい方法ありそう。&br;

***方法 1 [#d6025ad4]
2行目で apache グループに変更し、3行目で他人が実行する場合にグループの権限で実行するように設定。
 $ cd /home/svn/repos
 $ sudo chgrp -R apache sample
 $ sudo chmod -R g+s sample

***方法 2 [#o97e4132]
もしくわ、所有者とグループを apache に設定。
 $ cd /home/svn/repos
 $ sudo chown -R apache:apache sample



**設定ファイル(http.conf)の修正 [#aa21f5eb]
以下の1行を追加する。
 $ sudo vim /usr/local/apache2/conf/httpd.conf

 Include conf/extra/httpd-subversion.conf

**設定ファイル(httpd-subversion.conf)を作成 [#jcb30379]
 $ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf

 <Location /svn>
  DAV svn
  SVNParentPath /home/svn/repos
 </Location>

**apache 再起動 [#e433f468]
 $ /etc/init.d/httpd restart

**動作確認 [#lea7cba3]
以下のURLにアクセスすると、ブラウザでリポジトリが表示される。
 http://localhost/svn/sample/




&br;
*Subversion ベーシック認証 or ダイジェスト認証の設定 [#w107fc48]
**設定ファイル(httpd-subversion.conf)の作成 [#r4c141ca]
以下のように修正する。

 $ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf

***ベーシック認証の場合 [#x6595525]
 <Location /svn>
   DAV svn
   SVNParentPath /home/svn/repos
   
   # only authenticated users may access the repository
   Require valid-user
 
   # how to authenticate a user
   AuthType Basic
   AuthName "Subversion repository"
   AuthUserFile /home/svn/.htpasswd
 </Location>

***ダイジェスト認証の場合 [#h3f2ecd3]

 <location /svn>
    DAV svn
    SVNParentPath /home/svn/repos
    
    AuthType Digest
    AuthName "Subversion repository"
    AuthDigestProvider file
    AuthUserFile /home/svn/.htdigest
    Require valid-user
    BrowserMatch "MSIE" AuthDigestEnableQueryStringHack = On
    
    AuthzSVNAccessFile /home/svn/.svnaccess
 </location>

 <location /svn>
    # こっち古いかな
    DAV svn
    SVNParentPath /home/svn/repos
 
    AuthType Digest
    AuthName "Subversion repository"
    AuthDigestFile /home/svn/.htdigest
    Require valid-user
    BrowserMatch "MSIE" AuthDigestEnableQueryStringHack = On
 </location>



**パスワードファイルの作成 [#p10debc2]
***ベーシック認証の場合 [#rbfafa4f]
ソースから apache をインストールした場合、htpasswd コマンドは、/usr/local/apache2/bin/htpasswd (apache のディレクトリ/bin/htpasswd)にインストールされている。&br;
そうでなければ、/usr/bin/htpasswd とかかな?&br;

 $ cd /home/svn

新規作成
 $ htpasswd -c .htpasswd ユーザ名

ユーザ追加
 $ htpasswd .htpasswd ユーザ名

ユーザ削除
 $ hpasswd -D .htpasswd ユーザ名

***ダイジェスト認証の場合 [#ae1f7ac1]
"Subversion repository" のところは、AuthName に設定した値を使う

 $ cd /home/svn

新規作成

 $ htdigest -c .htdigest "Subversion repository" ユーザ名

ユーザ追加

 $ htdigest .htdigest "Subversion repository" ユーザ名

**apache 再起動 [#w3ed4e19]
 $ /etc/init.d/httpd restart

**動作確認 [#rc74aee4]
以下のURLにアクセスすると、認証がかかっている
 http://localhost/svn/sample/



&br;
*Subversion アクセス権限の設定 [#s5c8f7bf]
**設定ファイル(subversion.conf)の修正 [#q619d997]
以下のように修正する。

 $ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf

 <Location /svn>
    DAV svn
    SVNParentPath /home/svn/repos
    
    # only authenticated users may access the repository
    Require valid-user
 
    # how to authenticate a user
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile /home/svn/.htpasswd
 
    # how to access a user
    AuthzSVNAccessFile /home/svn/.svnaccess
 </Location>


**設定ファイル(httpd.conf)の修正 [#i24ea201]
以下のように修正する。
 $ sudo vim /usr/local/apache2/conf/httpd.conf

authz_svn_module の行を dav_svn_module の後に追加する。
 LoadModule dav_svn_module     modules/mod_dav_svn.so
 LoadModule authz_svn_module   modules/mod_authz_svn.so


**設定ファイル(.svnaccess)を作成 [#ia04e38c]
.svnaccess の書き方は、 [[httpd, Apache HTTP サーバ:http://subversion.bluegate.org/doc/ch06s04.html#svn.serverconfig.httpd.authz.perdir]]     を参考に。&br;
以下は、たとえばです。&br;

 $ cd /home/svn
 $ sudo vim .svnaccess

 [/]
 admin = rw
 
 # sample1 リポジトリ
 [sample1:/]
 user1 = rw
 user2 = r
 
 # sample2 リポジトリ
 [sample2:/trunk/test]
 user1 = rw
 user2 = r
 
 # sample3 リポジトリ
 [/sample3]
 * = 

**Apache 再起動 [#o566c639]
 $ /etc/init.d/httpd restart

**動作確認 [#qaba709f]
以下のURLにアクセスすると、リポジトリが表示される。
 http://localhost/svn/sample/


&br;
*SSL を使う場合 [#sa7ec10a]
OpenSSL をつかう場合は、OpenSSL をインストールしてから Subversion をインストールする

**neon [#y1a724d1]
ssl のオプションをつけてコンパイルする
 --with-ssl=openssl

 $ ./configure --prefix=/usr/local/neon --with-libxml2 --with-expat --with-ssl=openssl

**Apache [#x66bfead]
ssl のオプションをつけてコンパイルする
 --with-ssl=/usr/local/openssl

**Subversion [#gc71780a]
ssl のオプションをつけてコンパイルする
 --with-ssl

 $ ./configure --prefix=/usr/local/svn --with-apxs=/usr/sbin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-neon=/usr/local/neon --with-swig=/usr/local/swig --with-ssl --without-jdk

&br;
*参考URL [#gb5fed56]
-[[httpd, Apache HTTP サーバ:http://subversion.bluegate.org/doc/ch06s04.html#svn.serverconfig.httpd.authz.perdir]]




&br;
*Comment [#ld60a577]
- 嵌ってしまったら、ここにたどり着きました!色々入れるの面倒でしたが、、RHEL5.4にsubversion1.6.1+apacheが入りました。感謝です。ちなみに私は、SVNListParentPath onも入れました。 -- [[ささけい]] &new{2010-05-25 (火) 20:53:16};
- ささけいさん、コメントありがとうございます!お役にたてたみたいでよかったです〜! -- [[minaco]] &new{2010-07-07 (水) 00:52:01};
- “(20014)Internal error: Can't open file '/home/svn/repos/test/format': No such file or directory”がerror_logに吐き出されてしまい動作確認が出来ません...orz -- [[妖狐]] &new{2011-11-16 (水) 16:06:11};
- 所有者とグループの設定をミスってました。無事に出来ました。 -- [[妖狐]] &new{2011-11-24 (木) 16:25:11};
- step by step で説明して頂いて有難う御座います。apacheのconfigureが少し長いですね、たぶん要らないモジュールのいくつか入っています。 -- [[go]] &new{2011-12-08 (木) 17:29:41};

#comment_nospam
&br;
#counter

IP:221.255.117.34 TIME:"2011-12-08 (木) 17:29:41" REFERER:"http://wiki.minaco.net/index.php?VMwareFusion%2FCentOS5%2F15.Apache%2BSubversion%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB" USER_AGENT:"Mozilla/5.0 (X11; U; Linux x86_64; ja-JP; rv:1.9.2.17) Gecko/20110429 CentOS/3.6-1.el5.centos Firefox/3.6.17"

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS