CentOS 6.5にgit連携のTracを構築する
2015/04/29
秋の夜長に自宅で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 にアクセスして確認
「リポジトリブラウザ」タブもある。
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Linux Mint 17 MATE 64bitにNode.jsをインストールする
Linux MintにNode.jsをインストールする [bash] $ sud …
-
-
SourceTreeからgitサーバへSSHを使ってプッシュする
SSH URI gitのパスは/var/git/pj.gitとします。 [pla …
-
-
Amazon LinuxにAlfresco Community Editionをインストールする
ダウンロード準備 Alfresco公式サイトで、「エンタープライズコンテンツ管理 …
-
-
「POODLE」SSL3.0の脆弱性対応
各社が騒ぎ立てている「POODLE」 Padding Oracle On Dow …
-
-
Ubuntu dockerイメージをbuildするときにタイムゾーン選択で止まる
123456789Please select the geographic area in which you live. Subsequent configurationquestions will narrow this down by presenting a list of cities, representingthe time zones in which they are located.1. Africa 4. Australia 7. Atlantic 10. Pacific 13. Etc2. America 5. Arctic 8. Europe 11. SystemV3. Antarctica 6. Asia 9. Indian 12. USGeographic area:docker …
-
-
Yamaha RTX 1500 コンソールの言語コードの設定
12?G???[: ???̃R?}???h?͊Ǘ????x???ł̂ݎg?p?ł??܂?コンソールメッ …
-
-
CentOS 6.5にTeX Liveをインストールする
CentOS 6.5にTeX Liveをインストールする TeX Wikiを参考 …
-
-
Backlogの実績工数をAmazon QuickSightでの可視化 – 仕組み編
Backlogの実績工数をAmazon QuickSightで可視化してわかった …
-
-
VirtualBoxでCentOS7+Oracle12c環境を構築するの1(事前準備)
DMS(AWS Database Migration Service)を試すため …
-
-
GitLabのバックアップをS3に格納する
GitLabのバックアップがS3に対応していて、非常に簡単設定でした。 しかもE …