計算機アーキテクチャとOS

サーバコンピュータとしてのセットアップ (CentOS)

概要

Windows,Mac OSと並ぶ主要なオペレーティングシステムの一つであるLinuxを用いて,サーバとして利用できるコンピュータを構築する.本実験では主に,Webサーバの機能を持つサーバを構築する.ディストリビューションとしてCentOS7を利用する.

実験内容

0. VirtualBoxのインストールダウンロードとインストール
1. Linuxのインストールパーティションの設定
ネットワークの設定
インストール設定
2. ファイル,ディレクトリ操作各種コマンドの調査および練習
3. ネットワークの設定と確認設定ファイルの変更
サービスの再起動
4. ソフトウェアのインストールおよび設定パッケージ管理ソフトyumの理解
yumを用いたgccのインストール
wgetのインストール
apacheソースコードの取得
apacheのコンパイル
(selinuxの停止)
firewallの設定
5. サーバの運用一般ユーザの登録
簡単なWebページの作成
6. (応用課題)その他のサービスの導入ftp,ntp,Sambaサーバ

注意事項

Linuxを操作するためのコマンドや,聞き慣れない用語が頻出するので,わからない語句は逐一調べながら実験を進めること

Webページを参考にする際は,lsやcdなどの基本的なコマンドは,ディストリビュー
ションに依存しないが,設定ファイルの保存位置や,パッケージ管理ソフトなどはディ
ストリビューションやそのバージョンによって異なることに注意すること.

課題に取り組む際は,どのようなコマンドを実行したか,あるいは,どのように設定を行ったか,その結果どのような内容が表示されたかなどを記録する. また,このとき,画面をキャプチャして(または写真を撮って)記録を取っておきレポートに貼り付けるなどして利用すること.

実験手順および課題

0.VirtualBox?のインストール

VirtualBox?のダウンロードサイト[ ダウンロード ]から自分のパソコンのOS(Windows or Mac or Linux)にあったVirtualBox?をダウンロードしてインストールする.

expIII-A3-00.png

1: 「名前とオペレーティングシステム」
「名前」に「CentOS7_Minimal」と入力する.
タイプは「Linux」,バージョンは,「Red Hat(64-bit)」が選択されていることを確認すること.
expIII-A3-39.png
2: 「メモリーサイズ」
「メモリーサイズ」を1024 MBに設定する.
expIII-A3-40.png
3: 「ハードディスク」
「仮想ハードディスクを作成する」にチェックする.
expIII-A3-41.png
4: 「ハードディスクのファイルタイプ」
「VDI (VirtualBox? Disk Image)」にチェックする.
expIII-A3-42.png
5: 「物理ハードディスクにあるストレージ」
「可変サイズ」にチェックする.
expIII-A3-43.png
6: 「ファイルの場所とサイズ」
場所はそのままとし,仮想ハードディスクのサイズを8.00 GBに設定する.
expIII-A3-44.png

上記の注意事項を守らなかった場合,仮想コンピュータは作成されるものの, この後の実験を進めることができないため,やり直しとなる場合がある.

Oracle VM VirtualBoxのウィンドウの左上に"CentOS7_Minimal"が表示されたら実験0は終了である.
expIII-A3-45.png

1.Linuxのインストール

[実験1.1] サーバコンピュータにCentOS 7をインストールせよ.

expIII-A3-46.png

expIII-A3-10.png

expIII-A3-18.png

expIII-A3-15.png

expIII-A3-19.png

expIII-A3-20.png

expIII-A3-21.png

expIII-A3-26.png

expIII-A3-47.png

2. 各種コマンドの調査および練習

[実験2.1]

下記の文章に目を通し,Linuxのインタフェースおよびディレクトリ構造について理解しよう. 不明な点は適宜調べること.

我々が通常使っているパーソナルコンピュータは,グラフィカルユーザインタフェース(GUI)を備えている.これに対して,サーバコンピュータでは,文字列によって情報が提示され,キーボードの入力によりコンピュータを操作するキャラクタユーザインタフェース(CUI)を用いて操作することが一般的である.

CUIは見た目が地味で,コマンドを覚える必要があるため,最初は操作が難しいと感じるかもしれない.しかし,以下に挙げるような利点も持っており,システムの運用や管理を効率的に行うことができる.

UNIXのファイルシステムは,「/」(ルート)と呼ばれるディレクトリ(= Windowsにおけるフォルダ)をもっとも上位のディレクトリとする木構造を持つ.「/」ディレクトリの下に,以下のようなディレクトリを持つ.なお,ユーザが現在作業を行っているディレクトリのことを「カレントディレクトリ」と呼ぶ.

