ヤマムギ

growing hard days.

*

CentOS 6.5にgit連携のTracを構築する

      2015/04/29


Trac_Logo_512x512

秋の夜長に自宅でTracサーバを構築してみる。
ひとまずRedmineはいったん諦めました。筐体が変わればまたトライしてみます。
gitサーバだけあれば良かったのですが、折角なので色々プラグインを試すか作るかして、よさ気なのは仕事でも反映してやる目論見で。

環境

CentOS 6.5 32bit
Trac 1.0
git 1.7.1

パッケージのインストール

最低限という意味ではいらないものもありますが、あると便利なのでとりあえず。
あと、自宅サーバなので面倒くさいのでrootでログインして全部やっちゃってます。

[bash]
yum -y install httpd
yum -y install python
yum -y install mod_wsgi
yum -y install vim
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum -y install perl-ExtUtils-MakeMaker
yum -y install wget
yum -y install httpd-devel
yum -y install python-devel
yum -y install python-setuptools
[/bash]

ホストの設定

FQDN付きホスト名にする

[bash]
vim /etc/sysconfig/network
[/bash]

127.0.0.1の行にFQDN付きホスト名を追加

[bash]
vim /etc/hosts
[/bash]

httpd.confのServerName設定を追加

[bash]
vim /etc/httpd/conf/httpd.conf
[/bash]
[plain]
ServerName <FQDNホスト名>:80
[/plain]

テストする
[bash]
service httpd configtest
Syntax OK
[/bash]

SELinux無効設定

[bash]

vim /etc/sysconfig/selinux

[/bash]

[plain]
SELINUX=disabled
[/plain]

Trac 1.0のインストール

[bash]
eazy_install Babel
easy_install http://www.i-act.co.jp/project/products/downloads/Trac-1.0.ja1.zip
[/bash]

tracをmod_wsgiで動かす

trac.wsgiを作る。

[bash]
vim /var/trac/trac.wsgi
[/bash]

[plain]
import os
os.environ[‘TRAC_ENV_PARENT_DIR’] = ‘/var/trac’
os.environ[‘PYTHON_EGG_CACHE’] = ‘/var/trac/eggs’
import trac.web.main
application = trac.web.main.dispatch_request
[/plain]

実行権限の追加

[bash]
chmod 755 /var/trac/trac.wsgi
chown -R apache:apache /var/trac/
[/bash]

trac.confの編集

[bash]
vim /etc/httpd/conf.d/trac.conf
[/bash]

[plain]
WSGIScriptAlias /trac /var/trac/trac.wsgi
<Directory /var/trac>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
<LocationMatch "/trac/.*/login">
AuthType Basic
AuthName "trac"
AuthUserFile "/var/trac/trac.htpasswd"
Require valid-user
</LocationMatch>
[/plain]

gitのインストール

[bash]
wget http://git-core.googlecode.com/files/git-1.7.12.4.tar.gz
tar xvfz git-1.7.12.4.tar.gz
cd git-1.7.12.4
./configure
make
make install
mkdir /var/git/
yum -y install git-daemon git-all
[/bash]

xinet.d/gitの変更

[bash]
vim /etc/xinetd.d/git
[/bash]

[plain]
disable=no
server_args=–base-path=/var/lib/gitを/var/gitへ変更
[/plain]

プロジェクトの作成

例としてプロジェクト名を「pj(基本プロジェクト)」としています。

[bash]
trac-admin /var/trac/pj initenv
新規 Trac Envirionment /var/trac/pj の生成

はじめに、プロジェクトのデータベースの初期化と準備をするために、
環境についていくつか質問をします。

プロジェクトの名前を入力してください。
この名前は、ページのタイトルと説明に使用します。

プロジェクト名 [My Project]> 基本プロジェクト

使用するデータベースへの接続文字列を指定してください。
デフォルトではローカルに SQLite データベースを作成します。
既に存在する PostgreSQL データベースを使うこともできます。
(Trac では、接続文字列は厳密に表記する必要があります。
詳細は Trac のドキュメントを参照してください。)

データベース接続文字列 [sqlite:db/trac.db]>

プロジェクトの生成と初期化

デフォルトの Wiki ページのインストール

Trac Environment ‘基本プロジェクト’ ができました。

今後、この環境の設定をする場合は、次のファイルを利用します。

/var/trac/pj/conf/trac.ini

