QNAPでgitweb | Qtとその他諸々の学習ブログ

Qtとその他諸々の学習ブログ

学習メモ。間違えやアドバイス、質問があればコメント下さい。Qtが好きなのでQtの学習が多いです。

QNAPでgitweb環境を整備しました。
================
2014.9.17追記
下記の記事でやり方を再確認したので、そちらを参照したほうが良いです。
http://ameblo.jp/dumbobambino/entry-11924297114.html
================

■作業環境
QNAPのTS-220
Firmware:4.0.2

■やったこと
http://wiki.qnap.com/wiki/Gitosis_and_GitWeb_on_TS-219P
に従って作業しました。gitsisは導入済みなので、gitsis構築手順と思われる作業は飛ばしました。
また、gitosisのrepositoryやwebコンテンツを配置するパスが自分の環境と違っていたりしたので
読み替えました。
ファイルやフォルダのアクセス権の設定でハマったので気をつけましょう。


●perlのインストール
# ipkg update 
# ipkg install perl

●web公開用フォルダにgitwebフォルダを追加(gitwebフォルダへのシンボリックリンクを生成)
# cd /share/Web/myWeb/
# ln -s /opt/share/gitweb/

●cgiを実行できるように設定
# vim /share/Web/myWeb/gitweb/.htaccess
  ※ファイルの新規作成となる
 下記を記入して保存・終了
  AddHandler cgi-script .cgi
  Options +ExecCGI

●cgi実行用のhtmlファイルを作成
# vim /share/Web/myWeb/gitweb/index.html
  ※ファイルの新規作成となる
 下記を記入して保存・終了
  <meta http-equiv="refresh" content="0; url=http://QNAPのIPアドレス:myWebフォルダアクセス用のポート番号/gitweb/gitweb.cgi">
   ※本当は参照元ページの手順のようにしてIP直打ちはやめるべきなのでしょうが、公開するわけではないので良しとする。
  こうすることでhosts.localの設定を省ける。
   ※ポート番号はQNAPのWebクライアントのコントロールパネル->Webサーバー->仮想ホストの設定画面にて確認できます。

●gitwebのcgiにgitのリポジトリフォルダを設定
# vim /share/Web/myWeb/gitweb/gitweb.cgi
 ※既存のファイルを開く
 下記を修正して保存・終了
 Replace /usr/bin/perl with /opt/bin/perl
 Set our $projectroot to /share/homes/gitosis/repositories

●webブラウザからアクセスできるようにファイルのアクセス権を設定
# chmod 644 /share/Web/myWeb/gitweb/.htaccess
# chmod 644 /share/Web/myWeb/gitweb/index.html
※QNAP上でadminで作業していると新規に作成したファイルやフォルダのアクセス権が
 adminのみになっているので、その他のユーザーにもread権限を与えないとアクセスできません。
 ブラウザからアクセスしようとしても下記エラーになります。
=====================
 Forbidden
 You don't have permission to access "アクセスしようとしたファイル名" on this server.
=====================

●gitwebがgitのリポジトリを参照できるようにフォルダのアクセス権を設定
# chmod 755 /share/homes/gitosis/repositories/test.git/
# chmod 755 /share/homes/gitosis/repositories/study.git/
※この設定をやらないと、gitwebのページは表示されるものの、「404 no projects found」と表示され、何もプロジェクトが見つかりません。
ちなみに、
http://stackoverflow.com/questions/10275536/configuring-gitweb-404-no-projects-found?rq=1
には「The gitweb cgi has to have the same owner as the repo you're scanning.」と書いてありますが、
ownerが違っていても特に問題ありませんでした。


■参考ULR
http://wiki.qnap.com/wiki/Unleashing_Apache_Configuration
http://wiki.qnap.com/wiki/Gitosis_and_GitWeb_on_TS-219P

.htaccessについて
http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/


以上。