CentOS5.6で自宅サーバ建てた

技術解説というより忘備録。要点まとまってなくてごめんね。

1. 概要

流行に便乗して買ったはいいものの、スペック不足でお蔵入りしそうなミニノートのリソースを自作サーバとして利用することにしました。
小さいのは勿論、省電力で静かなのはサーバとして喜ばしいです。用途はHTTP,FTP,MySQL,DDNS,VPN,Sambaなど。
AcerAOA150-BbにCentOS5.6をクリーンインストールしてして挑戦。
本当はHDD換装してWindowsを残すようにしたかったのだけれども断念したというより残す意味もないだろうと槍投げた感じです。

基本的にウェブで調査しながらの作業になりましたが、手詰まった箇所や工夫が必要な箇所等を忘備録として記述することとします。
CentOSで自宅サーバー構築

2. OSインストール

導入を考えた時期に丁度Fedora15がリリースされましたが
一部のデーモンのKernel相性やRPMリポジトリの不整合等が発生した為、残念ながら導入見送り。
(FedoraはいつかxWindowSystemのGUIで操作したいなぁ)
安定性と情報量のあるCentOS5.6をインストール。ミニノートなので光学ドライブなしである為USBドライブからインストール。
CentOS-5.6-i386-bin-DVD.iso をダウンロード、64ビットな人はx86_64を。
SysLinuxをDL。本記事記述時点でv4.04。DLページはわかりにくいのでこちら
こちらの記事が非常に参考になります。
気をつける点はコマンドプロンプトを管理者権限付与の状態で起動すること。
HardDiskから/dev/sda*を選ぶ場面は環境によりますが可能性として/dev/sdb1が高いと思います。
GRUBの設定は[パーティションレイアウトの再確認と変更]のチェックボックス->次へ->次への遷移にて[高度なブートローダーオプションの設定]が可能です。
インストールパッケージはメモリ使用量とHDD容量の関係上インストールしないことをオススメします。そもそもLinuxサーバはCUIでこそですよね。
サーバ公開前のセキュリティ強化の項目は個人的に全てなくてよいと思います。かなりリソースを消費しますしお好みで。

3. DiCEの設定

DiCEのテキストはEUCで書かれている為、SSHクライアントのエンコーディングををUTF-8から変更するのがセオリーですが、今回は文字コード変換をかませなから作業しましょう。
DiCE起動の際に

# /usr/local/bin/DiCE/diced | nkf -uw

でEUCエンコーディングをUTF-8に変換してファイル内容のSSH送受信が行えます。
お名前.comで取得した方は、OpenSSLライブラリの場所を検出できないせいでシンボリックリンクの設定が必要です。
locateコマンドで libssl.so libcrypto.so の二つを検索し、/usr/lib/ の場所にシンボリックリンクを設定します。
CentOS5.6の場合、

# ln -s -i /lib/libssl.so.0.9.8e /usr/lib/libssl.so.0
# ln -s -i /lib/libcrypto.so.0.9.8e /usr/lib/libcrypto.so.0

となります。

4. YUMでRPM管理するためのリポジトリ更新

phpMyAdmin3.xやWordPress3.2などPHP5.2以上のバージョンを要求するウェブアプリケーションが増えてきました。
CentOS5.6のベースで提供されているPHPのバージョンは5.1.6です。

# php -v

またMySQL等も古いバージョンが提供されています。

# mysql --version

これらのバージョンを上げるために

# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
# vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
priority=0
# yum --enablerepo=rpmforge --enablerepo=utterramblings update php

でリポジトリを明示的に指定することにより新しいバージョンへと更新されます。
enabled=0なのはリポジトリを指定した場合にのみ上記のリポジトリが適応されるようにするため。
新規でインストールする場合はupdateをinstallに。
解説サイトによっては一度アンインストールしたほうが、との意見もみかけましたが特に問題もなかった為アップデートで良いと思います。
PHPの場合php.iniが初期化されるので再設定する必要があります。
新しもの好きで最初に5.3を導入しましたがその後に必要となるPHP:GDモジュールのインストールが不整合でうまくいかなかった為、特に問題がなければ5.2で良いと思います。

5. AjaXplorer3.2.4の設定

高機能なブラウザウェブアプリケーションであるAjaXplorerを導入します。
解説記事が少ないのでこの際まとめちゃいます。
HTTP(.htaccessを有効)とPHPが正常に稼動していることが条件です。
ダウンロード

# wget http://sourceforge.net/projects/ajaxplorer/files/ajaxplorer/3.2.4/ajaxplorer-core-3.2.4.zip

解凍

# unzip AjaXplorer-3.2.4.zip

wwwフォルダへコピー

# cp -pr AjaXplorer-3.2.4 /var/www/ajaxplorer

