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 にアクセスして確認
「リポジトリブラウザ」タブもある。


最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
試したい事があるのでAWS でとりあえずAmazon Linuxのサーバを作る
1年間の無料キャンペーン期間中に検証する とある勉強会でせっかくAWSのアカウン …
-
-
Linux Mint 17 MATE 64bit にRuby最新安定版をインストールする
外出用Linux MintにRubyを入れてなかった事をハンズオン直前に思い出し …
-
-
Windows SourceTreeで ホストキーの変更
Linuxで言うところのknown_hostsを変更する方法です。 もっと簡単に …
-
-
Linux Mint 17 MATE 64bit にJDKを入れなおしてEclipseをインストールする
Linux Mint 17のJDKを入れなおす ソフトウェア・パッケージを最新に …
-
-
Linux MintでLINEを使う
Linux Mint上のwineでLINEが使えないか試してみた事もあるのですが …
-
-
CentOS 6 にnginxをインストールして初期設定する
CentOS6(32bit)にnginxをインストールして自動起動など最低限の設 …
-
-
AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る
Amazon LinuxにGitをインストールする Gitをインストールして自動 …
-
-
Redmine 3.0.0 にLocal Avatar プラグインをインストールしてユーザーがアバターを簡単に変更出来るようにする
Redmineのアバターは標準でGravater採用なのですが、エンドユーザーに …
-
-
VyOSでssm-userからvyosユーザーに切り替える
EC2 VyOSで/etc/resolv.confを設定しました VyOSにSS …
-
-
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 …
