CentOS5 on VirtualBox

設定でつまづいたところなど

まずはネットワークの問題。
これは、NAT用のカードとホストオンリーアダプタ用のカードの2枚挿しが一番楽。
ホストオンリーの方に静的IPを割り振っておく。
気をつけるべきは、/sys/resolv.confの自動書き換え。
ホストの方のDNSにしようとしてくるので、
/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth1
の両方(DHCP設定になっている方だけでいいかもしれませんが)に
PEERDNS=no
DNS1=192.168.0.1
を追記。
あと、これはまだ試していないけれどntp.confが勝手にかきかわるのを防ぐには、
DHCPCDARGS="-N"
と追記すればいいらしい。

Mercurialのインストール

  • gccとpythonの開発用コンポーネントを入れる
yum -y install gcc python-devel
  • pythonパッケージ管理ソフトeasy_installを入れる
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
  • Mercurialのインストール
easy_install Mercurial

MercurialのリポジトリのWeb公開法

mercurial-serverや、hg serveを使うなど様々な方法があるけれど、hgwebdir.cgiを使うのが一番楽だと思った。
参考資料

[追記:2010/09/26]
mercurialの最近のバージョンではhgwebdir.cgiはhgweb.cgiに統合されているような気がする。
(ソースに含まれなくなったうえに、hgweb.cgiでもレポジトリの一覧を表示するようになっている)

hgweb.configの設定

[collections]は、設定したpath以下に存在するレポジトリを一覧表示してくれる。

[collections]
repositories/ = /home/vcs/hg/repos/
[paths]
hoge = /home/vcs/hg/repos/hoge
[web]
style = gitweb
push_ssl = true
allow_push = *
[trusted]
users = daemon
groups = daemon

redmineのインストール

この公式マニュアルを参考にして、ruby,rails及びrackのバージョンを対応したものにしないと酷い目にあう。
公式リファレンス大事ですね。
あとこちらのインストール手順も参考に。
1.0.0以上を入れる場合は、微妙に違うところがあるのでこちらも参考に。

redmineでGmailのSMTPサーバを使ってメール送信

1.8系のRubyでは、TLSによるメール送信をサポートしていないので、対応するためのプラグインをいれなければいけない。
詳細はこちら

PHP5.3+のインストール

centos5の標準レポジトリだとPHP5.16とかなので、次のページを参考にしてインストール
その後は、php.iniをまるまる置き換えてから、細かい設定(date.timezoneとか)を変える。
まるまる置き換えるには、

mv /etc/php.ini /etc/php.ini.old
cp /usr/share/doc/php-common-5.3.4/php.iin-production /etc/php.ini

Webからアクセスするために必要なパーミッションについて

httpd.confに次のように書いてある。
守らないと403地獄に落ちる。

# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
#
# The path to the end user account 'public_html' directory must be
# accessible to the webserver userid. This usually means that ~userid
# must have permissions of 711, ~userid/public_html must have permissions
# of 755, and documents contained therein must be world-readable.
# Otherwise, the client will only receive a "403 Forbidden" message.
#
# See also: http://httpd.apache.org/docs/misc/FAQ.html#forbidden
#

htpasswdファイルの置いてあるディレクトリのパーミッション

770以上ないとapacheがアクセス出来ないかも

yumでrpmforgeを利用

CentOS5の標準レポジトリだと様々なパッケージのバージョンが低い。
そういうときは、rpmforgeを利用すると最新バージョンをyumからのインストールが可能となる。
  • yumに優先度設定用のプラグインを導入
次ののページを参考にyum-prioritiesを導入してレポジトリ毎の優先度を設定できるようにする。

  • 標準レポジトリの優先度を1に設定
# vi /etc/yum.repos.d/CentOS-Base.repo
を書き換えて、priority=1にする。

  • rpmforgeの導入
http://packages.sw.be/rpmforge-release/ から最新バージョンを探して、

# rpm -ivh http://対象のrpm

続いて、GPGキーのインストール
#wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
#rpm --import RPM-GPG-KEY.dag.txt

標準レポジトリとの競合をさけるために普段は無効にしておく。

# vi /etc/yum.repos.d/rpmforge.repo
のenable=0にする。

使うときは、
# yum --enablerepo=rpmforge --disablerepo=base install subversion
などなど。
わざわざbaseを無効にしなくても、rpmforgeの優先度上にすれば問題ないかもしれない。

testlink

インストール時に、新規インストールを選択しているにも関わらず、なぜかupgradeで処理されるときの対策。
次のソースを書き換える。
install/installNewDB.phpの99行目付近の、

$install = $_SESSION['isNew'];
$install = true;
とする。

postfix

SMTPサーバが起動せず、/etc/var/maillogに次のように記録されている場合、
fatal: no SASL authentication mechanisms
必要なアプリケーションがたりていないっぽいので、
yum install cyrus*
でインストール。

個々のユーザにメールディレクトリを作成
mkdir -p ./Maildir/{new,cur,tmp}
chmod -R 700 ./Maildir/


queから削除

/usr/sbin/postsuper -d ALL deferred

fail2ban

hostsdenyは設定が簡単だけれどTCP Wrapperに対応していないソフトだとどうしようもないっぽいのでfail2ban一本でいいかも

checkinstall

全部rpm管理したるぞ!というときに便利

capistrano

デプロイツール。デーモンとかいれなくていいので楽だし、便利。

ssh秘密鍵の指定方法

ssh_options[:keys] = %w(/home/username/.ssh/keyname)

sshの-tオプションに相当する設定

deploy.rbに次の行を追加。

default_run_options[:pty] = true
最終更新:2011年05月01日 04:39