Fedora Core4 Server Constraction

back

Contents

  1. FC4のインストール
    1. 文字コードの設定
    2. yum update
    3. 各種設定
    4. サーバ概要
    5. テストサーバ準備
  2. Eclipse WTPによるデータベース+webアプリケーション
  3. Apacheの準備
    1. Apacheのセキュリティ
    2. Apache/Tomcatの連携
    3. 日常の管理

FC4のインストール

インストールは、あまりに古いマシンや、あまりに新しいマシン、また極めて斬新な変なマシンでない限り、簡単に出来るようになっている。 ハードウェアの認識も、最近のインストーラでは、かなり対応の幅が広がり、特に何もしなくてもインストールできる。 ちょっと昔は、ここが一番大変で時間のかかることであったが、普通の機体ならば、すんなりインストールできるはずである。

まずは、インストールの準備段階として、計算機の構成を調べることからはじめよう。 自作やBTO、またはlinuxプリインストールモデルでない限り、普通ハードディスクの全パーティションはwindows(ntfs,fat...)でフォーマットされている。 (最近の)linuxの多くのディストリビューションではext3タイプのフォーマットが多い。 したがって、その領域を確保しなければならない。 そのためには、市販のパーティショニングツールを使うか、もしくはワンCD Linuxで変更することになる。 例として、以下のワンCD Linuxをあげる。

KNOPPIX

このlinuxをダウンロードし、CDに焼き、起動し、メニューの中の'QtParted'というツールを起動する。 このツールを使えば、パーティションのサイズを変更することができるので、便利である。 フルインストールでは約7Gディスクを消費するが、必要なものだけにすれば小さく抑えられるし、インターネットに公開する場合は不必要なパッケージをインストールするのはやめるべきである。

++Mini Tips++

QtPartedを使う前に、Windowsをデフラグしておくとスムーズである。 仮に(ちぢめようとしている)Windowsパーティションの後部にファイルが存在する場合、パーティションサイズの変更は行うことが出来ないからである。

注意:windowsの領域の必要なデータを消さないようにしよう。言うまでもなく自己責任。 また、KNOPPIXをCDに焼くとき、「普通に」焼くとただのisoイメージが入ったCDとなり、コースターが一枚余計にできてしまう。 isoイメージの焼ける市販のソフトまたはフリーソフトを探してこなければならない。

Fedora Core4のインストーラCDまたはDVDのisoイメージは下記から自分にあったミラーサーバを探し、ダウンロードし、CDまたはDVDに焼く。

Fedora JP Project

インストールするときは、たいていの場合一番問題になるのが、パーティション設定である。 後のことを考えると、/homeを別に作ったりなどすると便利である。 分からなければ、自動設定にしても問題はまあない。 さらに、インストールをしても立ち上がらない、ネットワークがつながらない、動作が遅い、などなど難関は次から次へ待ち構えている。 個人的には、「linuxが使える人=難関に立ち向かう気力のある人」ではないかと考えている。 難関を切り抜けたとき、(windowsでは味わえないであろう)解決の喜びと、(windowsでは得られないであろう)多くの知識が備わるはずである。 難関を楽しむくらいのつもりで取り組むとよい。 1ヶ月そこそこくらいで負けてはだめである。

*文字コードの設定

FC4では、インストールされた直後、文字コードがUTFになっている。 互換性などの面から、これをeucJPに変更する。 ルートになって、/etc/sysconfig/i18nを

(変更前)
LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"
SUPPORTED="ja_JP.UTF-8:ja_JP:ja"

(変更後)
LANG="ja_JP.eucJP"
SYSFONT="latarcyrheb-sun16"
SUPPORTED="ja_JP.eucJP:ja_JP:ja"

*yum update

updateのための便利なツールとして、yumがある。 特にインターネットに公開するサーバとして、セキュリティホールなどのアップデートはまめにしておかなければならない。 アップデートの仕方は、ルートになって、以下のとおり。

yum -y update

主なyumコマンド一覧。

yum -y updateアップデート。-yオプションにより、すべての質問にyesで答える。
yum list updatesアップデートのリストがあれば、リスト表示する。
yum install パッケージパッケージのインストール
yum remove パッケージパッケージのアンインストール。依存関係もチェックする。
yum clean all今までに使った古いものを掃除。結構ディスクが空きます。

サーバ概要

ここでは、今から構築するサーバの概要について述べる。 搭載する機能は、webサーバ、メールサーバ、ファイルサーバの3つである。

webサーバは、httpd、PostgreSQLを用いて、webコンテンツの作成・公開およびJavaを用いてデータベースwebアプリケーションを作成する。 データベースには、次のようなソフトウェアがある。

MySQL -- PostgreSQL

今回はPostgreSQLを採用する。 また、JavaサーブレットコンテナとしてTomcatを用いる。

Apache -- Tomcat -- Ja-Jakarta

テストサーバの準備

今回は、開発用マシン兼テストサーバとして、WindowsXPマシンを使用する。 使用するソフトウェアは、EclipseおよびTomcatプラグインを用いる。

インストール

Eclipseのインストールは、非常に簡単である。基本的には、バイナリをダウンロードし、解凍すればそれだけで動く。 詳しい情報はたくさんwebに存在する。

Tomcatプラグインのインストールは、Windows用のexeをダウンロードし、それを実行することでインストールできる。 対話形式であるので苦労はしないだろう。 ただ、JDKの場所を聞かれる。 すなわち、Java自体を先にインストールしておく必要がある。 あとは、Tomcatが起動しているときに、 http://localhost:8080/ にアクセスし、Tomcatの画面が表示されたら成功である。