「/」記号は,単体でルートディレクトリを意味するほか,ディレクトリの区切り記号としての意味を持つ.

「/」で始まるディレクトリ表記を「絶対パス」と呼び,「/」ディレクトリからはじまる位置をすべて明記する方法である.また,「/」以外のディレクトリ名ではじまる表記を「相対パス」と呼び,カレントディレクトリからの位置を表す.

例えば,「/bin」や「/bin/」はルートディレクトリの下にある「bin」ディレクトリを意味する. 「bin」や「bin/」は,カレントディレクトリの下にある「bin」ディレクトリを意味する.

カレントディレクトリを明示的に示すときは「.」または「./」と記述する.カレントディレクトリの1つ上のディレクトリは「..」または「../」と表される.

ディレクトリ名主な用途
/bin基本的なコマンドが格納されている.
/etc
/lib様々なプログラムで利用されるライブラリファイルが格納されている.
/usrユーザによって強要される読込専用ファイルが格納されている.
/var
/home

[課題2.1] 上記ディレクトリのうち,/etcディレクトリ,/varディレクトリ,/homeディレクトリの主な用途を調べよ.

[課題2.2] 下記のコマンドを実行し,その結果を確認せよ.また,コマンドの働きや引数を調べよ.

コマンド名使用例
pwdpwd
cdcd /
cd /etc
lsls
ls *.conf
ls -a -l

[実験2.2]

UNIXサーバのCUI上でよく利用されるエディタviを使用してみよう.

viは以下の3つのモードを持つ.

モード名主な用途
exモードファイルの保存や文字列の検索を行える
 ↑ [:]キーや[/]キーなど ↓ [Esc]キー
コマンド入力モードカーソルの移動や文字列の削除を行える
 ↓ [i]キーや[a]キーなど ↑ [Esc]キー
テキスト入力モード文字列の入力を行える

起動すればすぐに文字を入力できる一般的なエディタと異なり,viは「コマンド入力モード」で起動するため,起動直後は文字を入力できない.「コマンド入力モード」で上下左右のカーソルキーや[h][j][k]][l]キーを用いてカーソルを動かし,[a]キーなどを押して「テキスト入力モード」に切り替え,文字列を入力する.

文字列の入力を終えたら[Esc]キーを押して「コマンド入力モード」に戻る.以上を繰り返すことでテキストファイルを編集する.「コマンド入力モード」で[:]キーを押すことで「exモード」に切り替え,[wq]コマンドを入力するとファイルを保存しエディタを終了する.

[課題2.3]

エディタviのコマンド方法を調べながら,ディレクトリ「/tmp/」にファイル「a.txt」を作成せよ.同様に,下記のファイル「b.txt」を作成し,「diff」コマンドによって2つのファイルの違いを調べよ.2人1組で実験を行っている場合は,1人がa.txtを作成し,もう1人がb.txtを作成する.

a.txt

This is a test file
for learning how to use "vi".

b.txt

This is also a test file
for learning how to use "vi".

[課題2.4] 下記のコマンドを実行し,その結果を確認せよ.また,各コマンドの働きや引数を調べよ.

コマンド名使用例
cpcp a.txt c.txt
cp c.txt ../
catcat a.txt
lessless a.txt

3. ネットワークの設定と確認

[実験3.1] ネットワークの設定を行う.

1. /etc/sysconfig/network-scripts/に移動する.

# cd /etc/sysconfig/network-scripts/

2. 設定ファイル ifcfg-enp0s3 を編集し,ONBOOT=yesに変更する.(s3は異なる数字かもしれない)

# vi ifcfg-enp0s3

3. ネットワークサービスの再起動

# systemctl restart NetworkManager
# systemctl restart network

[課題3.1] linuxがネットワークに接続できるかを確認する. ネットワークの接続を確認するために適切なコマンドを3種類以上調べ,実行せよ.接続先として,学科のWeb,メール等のサーバであるinf(inf.ibe.kagoshima-u.ac.jp,163.209.132.2)を用いること.また,学外のサーバ(任意のサーバ)に対しても接続テストを行うこと.
CentOS 7からシステム系のコマンドが変更になっている.コマンドが見つからない場合は「コマンド名 CentOS7」のようにして検索してみよう.

ネットワークの接続に失敗している場合は,設定を見直し,正常にネットワークに接続できるようにすること.