圧縮ファイルリムーブ

# rm AjaXplorer-3.2.4.zip

所有者の変更

# chown -R apache:apache /var/www/ajaxplorer

所有者の確認

# cd /var/www/
# ls -l

設定ファイルの編集(INSTALL-SelectMeAndClickEdit.txtに則って)
define(“ADMIN_PASSWORD”, “admin”); と $default_language=”en”; 最初はこの二箇所変更

# vi /var/www/ajaxplorer/server/conf/conf.php

エイリアス設定ファイルを新規作成

# vi /etc/httpd/conf.d/ajaxplorer.conf
Alias /ajaxplorer /var/www/ajaxplorer

アップロード可能なファイルサイズは

# vi /etc/php.ini

upload_max_filesizeとpost_max_sizeの値が適用されます。

設定を変更した後はhttpdを再起動(reloadよりrestartが好ましい)

# /etc/init.d/httpd restart
Tips
サムネイルが表示されない
-> (管理画面のGD EnabledがNoなら)PHP:GDモジュールのインストール
-> php.iniのmemory_limitの値を上げる
マルチバイト文字のダウンロード時の文字化け
-> エンコーディング周りの処理を加えたりしましたが解決せず、ファイル名の頭に半角文字を挿入することで回避。

P8P67 と SSD_C300 環境におけるトラブル対策

前提条件としてP8P67のM/BでIntelチップセットのSATA3.0接続(6Gbps)である。
OSはWindows7ProX64。

1. OSインストール後、挙動に引っかかりを感じる。
ブラウジングやファイル操作で小さなデータをSSDへWriteする際に引っかかりのような違和感を覚える。
体感的にプチフリに似たで動作あるため、SSDの速さを活かせず操作に苛立ちを感じる。
対策…
ディスクアクセス時に発生する症状からストレージドライブの不調を疑う。
Windows7標準AHCIドライバからIntelRapidStorageTechnology(以下IRST)ドライバに変更したところ改善。
(変更というかIRSTをインストールしたが正しいが)
バージョンはM/B付属のドライバCDにより10.1.0.1008。
引っかかりなしの快適な操作ができるように。

2. 発生条件が確定しないが一部のアプリケーションがハングアップし数分間操作不能になる。
しばらく操作していると脈絡なく発生し、数分間後(1-3分)に復帰する。
explorer.exeが停止することもあるためクリティカルな現象。
発生条件はまったく不明であるが共通条件としてシステムのイベントログに以下のエラーが表示されている。
イベントID9 – 「デバイス \Device\Ide\iaStor0 はタイムアウト期間内に応答しませんでした。」
要するにシステムのiaStorソースが原因らしい。
[管理]-[システムツール]-[イベントビューアー]-[Windowsログ]-[システム]
対策…
BIOSの設定を接続SATAポートのホットプラグ(ホットスワップ)を有効化する。
自分の環境だとこの方法で治ったけれどフォーラムを見た感じLPMを無効に修正することで治ることがあるだとか。
http://forum.crucial.com/t5/Solid-State-Drives-SSD/Solution-C300-Disk-Freeze-ups-in-Windows-7-solved-for-me/td-p/38766


LiveClick日本語化

LiveClick(fx)は、Firefoxが標準で搭載しているRSS購読機能であるライブブックマークの機能を拡張してくれるアドオンです。
過去のバージョンで日本語ファイルが含まれていたようなのですが、
Firefox3.6以降に対応できる新しいバージョンでは日本語が削除されています。
開発ブログを覗いても特に言及されていませんが、翻訳者がプロジェクトから抜けたのでしょうか。

簡単な英語なので需要はあまりないかもしれませんが、自然な日本語でローカライズした言語ファイルを配布します。
LiveClickJP
v0.3.7.0 と v0.3.8.0 で動作確認しました。

New! v0.4.x系 LiveClick4JP

以下、導入方法です。
Firefoxを終了させた状態で行ってください。

1.プロファイルフォルダへ移動

ファイル名を指定して実行で「%APPDATA%\Mozilla\Firefox\Profiles\」へ移動。
直接移動するなら。
XPの場合、C:\Documents and Settings\[ユーザー名]\Application Data\Mozilla\Firefox\Profiles\
Vistaや7の場合、C:\Windows\Application Data\Mozilla\Firefox\Profiles\
デフォルトで隠しフォルダなのでフォルダオプションで可視化する必要がありますがここでは詳しく書きません。

2.LiveClickアドオンが格納されている場所へ移動

\[8文字の英数字].default\extensions\{d166ee2a-36bb-4f33-aff7-e85f912df509}\
8文字の英数字はランダムです。複数ある場合は導入したいFirefoxが使用するプロファイルを調べる必要があります。

3.chrome.manifestの編集

