Apache+Subversion インストール


Apache2 の取得

$ 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


apr インストール

apr(Apache Portable Runtime)をインストールする。

インストール

$ cd /usr/local/src/httpd-2.2.11/srclib/apr
$ ./configure --prefix=/usr/local/apr --enable-threads
$ make
$ sudo make install

参考URL


apr-util インストール

apr-util(Apache Portable Runtime Utility)をインストールする。

確認

事前に apr、iconv、expat をインストールしておく。

iconv

iconv がインストールされているか確認する。

$ which iconv

expat

expat がインストールされているか確認する。

$ yum list install | grep expat-devel

expat がインストールされていなかったら、インストールする。

$ sudo yum install expat-devel

インストール

$ 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

メモ

confiture するとき、 --with-expat=/usr/local --with-iconv=/usr/local などと場所を指定もできるみたい。


apache2 インストール

インストール

$ 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 オプションメモ

ドキュメントキャッシュ機能(参考:強化されたドキュメントキャッシュ機能を使う)

  • enable-cache (ドキュメントキャッシュ機能を有効にする)
  • enable-disk-cache (ディスクキャッシュ)
  • enable-mem-cache (メモリキャッシュ)

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

  • enable-proxy
  • enable-proxy-blancer


apache 設定

apache 実行ユーザ作成

$ sudo groupadd apache
$ sudo useradd -g apache -s /sbin/nologin apache

設定ファイル(httpd.conf)の修正

以下のように修正する。

$ 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


apache 自動起動

apache 起動のためファイルコピー

$ 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

ファイルの修正

$ 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 を追加

$ sudo chkconfig --add httpd

apache 自動起動設定

$ sudo chkconfig httpd on

apache 自動起動設定の確認

ランレベル 2, 3, 4, 5 になっていればよい。

$ chkconfig --list httpd


Neon インストール

neon(WebDAVクライアントライブラリ)をインストールする。

確認

事前に zlib と expat もしくわ libxml2 (XMLパーサーライブラリ)をインストールしておく。

zlib

zlib がインストールされているか確認する。

$ yum list installed | grep zlib-devel

zlib がインストールされていなかったら、インストールする。

$ sudo yum install zlib-devel

libxml2

libxml2 がインストールされているか確認する。

$ yum list installed | grep libxml2-devel

libxml2 がインストールされていなかったら、インストールする。

$ sudo yum install libxml2-devel

インストール

バージョンは 0.25.5。

$ 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

共有ライブラリに追加

ファイルの修正

neon.conf を新たに作成し「/usr/local/neon/lib」を記述する。

$ sudo vim /etc/ld.so.conf.d/neon.conf

/usr/local/neon/lib

ldconfig 更新

$ sudo ldconfig

確認

$ ldconfig -p | grep 'neon'

参考URL


swig インストール

swig(Simplified Wrapper and Interface Generator)をインストールする。

インストール

バージョンは 1.3.29。

$ 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

共有ライブラリに追加

ファイルの修正

swig.conf を新たに作成し「/usr/local/swig/lib」を記述する。

$ sudo vim /etc/ld.so.conf.d/swig.conf

/usr/local/swig/lib

ldconfig 更新

$ sudo ldconfig

確認

$ ldconfig -p | grep 'swig'

参考URL


Subversion インストール

確認

事前に arp、apr-util、neon、zlib、gettext、iconv をインストールしておく。

gettext

gettext がインストールされているか確認する。

$ yum list installed | grep gettext

gettext がインストールされていなかったら、インストールする。

$ sudo yum install gettext
$ sudo yum install gettext-devel

インストール

$ 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


Subversion リポジトリ作成

環境にあわせて適当に設定してください。
ちなみに、私はこんな感じ。

