パソコン実習室
Road to Linux server - Introduction

T.サーバを立ててみよう

 ネットワーク上で提供されている様々なサービス(DHCP, DNS, webページ)は、 何処かにあるサーバがそれぞれの役割を担うことで実現されている。
 各サーバはどんな仕組みで何をしているのか? 自分でサーバを立てて試してみることが理解への足掛かりとなる。

T.1.サーバの用意と接続

 サーバにはリモート ユーザのアドレス割り当て、名前解決(DNS)、web サーバ、ファイル転送等の機能を持たせ、 ユーザが作った web ページをサーバへアップロードして、正しく参照できることを目標とする。

 実習には1台の PC を用意する。 これに Linux をインストールしてサーバとして用いる。
サーバ用 PC の性能は、実習用 (極めて低負荷) であることを考えれば、Windows 98 で使っていたような低スペックな PC で十分である。

 機器の構成は、次のようになる。 実習なので外部ネットワーク(インターネット)には繋がない。

【 サーバとリモート ユーザを直接繋ぐ 】
※ サーバ1台、リモート ユーザ1台ならこれで十分。


[ リモート ユーザ ]

[ サーバ ]
( 接続はクロスケーブルで行う )


【 サーバとリモート ユーザを HUB を介して繋ぐ 】
※ サーバ、あるいはリモート ユーザが複数ある場合は HUB が必須。

[ HUB ]

[ リモート ユーザ ]
 
[ サーバ ]

※ 以降の各サービスの説明では、一部を除いて1台のサーバで運用することを想定している。


T.2.実習用ネットワーク


実習用ネットワークは下記構成での運用を目指す。

T.2.1.ネットワーク構成

ドメイン名project.ed.jp
ネットワーク アドレス10.2.3.0/24
サーバのアドレス10.2.3.234
web サーバの URL (*1)www.project.ed.jp
DNS サーバの URL (*1)dns.project.ed.jp
Gateway (*2)10.2.3.1
(*1) 1台のサーバを兼用する。
(*2) Gateway は存在しないが、便宜上決めて置く。

T.2.2.リモート ユーザに割り当てる環境

  • 【 IP アドレス 】
    10.2.3.101 〜 10.2.3.200


  • 【 容量 】
    1 アカウントあたり 100 MB


  • 【 ディレクトリ構成 】
    /home
     |-- <UserName>
     |--- <public_html>( html ファイルのアップロード位置 )
     |--- <cgi-bin>( cgi ファイルのアップロード位置 )


  • 【 自作 CGI 】
    許可。
    perl のパス : /usr/bin/perl または /usr/local/bin/perl


U.確認と準備

 用意したサーバに各種サービスをインストールする前に、確認・設定しておきたい事柄がある。

U.1.ネットワーク設定の確認

サーバ構築作業を始める前に、サーバのネットワーク情報を確認する。
  • ネットワーク インターフェースの確認
    ※ ethernet 0 の場合
    # more /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=10.2.3.234
    NETMASK=255.255.255.0
    GATEWAY=10.2.3.1
    レスポンスから次の事柄を確認する。
    BOOTPROTO=static固定 IP
    IPADDR=10.2.3.234IP アドレス
    NETMASK=255.255.255.0サブネットマスク
    GATEWAY=10.2.3.1ゲートウェイ

  • DNS 情報の確認
    # more /etc/resolv.conf
    nameserver 10.2.3.234
    nameserver : サーバにローカル ログインしたユーザが DNS 問い合わせに使うネーム サーバのアドレス。
上記の値となっていればOK。
違っている場合は、vi コマンド等で該当ファイルを編集する。


U.2.perl のパス

 ユーザの自作 CGI (perl) を許可するにあたり、perl へのパスを設定する。
perl スクリプトがその先頭行で定義する perl へのパスは、一般的に次の2つが多い。
  • /usr/bin/perl
  • /usr/local/bin/perl
実習ネットワークでは両方をサポートする。 perl の実装確認とパス設定 (シンボリック リンク) を下記手順で行う。
※ この項は、CGI を許可する環境で必要になる。 CGI を許可しない環境なら以下の措置は不要。
  1. perl の実装 (バージョン) 確認。
    # perl -v

    This is perl, v5.8.0 built for i386-linux-thread-multi
    (with 1 registered patch, see perl -V for more detail)

    Copyright 1987-2--2, Larry Wall

    Perl may be copied only under the terms of ・・・・・
        ・・・・・・


  2. perl 実行 (バイナリ) ファイルの検索
    whereis コマンドに -b オプションを付けて検索する。
    # whereis -b perl
    perl: /usr/bin/perl
    ※ レスポンスにはバイナリ ファイルの外、バイナリ ファイルへのシンボリック リンクも含まれる。
    ※ perl 実行ファイルは、/usr/bin/perl または /usr/local/perl-5.8.7/bin/perl にあることが多い。
       ( perl-5.8.7 の数値は perl のバージョンで変わる )

    2 つのパス (/usr/bin/perl, /usr/local/bin/perl) の内、欠けているパスがあればシンボリック リンクを作成する。

  3. シンボリック リンク作成。
    サポートすべきパスで、欠けている分のシンボリック リンクを作成する。
    ※ perl 実行ファイルを /usr/bin/perl、 作成するシンボリック リンクを /usr/local/bin/perl とした場合の例。
    # ln -s /usr/bin/perl /usr/local/bin/perl



V.注意と参考


V.1.Linux のインストールについて

 Linux のインストールに関する説明は、ここでは省略している。 実際のインストールに当たっては、該当バージョンのインストール方法を解説をしている他のサイトを参照して頂きたい。
ただし、次の点は注意の事。
  • パーティションの設定は任意だが、/home は独立したパーティションにする。
    ※ quota を使ってリモート ユーザのディスク使用量を制限するため。
       /home にはユーザのホーム ディレクトリが作成される。
  • プラットフォームは RedHat Linux ES 3 をターゲットとしているが、 違うバージョンの Linux でも大差ない。
  • 各サービスのインストールには、RedHat Linux ES 3 に付属する rpm モジュールを使っている。 他のバージョンの場合はモジュール名等を読み替えて欲しい。

V.2.パッケージ インストール時の警告

 rpm パッケージをインストールする際、下記のような警告が出る場合がある。
警告: vsftpd-2.0.1-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
rpm パッケージのチェック(正規パッケージであり、改ざんされていない)ができない旨のメッセージであり、インストールには影響しない。

予め下記コマンドで GnuPG キーをインストールしておくと、パッケージのチェックが行われて警告は出ないようになる。
rpm --import /usr/share/rhn/RPM-GPG-KEY




  [[ Road to Linux server ]]