4. ソフトウェアのインストールおよび設定

[課題4.1] パッケージ管理ソフトyumを用いて,C/C++言語のコンパイラであるgcc、および、Apach 2.4をインストールするために必要なパッケージをインストールする.

# yum -y install gcc make pcre pcre-devel expat-devel wget

[課題4.2] /tmpディレクトリに移動し,Webサーバソフトapacheを,ソースコードからインストールする.apacheはWebサービスを提供するためのソフトウェアである.

1. apache2.4ではAPR(Apache Portable Runtime)のインストールが必要である.wgetコマンドで,apr, apr-util のソースコードをミラーサイトからダウンロードする.

# cd /tmp
# wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-1.6.5.tar.gz
# wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.6.1.tar.gz

2. 同様に,apache のソースコードもダウンロードする.

# wget http://ftp.jaist.ac.jp/pub/apache/httpd/httpd-2.4.43.tar.gz

3. 取得した3つのファイルをtarコマンドを使って解凍する.

4. lsコマンドで,apr-1.6.5 と apr-util-1.6.1の2つのディレクトリが存在することを確認した後,ディレクトリ名をそれぞれ apr と apr-util に変更して httpd-2.4.43/srclib/に保存する.(以下のコマンドを実行する)

# mv apr-1.6.5 httpd-2.4.43/srclib/apr
# mv apr-util-1.6.1 httpd-2.4.43/srclib/apr-util

5. httpd-2.4.43 へ移動する.

6. configureコマンドを実行し,Makefileの作成を行う.
 configureコマンドは、APRを有効にするため --with-included-apr オプションを付与する.

#./configure --with-included-apr

7. makeコマンドを実行することで,Makefileを読み込みながらapacheをコンパイルする.

8. make installコマンドを用いて,apacheをインストールする.

9. エディタ(vi)を用いて,設定ファイル(/usr/local/apache2/conf/httpd.conf)を編集する.設定すべき箇所は下記の通り.ただし,編集する前にhttpd.confをhttpd_bk.confというファイル名でコピーしておく.

[httpd.confの設定変更箇所の例]
LoadModule userdir_module modules/mod_userdir.so の先頭の#を削除
ServerName sv-**.ibe.kagoshima-u.ac.jp
ServerAdmin  sc******@ibe.kagoshiima-u.ac.jp(実験者のメールアドレス)
Include conf/extra/httpd-userdir.conf の先頭の#を削除

10. 編集後、httpd.confとhttpd_bk.confのdiffを取り,上記4箇所が変更されているかどうかを確認する.

11. apacheをサービスとして起動する.一般的にはsystemctlコマンドを用いるが,本実験ではソースコードからインストールを行ったため,apachectlコマンドを用いる.

# /usr/local/apache2/bin/apachectl start

[実験4.1] 課題4.2で設定したWebサーバにアクセスできるかどうかを,ノートパソコンを使って確認せよ.Webブラウザのアドレスバーに,「http://10.200.60.2**/」と入力する(**はグループ番号).うまく接続できないことを確認する.

[課題4.3] ファイアウォールの設定を行い,サーバへのhttp通信を許可する.

1. publicのサービスの確認

# firewall-cmd --list-service --zone=public

2. サービスを追加する

# firewall-cmd --add-service=http --zone=public

[実験4.2] 課題4.2で設定したWebサーバにアクセスできるかどうかを,ノートパソコンを使って再び確認する.Webサーバにアクセスできない場合は,教員やTAと相談して原因を特定する.

5. サーバの運用

[課題5.1] 実験者のユーザアカウントを作成せよ(2名で実験を行っている場合は2名分作成する).

[課題5.2] 各ユーザのWebページを作成し,クライアント(ノートパソコン)から閲覧できることを確認せよ.作成するWebページは,下記のような非常に単純なものでよい.

各ユーザのWebページは,「/home/***(ユーザ名)/public_html/」ディレクトリに,index.htmlという名前で作成する.クライアントから閲覧する際は,「http://10.200.60.2**/~***(ユーザ名)」と入力する.

例:

<html>
 <head><title>Test</title></head>
 <body>
  This is a test Web page to check if our server works.
 </body>
</html>

作成したWebページを閲覧できない場合は,各ユーザのディレクトリ(/home/***(ユーザ名))のパーミッションを確認すること.ファイルおよびディレクトリの所有者だけでなく,全てのユーザに読み込み,実行の権限が与えられる必要がある.


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS