QNAP TS-109II で Subversionを使うpost

久しぶりに、NAS(QNAP TS-109II)の環境を作り直したのでメモ。

元々はsubversionを入れたいがためにdebianを入れていたけど、どうもそんな小難しいことをしなくてもSubversionを動かせるって情報を見つけたので今の環境を破棄してまで試してみる。

結論から言うとバックアップやら何やらで時間はかかったけど問題なく動きそう。

あたりを参考に、NAS(QNAP TS-109II)に、Apache+Subversionの環境を作ってみた

Optware IPKGをインストール

ApacheやSubversionをインストールするのに必要なIPKGを追加。

Install Optware IPKG - QNAPediaを参考にインストール。

  1. QNAPの管理画面を開く
  2. 「ホーム」→「アプリケーション」→「QPKGプラグイン」を開く
  3. 「QPKGの取得」を押下し、「Optware IPKG (Itsy Package Management System)」をダウンロード&解凍
  4. 解凍した、"Optware_?.qpkg" を、「インストール」タブからインストール
  5. 「QPKGインストール済み」タブから、「Optware IPKG」を選び、「有効にする」を押下し有効にする

有効にした直後のみipkgコマンドへパスが通るが、リブート以降パスが通らなくなるので

export PATH=$PATH:/opt/bin:/opt/sbin

としておく

Apache2をインストール

ipkg install apache

すると↓のように mod_ext_filter.so が読み込めないとエラーが出る。

httpd: Syntax error on line 74 of /opt/etc/apache2/httpd.conf: Cannot load /opt/libexec/mod_ext_filter.so into server: /opt/libexec/mod_ext_filter.so: undefined symbol: apr_procattr_limit_set
httpd: Syntax error on line 74 of /opt/etc/apache2/httpd.conf: Cannot load /opt/libexec/mod_ext_filter.so into server: /opt/libexec/mod_ext_filter.so: undefined symbol: apr_procattr_limit_set

mod_ext_filter.so: undefined symbol: apr_procattr_limit_set を参考に設定を変更。

参考ページでも結局モジュールを読まないように変えるしかないようだ。

vi /opt/etc/apache2/httpd.conf

で設定ファイルから libexec/mod_ext_filter.so を探しコメントアウト。

httpd: bad user name nobody

と言われるのでユーザーを追加。

  1. QNAPの管理画面を開く
  2. 「ホーム」→「アクセス権管理」→「ユーザー」を開く
  3. 「ユーザーの追加」を押下
  • ユーザ名:nobody
  • 容量制限の設定:無効にする
  • グループ:administrators, everyone
  • 読み込みのみ:---
  • 読み取り/書き込み:Public, Qdownload, Qmultimedia ...
  • アクセス拒否:---

で追加

httpd: Could not reliably determine the server's fully qualified domain name, using ? for ServerName

と言われるので設定を書き換え。

ServerName nasserver:888

とかこんな感じ

もちろん例の場合、

Listen 888

としておかないといけない

やることとしては、

  • mod_ext_filter.so の設定を、httpd.conf からコメントアウト
  • ServerName(変更するならListenも)の設定を、httpd.conf に指定
  • QNAP管理画面から、nobodyユーザーを追加。
/opt/sbin/httpd -k start

で起動して http://nasserver:888/ などにブラウザでアクセスし、

It works!

と表示されたらOK

Subversionをインストール

ipkg install svn

httpd.conf に↓を追加

Include etc/apache2/conf.d/*.conf

レポジトリは、

/share/HDA_DATA/svn

に設置

認証用のファイルは、

/share/HDA_DATA/Qweb/repos/

に置く

HDA_DATAの部分は、製品によって違うようだ

.authz や .htpasswd

vi /opt/etc/apache2/conf.d/mod_dav_svn.conf に

<IfModule dav_svn_module>
<Location "/repos/">
DAV svn
SVNParentPath /share/HDA_DATA/svn
SVNListParentPath on
AuthzSVNAccessFile /share/HDA_DATA/Qweb/repos/.authz
<IfModule dav_svn_module>
AuthType Basic
AuthName "Authentication"
AuthUserFile /share/HDA_DATA/Qweb/repos/.htpasswd
Require valid-user
</IfModule>
</Location>
<Directory /share/HDA_DATA/Qweb/repos>
AllowOverride All
Options All
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND MKACTIVITY CHECKOUT MKACTIVITY DELETE PROPPATCH MKCOL MERGE REPORT PUT COPY>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
</IfModule>

を追加。

mkdir /share/HDA_DATA/svn
cd /share/HDA_DATA/svn
svnadmin create test

などしてレポジトリを作る

Apacheの自動起動

Running Your Own Application at Startup - QNAPediaを参考に

autorun.sh を編集

いちいちマウントするのが面倒なので、Method 3 方式で

/share/HDA_DATA/.qpkg/autorun/autorun.sh に

(sleep 10; /opt/sbin/httpd -k start ) &

と追加


   /   変更履歴  /   Permalink  /  このエントリーをはてなブックマークに追加 
 カテゴリ: ブログ  /   タグ: Subversion, QNAP, NAS, Linux, Apache