bitnami-redmine-2.3.1-0(/usr/local/redmine-2.3.1-0 にインストール)で gitweb するために行った設定のメモ。
/cgi-bin/ にある CGI を動かす
なかなかだったので、まずは、/cgi-bin/ にある .cgi スクリプトを動かす設定を行って、簡単な .cgi スクリプトでテスト。
mod_cgid ならびに cgi-script のハンドラーを有効化。(コメントアウトを外す。)
$ cat apache2/conf/httpd.conf
: (省略)
#LoadModule info_module modules/mod_info.so
LoadModule cgid_module modules/mod_cgid.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
: (省略)
<IfModule mime_module>
: (省略)
#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
AddHandler cgi-script .cgi
: (省略)
$
スクリプトを用意して(1行目は git/share/gitweb/gitweb.cgi に合わせて設定)、
$ cat apache2/cgi-bin/test.cgi
#!/usr/bin/env /usr/local/redmine-2.3.1-0/perl/bin/perl
print <<EOD
Content-type: text/html
<html>
<head><title>Title</title></head>
<body>
<h1>Header</h1>
Text
</body>
</html>
EOD
$
http://hostname:8080/cgi-bin/test.cgi
を URL に指定するとうまく表示された。
gitweb.cgi を動かす
git/share/gitweb/gitweb.cgi を gitweb 用の設定ファイルを用意、
$ cat apps/gitweb/conf/gitweb.conf
Alias /gitweb "/usr/local/redmine-2.3.1-0/git/share/gitweb"
<Directory "/usr/local/redmine-2.3.1-0/git/share/gitweb">
Options ExecCGI FollowSymLinks SymLinksIfOwnerMatch
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
$
apache2/conf/httpd.conf ファイルで読み込むように設定。
$ cat apache2/conf/httpd.conf
: (省略)
Include "/usr/local/redmine-2.3.1-0/apps/gitweb/conf/gitweb.conf"
$
レポジトリのルートは /var/git なので、gitweb.cgi に設定。
$ cat git/share/gitweb/gitweb.cgi
: (省略)
# absolute fs-path which will be prepended to the project path
#our $projectroot = "/pub/scm";
#our $projectroot = "/pub/git";
our $projectroot = "/var/git";
: (省略)
$
http://hostname:8080/gitweb/
を URL に指定しても、スクリプトの中身が表示されている。なので、せっかく /cgi-bin/ で試したのに。。。よーく見ると $projectroot の変更が反映されていない!!Safari のキャッシュを空にして試すと表示された。(Safari のキャッシュに癖があるのを忘れていた。)
確認バージョン
- Mac OS X 10.8.4
- Xcode 4.6.3 (関係ないけど最初は Xcode 付属の gitweb で試していたので)
- bitnami-redmine-2.3.1-0
- Redmine 2.3.1
- Apache 2.4.4
- ImageMagick 6.7.5
- MySQL 5.5.28
- Subversion 1.7.5
- Git 1.8.2
- Ruby 1.9.3-p392
- Rails 3.2.13
- RubyGems 1.8.12