また、Lombozプラグインの導入も必要である。 このあたりは少し煩雑である。 しかし情報はwebに存在する。

テスト実行

環境が整ったら、JSPやサーブレットを書き、「デプロイメント」することでブラウザからアクセスできる。

テストサーバの準備2

従来のEclipseは、web開発が出来る状態にするには、プラグインを結構たくさん組み込まなければならなかった。 また、Eclipseのメニューからプラグインを導入する際、おそらくダウンロードの問題であろうが、非常に時間がかかる。 ちなみに「テストサーバの準備」の項のプラグインを入れるのに3時間かかった。 しかし現在、web開発用のプラグインがあらかじめ入っており、ダウンロードするだけで使えるEclipse WTP(Web Tools Project)なるものがある。 こちらはすぐ開発に入ることが出来るのでおすすめである。 具体的な準備方法は、wtp-all-in-oneをダウンロードし、展開した後、Language Packを入れるだけである。

Eclipse WTP公式サイト

このインストールが終わったら、後はTomcatおよびPostgreSQLをインストールする。 TomcatをEclipseから使用する際、Eclipseの設定で、Javaの項目の「インストールされているJRE」の部分を、JDKのフォルダに書き直さなければうまくいかないようである。 PostgreSQLのインストールでは、サービスおよび管理者のアカウントを作らなければならないのだが、先にpostgresというユーザをWindowsで作っておくとよい。 なぜならば、こうしておかないと、Windowsの中にはユーザとして存在するのだが(もちろんログインもできる)、コントロールパネルに表示されないという状況になり、ユーザの削除が出来ないのである。

Eclipse WTPによるデータベース+webアプリケーション

さて、インストールの次は実際にソースコードを書いて、実行してみる。 webアプリケーションをEclipseで構築する際は次のような流れで行う。

  1. プロジェクト作成(Dynamic web project)
  2. ファイル作成(JSP,Servlet)

このとき注意すべき点がいくつかある。 はじめにプロジェクトを作ったとき、フォルダがいくつか出来る。 htmlやjspは"WebContent"に、servletは"JavaSource"へと収めるようにする。 そして、WebContent/WEB-INF/libへ、データベースのドライバをいれる。 実行するときは、プロジェクト名を右クリックし、実行-サーバ上で実行を選ぶ。

簡単なJSP/Servletの例

編集中

Apacheの準備

Apacheのセキュリティについて

Apacheバージョン:2.0。バージョンの調べ方は、

yum list installed | grep httpd

Apache設定ファイルhttpd.confは/etc/httpd/conf/にある。

OSのセキュリティ

まずは、不要なサービスをとめること。現在のサービス一覧は、ps aux | lessで分かる。 起動・停止・再起動のスクリプトは/etc/init.d/にある。 ランレベルに応じた設定は/etc/r.d/以下。 ファイアウォールの設定(ここではPort 80のみ許可)。

httpd.confの設定

*「#」のついた文は、コメントアウトである。 まずはこのファイルのバックアップをとろう。

rpmインストールでのファイルフォルダの構成
/etc/httpd/conf/   httpd.confなど設定ファイル
/usr/lib/httpd/build/   拡張モジュール作成時に使用
/usr/lib/httpd/modules/   拡張モジュール
/usr/sbin/   apachectl、httpdなどの実行ファイル
/usr/share/man/   マニュアル(man形式)
/var/log/httpd/   ログファイル
/var/www/    
  ├─ cgi-bin/   CGIスクリプト
  ├─ error/   エラーメッセージファイル
  ├─ html/   Webサイトのドキュメントルート
  ├─ icons/   アイコンファイル
  └─ manual/   マニュアル(HTML形式)

諸設定

ドキュメントルートの設定:DocumentRootディレクティブ参照(初期設定:/var/www/html)。 また、同じくエラードキュメントルートも設定。

最低限確認すべきディレクティブ
サービスポートの設定(通常は変更しない):Listen 80
httpdデーモンのユーザー権限、ユーザーID:User nobody
httpdデーモンのユーザー権限、グループID:Group #-1
サイト管理者のアドレス:ServerAdmin abc@test.com
ホスト名の指定:ServerName www.test.com:80

サーバ情報を外部に提供しないようにする:ServerTokensおよびServerSignatureディレクティブ
ServerTokens ProductOnly
ServerSignature Off
Apacheのデフォルト設定では、サーバのOSやApacheのバージョンなどの情報を取り出すことが出来る設定になっている。 サーバのデータはサーバを攻撃しようとする側に提供してやる必要はないので、情報をブロックするようにする。 ただし、これで攻撃されないということはない。

設定したファイルが正しいかどうかを調べる方法:/usr/sbin/apachectl configtest

これを実行して、Syntax OKが帰ってくれば(文法的に)問題ない。

.htaccessによるアクセス制限の設定

例:
order deny,allow (denyを先に、allowを後から評価)
deny from all (すべてを拒否)
allow from .test.com (.test.comからのアクセスを許可)
allow from 192.168.1. (イントラネットを許可)

文字化け対策

このサーバはcharsetがeuc-jpなので、初期設定では文字化けする。 httpd.confのAddDefaultCharsetディレクティブをEUC-JPにして、再起動。

サーバのベンチマーク

ApacheBenchによる方法

Apache/Tomcatの連携

編集中

日常の管理

Apacheのログは、httpd.confの設定で書き込まれる。


back