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