/home/svn
   |-- .htpasswd
   |-- .svnaccess
   `-- repos
      |-- sample (リポジトリ)
      |   |-- trunk
      |   |-- branches
      |   `-- tags
      |-- hoge (リポジトリ)
      |   |-- trunk
      |   |-- branches
      |   `-- tags
      `-- fuga (リポジトリ)
          |-- trunk
          |-- branches
          `-- tags

Subversion 用のユーザ作成

$ sudo useradd -m svnadmin
$ sudo passwd svnadmin

ディレクトリを作成

$ sudo mkdir -p /home/svn/repos
$ cd /home/
$ sudo chown svnadmin:svnadmin svn
$ cd /home/svn
$ sudo chown svnadmin:svnadmin repos

リポジトリの作成

$ 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"

リポジトリの権限設定

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

方法 1

2行目で apache グループに変更し、3行目で他人が実行する場合にグループの権限で実行するように設定。

$ cd /home/svn/repos
$ sudo chgrp -R apache sample
$ sudo chmod -R g+s sample

方法 2

もしくわ、所有者とグループを apache に設定。

$ cd /home/svn/repos
$ sudo chown -R apache:apache sample

設定ファイル(http.conf)の修正

以下の1行を追加する。

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

設定ファイル(httpd-subversion.conf)を作成

$ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf
<Location /svn>
 DAV svn
 SVNParentPath /home/svn/repos
</Location>

apache 再起動

$ /etc/init.d/httpd restart

動作確認

以下のURLにアクセスすると、ブラウザでリポジトリが表示される。

http://localhost/svn/sample/


Subversion ベーシック認証 or ダイジェスト認証の設定

設定ファイル(httpd-subversion.conf)の作成

以下のように修正する。

$ 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
</Location>

ダイジェスト認証の場合

<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>

パスワードファイルの作成

ベーシック認証の場合

ソースから apache をインストールした場合、htpasswd コマンドは、/usr/local/apache2/bin/htpasswd (apache のディレクトリ/bin/htpasswd)にインストールされている。
そうでなければ、/usr/bin/htpasswd とかかな?

$ cd /home/svn

新規作成

$ htpasswd -c .htpasswd ユーザ名

ユーザ追加

$ htpasswd .htpasswd ユーザ名

ユーザ削除

$ hpasswd -D .htpasswd ユーザ名

ダイジェスト認証の場合

"Subversion repository" のところは、AuthName? に設定した値を使う

$ cd /home/svn

新規作成

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

ユーザ追加

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

apache 再起動

$ /etc/init.d/httpd restart

動作確認

以下のURLにアクセスすると、認証がかかっている

http://localhost/svn/sample/


Subversion アクセス権限の設定

設定ファイル(subversion.conf)の修正

以下のように修正する。

$ 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)の修正

以下のように修正する。

$ 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)を作成

.svnaccess の書き方は、 httpd, Apache HTTP サーバ を参考に。
以下は、たとえばです。

$ 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 再起動

$ /etc/init.d/httpd restart

動作確認

以下のURLにアクセスすると、リポジトリが表示される。

http://localhost/svn/sample/


SSL を使う場合

OpenSSL をつかう場合は、OpenSSL をインストールしてから Subversion をインストールする

neon

ssl のオプションをつけてコンパイルする

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

Apache

ssl のオプションをつけてコンパイルする

--with-ssl=/usr/local/openssl

Subversion

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


参考URL


Comment

  • 嵌ってしまったら、ここにたどり着きました!色々入れるの面倒でしたが、、RHEL5.4にsubversion1.6.1+apacheが入りました。感謝です。ちなみに私は、SVNListParentPath? onも入れました。 -- ささけい? 2010-05-25 (火) 20:53:16
  • ささけいさん、コメントありがとうございます!お役にたてたみたいでよかったです〜! -- minaco? 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 -- 妖狐? 2011-11-16 (水) 16:06:11
  • 所有者とグループの設定をミスってました。無事に出来ました。 -- 妖狐? 2011-11-24 (木) 16:25:11
  • step by step で説明して頂いて有難う御座います。apacheのconfigureが少し長いですね、たぶん要らないモジュールのいくつか入っています。 -- go? 2011-12-08 (木) 17:29:41


Counter: 41863, today: 6, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:34 (1457d)