新しいプロジェクトを試しに実行してみたい場合は、スタンドアロンウェブ
サーバ tracd を試してみてください。

tracd –port 8000 /var/trac/pj

それから、ブラウザで http://localhost:8000/pj
にアクセスします。インストールしたバージョンに合わせた今後のセット
アップ情報などが含まれたドキュメントが閲覧できます。(例えばウェブサー
バで公開する手順など。)

最新のドキュメントは、プロジェクトのウェブサイトから入手できます。

http://trac.edgewall.org/

Congratulations!

[/bash]

プロジェクトで使うgitの作成

[bash]
git init –bare /var/git/pj.git
git –git-dir=/var/git/pj.git update-server-info
chown apache.apache -R /var/git/pj.git
[/bash]

trac.iniにgitの設定

[bash]
vim /var/trac/pj/conf/trac.ini
[/bash]

追加、変更行のみ記載

[plain]
tracopt.versioncontrol.git.* = enabled
[git]
git_bin = /usr/local/bin/git
[repositories]
project.dir = /var/git/pj.git
project.description = 基本プロジェクトのリポジトリ
[trac]
repository_type = git
[/plain]

サービス自動起動

apacheとgit(xinetd)の自動起動化

[bash]
chkconfig httpd on
chkconfig xinetd on
[/bash]

プロジェクトユーザの作成

例では管理者ユーザ「admin」を作成しています。
[bash]
trac-admin /var/trac/pj permission add admin TRAC_ADMIN
htpasswd -c /var/trac/trac.htpasswd admin
[/bash]

おまけ : ActiveDirectory連携

ActiveDirectoryでユーザ認証を行いたい場合は、trac.confのLocationMatchに設定する。
他のLDAPサーバでも応用は効くと思います。

[bash]
vim /etc/httpd/conf.d/trac.conf
[/bash]

[plain]
<LocationMatch "/trac/./login">
AuthType Basic
AuthBasicProvider ldap
AuthName "ActiveDirectory ID"
AuthLDAPBindDN "CN=<管理者アカウント>,CN=<管理者CN>,DC=<該当DC>,DC=<該当DC>"
AuthLDAPUrl "ldap://<ADのIPアドレス>:3268/DC=<該当DC>,DC=<該当DC>?sAMAccountName?sub?(objectClass=
)"
AuthLDAPBindPassword "<管理者パスワード>"
Require ldap-attribute objectClass=person
Order Allow,Deny
Allow from All
</LocationMatch>
[/plain]

確認

OSごと再起動して、http://[IPアドレス]/trac/pj にアクセスして確認
「リポジトリブラウザ」タブもある。
trac-install-login
Trac_Logo_512x512


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

 - CentOS, git, Linux, ProjectManagement, trac , , ,

ad

ad

  関連記事

AWS EC2 Amazon Linux にEC-CUBE3をnginx+MySql環境へインストール(手順検証中)

EC2インスタンスを作成する 少し古い記事で恐縮ですが試したい事があるのでAWS …

Tracの外観をプラグインで変更する-TracpathThemeプラグイン

プラグインをインストールするだけで外観を変更する こんな感じのUIで5色(Red …

Redmine 3.0.0に CRMプラグインをインストールする

Redmine CRMプラグインのFreeのLightバージョンを使ってみる事に …

AWS EC2 インスタンスステータスのチェックで失敗 原因はPHP-FPMのOOM-KILLER

先週に引き続きEC2のインスタンスステータスチェックで失敗 再起動するも失敗する …

Linux Mint 17 MATE 64bit にRuby最新安定版をインストールする

外出用Linux MintにRubyを入れてなかった事をハンズオン直前に思い出し …

SourceTreeからgitサーバへSSHを使ってプッシュする

SSH URI gitのパスは/var/git/pj.gitとします。 [pla …

RocketChatのデフォルトポート3000を80に変更

Rocket.ChatをAmazon EC2 Ubuntuサーバーで起動で起動し …

RocketChatでReadOnly(読み取り専用)ユーザーにする

何かを伝えるためにチャットを使いたい。 オンラインでいろいろやっているとそんなシ …

AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る

Amazon LinuxにGitをインストールする Gitをインストールして自動 …

Virtual BoxにVyOSをインストール

ローカルにVPN環境が欲しいのでMacのVirtualBoxにVyOSサーバを構 …