インストールは、あまりに古いマシンや、あまりに新しいマシン、また極めて斬新な変なマシンでない限り、簡単に出来るようになっている。 ハードウェアの認識も、最近のインストーラでは、かなり対応の幅が広がり、特に何もしなくてもインストールできる。 ちょっと昔は、ここが一番大変で時間のかかることであったが、普通の機体ならば、すんなりインストールできるはずである。
まずは、インストールの準備段階として、計算機の構成を調べることからはじめよう。 自作やBTO、またはlinuxプリインストールモデルでない限り、普通ハードディスクの全パーティションはwindows(ntfs,fat...)でフォーマットされている。 (最近の)linuxの多くのディストリビューションではext3タイプのフォーマットが多い。 したがって、その領域を確保しなければならない。 そのためには、市販のパーティショニングツールを使うか、もしくはワンCD Linuxで変更することになる。 例として、以下のワンCD Linuxをあげる。
このlinuxをダウンロードし、CDに焼き、起動し、メニューの中の'QtParted'というツールを起動する。 このツールを使えば、パーティションのサイズを変更することができるので、便利である。 フルインストールでは約7Gディスクを消費するが、必要なものだけにすれば小さく抑えられるし、インターネットに公開する場合は不必要なパッケージをインストールするのはやめるべきである。
QtPartedを使う前に、Windowsをデフラグしておくとスムーズである。 仮に(ちぢめようとしている)Windowsパーティションの後部にファイルが存在する場合、パーティションサイズの変更は行うことが出来ないからである。
注意:windowsの領域の必要なデータを消さないようにしよう。言うまでもなく自己責任。 また、KNOPPIXをCDに焼くとき、「普通に」焼くとただのisoイメージが入ったCDとなり、コースターが一枚余計にできてしまう。 isoイメージの焼ける市販のソフトまたはフリーソフトを探してこなければならない。
Fedora Core4のインストーラCDまたはDVDのisoイメージは下記から自分にあったミラーサーバを探し、ダウンロードし、CDまたはDVDに焼く。
インストールするときは、たいていの場合一番問題になるのが、パーティション設定である。 後のことを考えると、/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やサーブレットを書き、「デプロイメント」することでブラウザからアクセスできる。
従来のEclipseは、web開発が出来る状態にするには、プラグインを結構たくさん組み込まなければならなかった。 また、Eclipseのメニューからプラグインを導入する際、おそらくダウンロードの問題であろうが、非常に時間がかかる。 ちなみに「テストサーバの準備」の項のプラグインを入れるのに3時間かかった。 しかし現在、web開発用のプラグインがあらかじめ入っており、ダウンロードするだけで使えるEclipse WTP(Web Tools Project)なるものがある。 こちらはすぐ開発に入ることが出来るのでおすすめである。 具体的な準備方法は、wtp-all-in-oneをダウンロードし、展開した後、Language Packを入れるだけである。
このインストールが終わったら、後はTomcatおよびPostgreSQLをインストールする。 TomcatをEclipseから使用する際、Eclipseの設定で、Javaの項目の「インストールされているJRE」の部分を、JDKのフォルダに書き直さなければうまくいかないようである。 PostgreSQLのインストールでは、サービスおよび管理者のアカウントを作らなければならないのだが、先にpostgresというユーザをWindowsで作っておくとよい。 なぜならば、こうしておかないと、Windowsの中にはユーザとして存在するのだが(もちろんログインもできる)、コントロールパネルに表示されないという状況になり、ユーザの削除が出来ないのである。
さて、インストールの次は実際にソースコードを書いて、実行してみる。 webアプリケーションをEclipseで構築する際は次のような流れで行う。
このとき注意すべき点がいくつかある。 はじめにプロジェクトを作ったとき、フォルダがいくつか出来る。 htmlやjspは"WebContent"に、servletは"JavaSource"へと収めるようにする。 そして、WebContent/WEB-INF/libへ、データベースのドライバをいれる。 実行するときは、プロジェクト名を右クリックし、実行-サーバ上で実行を選ぶ。
簡単なJSP/Servletの例
編集中
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のログは、httpd.confの設定で書き込まれる。