サーバコンピュータとしてのセットアップ (CentOS) †概要 †Windows,Mac OSと並ぶ主要なオペレーティングシステムの一つであるLinuxを用いて,サーバとして利用できるコンピュータを構築する.本実験では主に,Webサーバの機能を持つサーバを構築する.ディストリビューションとしてCentOS7を利用する. 実験内容 †
注意事項 †Linuxを操作するためのコマンドや,聞き慣れない用語が頻出するので, Webページを参考にする際は,ls や cd などの基本的なコマンドは,ディストリビューションに 依存しませんが,設定ファイルの保存位置や,パッケージ管理ソフトなどはディ ストリ ビューションやそのバージョンによって異なることに注意しましょう. 課題に取り組む際は,どのようなコマンドを実行したか,あるいは,どのように設定を行ったか,その結果どのような内容が表示されたかなどを記録する. また,このとき,画面をキャプチャして(または写真を撮って)記録を取っておきレポートに貼り付けるなどして利用すること. 実験手順および課題 †0.VirtualBox?のインストール †VirtualBox?のダウンロードサイト[ ダウンロード ]から自分のパソコンのOS(Windows or Mac or Linux)にあったVirtualBox?をダウンロードしてインストールする.
上記の注意事項を守らなかった場合,仮想コンピュータは作成されるものの, この後の実験を進めることができないため,やり直しとなる場合がある. Oracle VM VirtualBoxのウィンドウの左上に"CentOS7_Minimal"が表示されたら実験0は終了である. 1.Linuxのインストール †[実験1.1] サーバコンピュータにCentOS 7をインストールせよ.
2. 各種コマンドの調査および練習 †[実験2.1] 下記の文章に目を通し,Linuxのインタフェースおよびディレクトリ構造について理解しよう. 不明な点は適宜調べること. 我々が通常使っているパーソナルコンピュータは,グラフィカルユーザインタフェース(GUI)を備えている.これに対して,サーバコンピュータでは,文字列によって情報が提示され,キーボードの入力によりコンピュータを操作するキャラクタユーザインタフェース(CUI)を用いて操作することが一般的である. CUIは見た目が地味で,コマンドを覚える必要があるため,最初は操作が難しいと感じるかもしれない.しかし,以下に挙げるような利点も持っており,システムの運用や管理を効率的に行うことができる.
UNIXのファイルシステムは,「/」(ルート)と呼ばれるディレクトリ(= Windowsにおけるフォルダ)をもっとも上位のディレクトリとする木構造を持つ.「/」ディレクトリの下に,以下のようなディレクトリを持つ.なお,ユーザが現在作業を行っているディレクトリのことを「カレントディレクトリ」と呼ぶ. 「/」記号は,単体でルートディレクトリを意味するほか,ディレクトリの区切り記号としての意味を持つ. 「/」で始まるディレクトリ表記を「絶対パス」と呼び,「/」ディレクトリからはじまる位置をすべて明記する方法である.また,「/」以外のディレクトリ名ではじまる表記を「相対パス」と呼び,カレントディレクトリからの位置を表す. 例えば,「/bin」や「/bin/」はルートディレクトリの下にある「bin」ディレクトリを意味する. 「bin」や「bin/」は,カレントディレクトリの下にある「bin」ディレクトリを意味する. カレントディレクトリを明示的に示すときは「.」または「./」と記述する.カレントディレクトリの1つ上のディレクトリは「..」または「../」と表される. [実験課題2.1] 下記のコマンドを実行し,その結果を確認せよ.また,コマンドの働きや引数を調べよ.
UNIXサーバのCUI上でよく利用されるエディタviを使用してみよう. viは以下の3つのモードを持つ.
起動すればすぐに文字を入力できる一般的なエディタと異なり,viは「コマンド入力モード」で起動するため,起動直後は文字を入力できない.「コマンド入力モード」で上下左右のカーソルキーや[h][j][k]][l]キーを用いてカーソルを動かし,[a]キーなどを押して「テキスト入力モード」に切り替え,文字列を入力する. 文字列の入力を終えたら[Esc]キーを押して「コマンド入力モード」に戻る.以上を繰り返すことでテキストファイルを編集する.「コマンド入力モード」で[:]キーを押すことで「exモード」に切り替え,[wq]コマンドを入力するとファイルを保存しエディタを終了する. [実験課題2.2] エディタviのコマンド方法を調べながら,ディレクトリ「/tmp/」にファイル「a.txt」を作成せよ.同様に,下記のファイル「b.txt」を作成し,「diff」コマンドによって2つのファイルの違いを調べよ. 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.3] 下記のコマンドを実行し,その結果を確認せよ.また,各コマンドの働きや引数を調べよ.
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.2] ネットワークに接続できるかを確認する. 1. 制御をWindows側にしておく. 2. コマンドプロンプトを起動し,ipconfig というコマンドを打ち込んでEnterを押す. 3. IPv4アドレスで自分のPCのIPアドレスを確認しておく. 4. 制御をVirtualBox?側へ移し,ping コマンドを実行する.
5. うまく接続できていると,つぎのように接続までの時間が表示される.
ネットワークの接続に失敗している場合は,設定を見直してみよう. [実験課題3.1]
4. サーバソフトApacheのインストールおよび設定 †[実験4.1] パッケージ管理ソフトyumを用いて,C/C++言語のコンパイラであるgcc、および、Apache 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 --no-check-certificate https://ftp.jaist.ac.jp/pub/apache/apr/apr-1.7.4.tar.gz # wget --no-check-certificate https://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.6.3.tar.gz 2. 同様に,apache のソースコードもダウンロードする. (説明動画では、旧バージョンのhttpd-2.4.43になっていますが、最新版は httpd-2.4.57 です) # wget --no-check-certificate https://ftp.jaist.ac.jp/pub/apache/httpd/httpd-2.4.57.tar.gz 3. 取得した3つのファイルをtarコマンドを使って解凍する. 4. lsコマンドで,apr-1.7.4 と apr-util-1.6.3の2つのディレクトリが存在することを確認した後,ディレクトリ名をそれぞれ apr と apr-util に変更して httpd-2.4.57/srclib/に保存する.(以下のコマンドを実行する) # mv apr-1.7.4 httpd-2.4.57/srclib/apr # mv apr-util-1.6.3 httpd-2.4.57/srclib/apr-util 5. httpd-2.4.57 へ移動する. 6. configureコマンドを実行し,Makefileの作成を行う. #./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サーバにアクセスできるかどうかを,Windows側のブラウザを使って確認せよ.Webブラウザのアドレスバーに,「http://localhost/」と入力する.うまく接続できないことを確認する. [実験4.3] ポートフォワーディングとファイアウォールの設定を行い,サーバへのhttp通信を許可する. 1 ポートフォワーディングの設定 †ポートフォワーディングの設定して,ホストOSからゲストOS上で稼働するWebサーバにアクセスできるようにする。 1.1 メニューの「仮想マシン」から「ACPIシャットダウン」を選択し、一旦、終了させる。 1.2 VirtualBox?の「設定」をクリックする。 1.3 仮想コンピュータの「ネットワーク」設定にあるポートフォワーディングを設定する。(「Advanced」を押して、つぎに「ポートフォワーディング」をクリックする) 1.4 右の「+」ボタンを押して、以下のように設定する。 1.5 設定後、CentOS7_minimalを起動する。 1.6 ログイン後、apachectlコマンドを実行しておく。 # /usr/local/apache2/bin/apachectl start 2 ファイアウォールの設定 †2.1 publicのサービスの確認 # firewall-cmd --list-service --zone=public 2.2 サービスを追加する # firewall-cmd --add-service=http --zone=public [実験課題4.2] Webサーバにアクセスできるかどうかを,再度,Windows側のブラウザで確認する. うまくできていれば、つぎのように“It works!”と表示される。
5. サーバの運用 †[課題5.1] 実験者のユーザアカウントを作成せよ.ユーザアカウント作成に必要なコマンドは調べる. [課題5.2] ユーザのWebページを作成し,クライアント(ノートパソコン)から閲覧できることを確認せよ.作成するWebページは,下記のような非常に単純なものでよい. ユーザのWebページは,「/home/***(ユーザ名)/public_html/」ディレクトリに,index.htmlという名前で作成する.Windowsのブラウザから閲覧する際は,「http://localhost/~***(ユーザ名)」と入力する. 例: <html> <head><title>Test</title></head> <body> This is a test Web page to check if our server works. </body> </html> 作成したWebページを閲覧できない場合は,各ユーザのディレクトリ(/home/***(ユーザ名))のパーミッションを確認すること.
調査課題 †
|