久しぶりに、NAS(QNAP TS-109II)の環境を作り直したのでメモ。
元々はsubversionを入れたいがためにdebianを入れていたけど、どうもそんな小難しいことをしなくてもSubversionを動かせるって情報を見つけたので今の環境を破棄してまで試してみる。
結論から言うとバックアップやら何やらで時間はかかったけど問題なく動きそう。
あたりを参考に、NAS(QNAP TS-109II)に、Apache+Subversionの環境を作ってみた
Optware IPKGをインストール
ApacheやSubversionをインストールするのに必要なIPKGを追加。
Install Optware IPKG - QNAPediaを参考にインストール。
- QNAPの管理画面を開く
- 「ホーム」→「アプリケーション」→「QPKGプラグイン」を開く
- 「QPKGの取得」を押下し、「Optware IPKG (Itsy Package Management System)」をダウンロード&解凍
- 解凍した、"Optware_?.qpkg" を、「インストール」タブからインストール
- 「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
と言われるのでユーザーを追加。
- QNAPの管理画面を開く
- 「ホーム」→「アクセス権管理」→「ユーザー」を開く
- 「ユーザーの追加」を押下
- ユーザ名: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 ) &
と追加