chrome.manifestをテキストエディタで開きます。メモ帳で構いません。
一番下の行に以下の一文を追加します。

locale liveclick ja-JP jar:chrome/liveclick.jar!/locale/ja-JP/

4.liveclick.jarの解凍

chromeフォルダに移動し、liveclick.jarを解凍します。
WinRAR等の解凍ソフトがあればそのソフトで開けば解凍もしくはファイル構造にアクセスできます。
他の方法であれば、拡張子をjarからzipに変更することで解凍できます。
前者がオススメです。
(もっとも本来の >jar xvf *.jar コマンドで解凍してもいいですが…)

5.ja-JPフォルダの追加

解凍すると三つのフォルダができます。
localeフォルダの中にダウンロードした「ja-JP」フォルダをコピーします。

6.再圧縮

元のjarに圧縮します。
WinRARの場合は解凍しないでエクスプローラのようにそのままD&Dでいけます。
拡張子をZIPにして解凍した場合は反対の動作を行います。(ZIP圧縮→拡張子をjar)

以上で完了です。


VMwareでUSBにUbuntuをインストールする

だってLinux環境が欲しいじゃない。

■用意するもの。

■手順

  1. VMwareのインストール
  2. UbuntuをCDイメージからブート
  3. インストール先対象ドライブをUSBドライブへ

これだけだけれど、ちょいとつまずく箇所があったんで軽くメモ。

- VMwareのインストール
ユーザ登録し、VMware-player-3.1.3-324285.exeをダウンロードしインストール。要再起動。

- UbuntuをCDイメージからブートしUSBへインストール

VMwareを起動し、新規仮想マシンの作成。新しい仮想マシン設定ウィザードが立ち上がる。
後でOSをインストールを選択し、次へ。
(ここでインストーラディスクイメージファイルを指定すると簡易インストールが実行されてしまう)

ゲストOSの選択は、Linux。バージョンはUbuntuで。

仮想マシン名、及び格納場所は任意で。

仮想ディスクを単一ファイルをして格納を選択。ディスク最大サイズは推奨値の20GBを選択。

仮想マシンの設定確認画面で「ハードウェアをカスタマイズ」をクリック。

新規CD/DVDを選択し、接続をISOイメージファイルを選択するにチェック。
その後、準備段階でダウンロードしたubuntu-ja-10.10-desktop-i386.isoを選択。

USBコントローラを選択し、全てのチェックボックスにチェックを付ける。

OKを押し。完了します。
これでISOイメージをマウントした状態の仮想マシンが作成されています。
起動すると自動的にISOファイルからブートされ、以下の画面が起動します。

VMwareウィンドウの下にいくつかアイコンが出ていると思います。
Windows上で認識されているデバイスのリストなので
USBメモリとして識別されているリムーバブルディスクを選択。
以下の画面を確認しOKを押す。

VM上でUSBメモリが認識されました。(右下のアイコンが活性化しています。)

仮想マシン上の「Ubuntuをインストール」を選択します。
「インストール中にアップデートをダウンロードする」「このサードパーティー・ソフトウェアをインストールする」の項目は任意です。選択すると時間がかかります。進むをクリック。

ディスク領域の割り当てでは特にパーティションを区切る理由がなければ「ディスク全体を削除してから使用する」を選択し、進む。

インストール先ドライブの選択画面でVMwareが割り当てた仮想のHDD領域ではなくUSBデバイスを選択します。

そしてインストールをクリックするとUSBメモリへのインストールが始まります。
その最中にUbuntuの基本的な設定(地名選択、キーボードレイアウト、ユーザ登録)があるので任意で設定します。

以上です。
あとはUbuntuをUSBブートさせたいマシンに今回作成したUSBメモリからブートさせれば、
見事にHDDを汚さずしてどこでもあなただけのUbuntu環境が操作できます。
お疲れ様でした。


サーバ移行完了

ドメインそのままでサーバを移行しました。

従来まではCoreServerのプランCore-MINIサーバをレンタル、

現在はプランCore-Aで運用しております。

理由は借りていたサーバのSQLクエリのレスポンスが異常に遅いこと。

WordPressをメインコンテンツに色々やっているとどうにも気になる点なので、上位のプランへ変更しました。

さくらのレンタルサーバに移行しようとも考えたのだけど、

.comドメインの移管に期間がかかりすぎるので断念。新規にドメイン取得するのも勿体無いし。

DBバックアップやWP側からのImport/Exportも考えたけど、そんなにデータ量ないし新規で。

サーバ移行自体は同一サービスなので比較的スムーズでした。

VALUE-DOMAINのDNS設定で新しいレンタルサーバへ接続を向け、

レンタルサーバ上の管理画面でドメインへの紐付けを行うだけで設定が完了します。

反映に時間がかかるけれど。

そんな感じ。