さて、やり直してる間に、Redmine導入メモ!
といっても、今回はちょっと実践的に色々やるシステムの構築なので、余り当てにならないかもです。
今回の目標システム!!!!
- OS: CentOS 5.5 X86_64
- 導入する主なデーモン
- ApacheWebServer
- MySQLDatabase
- Postfix
- Dovecot
- 構成するサービス
- Redmine (Apache + Passengerで動作)
- Subversion
- Git
- npca’s Web Site (PHP)
- メールサービス
特にたいしたシステムじゃないけど苦労してる・・・・・エンジニア失格orz
ただ、今回、一番大きな課題は
Hyper-V上で稼働させること
これが何を意味するかは
【連載】仮想化の教室 [第3回] 仮想マシンの限界 ~Linuxゲストの時計が狂う!?~ : Windows Server – Computerworld.jp
をご覧いただけば分かると思うが、
普通に入れただけではものすごい時間がずれる!
しかも、パーセンテージにして10%ほどもずれることもある。
正直、実用レベルではない
後からログの確認すらままならない状態になる。
では、CentOSをインストールしよう!
と、ちょっと仮想マシンを作るときに注意点
ネットワークアダプタは「レガシーネットワークアダプター」の方を使いましょう
Hyper-V統合ツールがない環境だと認識されません。
その後は普通にHyper-VでCentOSのディスクが・・・・
二枚です
はい、なぜか5.5の64bitはDVD二枚なのですw
というわけで 1of2 の方を先に入れてそこからブート、デフォルト設定で突っ走ります。
あ、念のためUTCはオフにしましょう!
で、途中でディスクを入れろと言われたら、入れ替えます
ちょっと、ブログに書く&説明省略のため、今回はインストール時にはSELinuxとファイアウォールを無効にします。
運用するときはかならず両方オンにしましょう!
とまあ、時刻に関してはNTPを以下のような設定にしてみます。
※すいません!画像の下の方のntpサーバーは消します!!!!
そして、その後はユーザー登録をして、再起動
さて、ログインしたら、まずはSSHの立ち上げを行います
デスクトップを右クリック→端末を開く
でシェルを開きます。
su –
vim /etc/ssh/sshd_config
とやってsshの設定を開きます
ここでは最低限の設定項目しか書かないため、皆さん、自分で細かい設定は行ってください。
一番設定しないといけないのはrootでのログインを禁止すること
というわけで
#PermitRootLogin yes
↓
PermitRootLogin no
とします。
では、上書きして、sshを再起動
/etc/init.d/sshd restart
OKと出れば問題なし
はて、ここからは基本的にリモート・・・・・と行きたいですが、その前にネットワークの設定を行いましょう。
設定項目としては
- IPアドレス
- ネットワークマスク
- デフォルトゲートウェイ
- DNSサーバー
というのが一般的ですが、今回はちょっと背伸びして、Hyper-V統合ツールforLinuxの Linux IC 2.1を導入する
というわけで、
ダウンロードの詳細 : Linux Integration Components
から、ダウンロードする。これはホストOS側で行う。
とりあえず、実行していくと、ISOディスクイメージが出てくるので、それをCentOSのVMにマウント
ついでに、私はHyper-V Serverを使っているため、こちらで共有フォルダを作り、Hyper-V Serverのコマンドプロンプトで
net use z: \\共有パス
で、z:にマウント。そこからコピーした
普通にやれば /media/CDROM にマウントされるため、 /root なりにフォルダを作りコピー
mkdir /root/LinuxIC
cp -rf /media/CDROM/* /root/LinuxIC
では、中身を見て見る
ls /root/LinuxIC
ぱっと目に付くのは Makefile これでインストール方法はmakeだと分かる。では
cd /root/LinuxIC
make
エラー・・・orz
さて、慣れている皆さんはおわかりだろう
コンパイラ入れてません☆
yum groupinstall “Development Tools”
はい、一発
割とダウンロード量は多いので少し待ちます
回線にもよりますが、最近のブロードバンドならたいした問題にはならないでしょう(といっても10分ぐらいは見といた方が良いかも)
途中でGPGキーの取り込みをするかどうかを聞かれるのでyを入力
これで思うのが、
yumって意外と強い
まあ、他のでも出来るとか言われるとそれで終わりなんですがw
っていって、気まぐれな僕はここでアップデートをかけちゃいます
yum check-update
yum update
そして、驚愕の数字が・・・・(2010/08/20 3:34時点で)
ダウンロードサイズ 348MB
ああ・・・・やめとけばよかった・・・と思いながらyを押してしまう・・・さあ、待とうか・・・
そして、
どう見てもOpenOffice.org、使わないくせにでかい!!!!!!!!
まず、最初の構成が間違いだったなと後悔
これも相当な時間がかかります
で、終わったら念のため再起動
shutdown -r now
と、再起動を待つ・・・・
そして、ログイン
とりあえず、シェルを立ち上げ、
su –
cd /root/LinuxIC
make
make install
インストール完了!
また再起動w
shutdown -r now
とりあえず、正常に起動することを確認します
そしたらまたシャットダウン!
・・・・怒らないでください・・・大事なことをホスト側で行います
su –
shutdown -h now
そしたら、仮想マシンの設定を開きます
この「レガシーネットワークアダプター」を消して、普通の「ネットワークアダプター」にします
ついでに、ディスクもアンマウントしちゃって、ブートをIDEからブートに変えましょう
こんな感じになりました。
では起動
ログインして、シェルで
su-
ifconfig
ん?なんかいつもと違う・・・・
そう、普段、ネットワークインターフェースの名前は「eth0」とかのはずが「seth0」となっている。これがLinuxICのインストール成功の証ともいえる
なお、LinuxICのインストールに成功すると、Hyper-Vマネージャーからシャットダウンが出来るようになります。ほかにも色々ありますが
では、ネットワークの設定と行きましょう。
ついでに、ちょっとしたトラウマで、ネットワークの設定だけは、設定ファイルじゃなくて、GUIツールでやってますwww
スペルミスで大変なことになったことが・・・・
とりあえず、IPを固定して、DNSの設定etcは各自
念のためネットワークの再起動
/etc/init.d/network restart
成功したら、
ifconfig
で確認
そこで、すこし右上の時計を見てみましょう。違和感を感じませんか?さて、わからない人は、右クリック→設定で秒も表示させるとはっきりします
人間でも分かるぐらい時計が速い!
環境によっては遅いかもしれませんが
とりあえず、これは何とかしたい。
というわけで、ちょっとググるとカーネルパラメータをいじると良いらしいという事が分かります。
まあ、まずはSSHに切り替えましょう
というわけで、
su –
vim /boot/grub/grub.conf
とやって、ブートローダーの設定を開きます。
notsc divider=10
を追加すればいけます。
なお、これはX86_64の場合なので、X86_32の人は
clocksource=acpi_pm divider=10
を追加。かなり改善されていると思います。
では、
Apacheの構成
というわけで、またrootになってくださいw
su –
まずは
yum install httpd httpd-devel
およ?httpdはインストールされているみたい。まあ、develは入れないといけないようなのでyで続行
次に、PHP関連のパッケージを入れるのですが、最低でもmbstringぐらいは入れましょう
まあ、まとめて入れちゃう方法もありますが・・・
まずは、mbstringだけ追加したい人は
yum install php php-devel php-mbstring
php関連全部いれるぜーっていう勇者は
yum install php*
をw
では、Apacheの設定をいじるので
cd /etc/httpd/
ではでは、ここからは怒濤のサーバーコンフィグ!!!
用意は良いですか???
vim conf/httpd.conf
ついでに、 http://vine.1-max.net/ とか参考にしてみると良いかも
VineLinuxなんで微妙に違う点とかありますが、ここではそれをベースに設定していきます。
ServerTokens Prod ← エラーページでOS名を非表示にする
ServerAdmin webmaster@xxxxx.com ← 管理者のメールアドレス
まずは、ServerTokensを
OS→Prod
にして、OS名がエラーページに表示されなくします。もちろんセキュリティ対策です。
次に
Options Indexes FollowSymLinks
という行が見つかるはずなので、どう見ても危険なIndexesは消して
Includes ExecCGI
を追加
そして、が―とスクロールすると、DirectoryIndexが見つかると思うので、そちらをお好みに
まあ、phpをメインで使うとするならばindex.phpとかを追加しても良いかなって感じですね。
また、WebDAVの脆弱性を狙った攻撃への対策として
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
を
LogFormat “%h %l %u %t \”%!414r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
に変えます
Apacheはメジャーなので、各自お好みの設定やら何やらをお持ちだと思います。まあ、各自という事になります。(特にKeepAliveとかの設定はかなり各自運用形態により差が出ると思います。)
では、保存してApacheを起動しましょう
/etc/init.d/httpd start
もし、すでに起動してたらrestartしましょう
成功したら、自動起動の設定
chkconfig httpd on
chkconfig –list httpd
ランレベルごとの動作設定が出るので2~5の時がonであれば問題
LinuxIC上手く行ったみたいですね。
良かった良かった。
老婆心ながら、
NTPをお使いでしたら、念のためホストOSとの時刻同期は、外しておいた方がいいですよぉ。
半分くらいしか理解できていませんが、
いろんなことされているんですね。
参考にさせて頂きます。
IRCチャットをやっていますので、
ご興味があればどうぞ。
http://heppoko.blogdns.net/?p=3475
助言ありがとうございます。ホストOSとの時刻同期、外してみました。
いろんな事に手を出してるので、だいぶ前に手をつけた物は忘れてたりします(汗
執筆者です
CentOS 6向けに、Linux IC 3.1がリリースされているので、Cent OS 6で構成する方は
http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=c1256a7f-8a2d-4b18-851c-63b22ca976d3&displaylang=ja-nec
からダウンロードできます。
このバージョンからはRPMパッケージとなり、これまで、カーネルのバージョンを上げるたびにリビルドしなければならなかったのが、不要になりました。