することの概要
シンプルなLinuxサーバをクラウドサービス上に構築し、LAMP環境をインストールし、使えるように設定する
LAMP
LAMP(ランプ)とは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字からなる造語。動的(ダイナミック)なウェブコンテンツを含むウェブサイトの構築に適した、オープンソースのソフトウェア群である。これらはそれぞれ独自に開発されたもの。
L for Linux
Linux(リナックス)はUnix系オペレーティングシステムの一つ
Linuxディストリビューションとは、Linuxを一般利用者がインストールしたり、利用できる形にまとめ上げたもの。カーネルの他、基本的なUNIXのツールやユーティリティ、その他サーバ向けやデスクトップ環境向けのソフトウェアを集め、インストーラがついている。有名なLinuxディストリビューションとしては、Debian(とその派生であるUbuntu)、Red Hat Linux(とその派生であるFedora、CentOS、Red Hat Enterprise Linux)、openSUSE(オープン・スーゼ)など
ここで使うCentOS(セントオーエス)は、Red Hat Enterprise Linux(RHEL、有償)との完全互換を目指したフリーのLinuxディストリビューション
A for Apache
Apache HTTP Server(アパッチ エイチティーティーピー サーバ)は、世界中でもっとも多く使われているWebサーバソフトウェア
Webサーバ(ウェブサーバ)は、クライアントソフトウェアのウェブブラウザに対して、HTMLやオブジェクト(画像など)の表示を提供するサービスプログラム
M for MySQL
MySQL(マイ・エスキューエル)は、関係データベース管理システム (RDBMS:リレーショナルデータベースマネジメントシステム) の一つ
ここで使うMariaDB(マリアディービー)は、MySQL派生として開発されているRDBMS
P for PHP
PHP(ピー・エイチ・ピー)はオープンソースの汎用プログラミング言語で、主にサーバサイドで動作するスクリプト言語として利用されており、動的なウェブページ作成するための機能を多く備える
サーバ構築手順
おおまかな仕様(基本設計)
ハードウェア
- CPU 1個
- メモリ 1GB
- ディスク 20GB
- NIC 1個
OS・ネットワーク設定
- OS CentOS 7.3 64bit
- ホスト名 0919-xxxx(xxxxは自分のサーバを特定できる任意の英数字、文字数自由)
- グローバルIPアドレス 1個
サーバの作成(詳細設計)
さくらのクラウド ホーム https://secure.sakura.ad.jp/cloud/ を開く
画面右側の「さくらのクラウドユーザとしてログイン:」、以下を入力(設定情報は勉強部屋でお伝えします)
- ユーザーコード:
- 会員ID: *パスワード:
管理するサービスを選択してください:
さくらのクラウド (IaaS)
画面左上のゾーン選択ボタンで「石狩第2ゾーン」を選択
左側メニューから「サーバ」をクリック
「+追加」ボタンをクリック
「シンプルモード」のチェックを外す
以下を設定(赤字がデフォルトから変更する部分)
1. サーバプラン
サーバプラン一覧から選択
プラン/1Core-1GBを選択
ディスク
新規ディスクを作成
アーカイブ選択:CentOS 7.3 (1611) 64bit
ディスクサイズ:20GB
準仮想化 モードを使う (Virtio):チェックするNIC
インターネットに接続
準仮想化 モードを使う (Virtio) :チェックするディスクの修正
ディスクの修正をする:チェックする
管理ユーザのパスワード:12文字の英数字(記号は使用しない)
(再度入力:同じ文字列を入力してください)(この文字列はメモにペーストしておく)
ホスト名:0919-xxxx(xxxxは自分を特定できる任意の英数字、文字数自由)
公開鍵:なし
スタートアップスクリプト:shell
配置する スタートアップスクリプト
[public] LAMP #112500569786
スタートアップスクリプト オプション
PHPのバージョン:5
MySQLに設定するパスワード(入力がない場合ランダム値がセットされます。) :管理ユーザのパスワードと同じものを入力シンプル監視
シンプル監視を有効にする:チェックしないサーバの情報
名前:ホスト名と同じものを入力(0919-xxxx)
タグ:(お好み)
アイコン:(お好み)その他のオプション
仮想サーバ上のキーボードをUS配列として設定する:チェックしない
作成後すぐに起動:チェックする
作成数:1
料金が月額2000円程度であることを確認して右下の「+作成」ボタンをクリック
5分程度で要求・待機中のステータスがすべて「成功」になったら、左側メニューから「サーバ」をクリックして、自分のサーバが作成されていることを確認する
サーバ設定確認
「サーバ一覧」から自分のサーバを選択
サーバが起動していることを確認(ステータスランプがグリーン)。起動していない場合は「電源操作 ▼」ボタンをクリックして「起動」を選択
「詳細」ボタンをクリック
「NIC」タブのIPv4アドレスをコピーしてメモにペーストしておく(仮に123.456.789.0とします)
リモートログイン
SSHクライアント(macOS:ターミナル、Windows:Tera Term等)を起動してrootユーザーでサーバにログインする
ターミナルの場合:
$ ssh -l root 123.456.789.0
Tera Termの場合:
ホスト:123.456.789.0
サービス:SSH バージョン:SSH2
ユーザ名:root
パスフレーズ:[管理ユーザのパスワード]を右クリックで貼り付け(Ctrl-vが使えない?)
「OK」ボタンをクリック
(ここから共通)
Are you sure you want to continue connecting (yes/no)?
と聞かれたらyesを入力(yではなく)
12桁のパスワードをペーストしてEnter
プロンプトが[root@0919-xxxx ~]# となっていることを確認
(勝手に切断されることがあるので、今操作している対象はプロンプトで確認する)
exit、logout、Ctrl-dのいずれかでログアウト
基本的なUNIXコマンド(閲覧系)
(サーバにrootでリモートログインして練習)
pwd(現在のディレクトリの場所を絶対パスで表示)
# pwd
/root
- 行頭の#はスーパーユーザー(root)のプロンプトを表す(一般ユーザーのプロンプトは$)
- 手順書類に「# cd /」と書いてあったら実際にキーボードから入力するのは「c・d・スペース・スラッシュ・リターン」の5つ。#や#の直後のスペースは入力しない
Tabキー
- コマンドやファイル名を補完
- 入力途中にタイプすると残りを入力してくれる
Ctrl-C(コントロールキーを押しながらcキーをタイプ)
- プロセス(今実行しているコマンドと考える)を終了させる
- 反応がなくなったように思える時に
cd(ディレクトリ移動)
# cd ../
# pwd
/
↑(ルートディレクトリ)
..はひとつ上のディレクトリ、ここでの/はディレクトリの区切り文字
# cd /usr
# pwd
/usr
↑(ルートディレクトリからの絶対パス指定)
# cd bin
# pwd
/usr/bin
↑(/usrディレクトリからの相対パス指定)
# cd ../../
# cd bin
# pwd
/bin
↑(/usr/binではなく/binになる)
# cd ~
# pwd
/root
↑(システムのルートディレクトリではなく「rootユーザー」のホームディレクトリ)
「~」はログインしているユーザーのホームディレクトリ
ls(ファイルやディレクトリの情報を表示)
ls -a(ドット・ファイルも表示)
ls -l(ファイルの詳細を表示)
ls -F(ファイル・タイプを表す記号を付けて表示。ディレクトリは"/")
ls -alF(オプションは組み合わせ可能)
less(テキストファイルの内容を表示、閲覧する:ページャ)
# less /etc/httpd/conf/httpd.conf
# less -N /etc/httpd/conf/httpd.conf
less使用中のコマンド
f、スペース 次の画面
b、Shiftスペース 前の画面
j 1行進む
k 1行戻る
g 1行目(先頭)に移動
G 最終行(末尾)に移動
q 終了
/文字列 指定文字列を検索
?文字列 指定文字列を検索(後方)
n 前回の検索を繰り返す
N 前回の検索(後方)
Webサーバの動作確認
ブラウザでIPアドレス 123.456.789.0を開くと以下のようにテストページが表示されることを確認
Testing 123..
Apache HTTP Server ... powered by CentOS
テスト用のhtmlファイルをエディタ(vi)で作って表示させてみる
# cd /var/www/html/
# vi index.html
htmlの基本なので、初回はコピペせずに手入力してみましょう
viは独特の操作方法なので、この通りに入力します
(もし編集途中でぐちゃぐちゃになってわからなくなってしまったら、"ESC"を2、3回タイプし":q!"(コロン、q、!)で強制終了できるので、最初からやり直します)
- "i"キーをタイプし、編集モード(下部に-- INSERT --と表示)に入る
- 以下の9行を入力する。間違えてもそのまま続ける
- "ESC"キーをタイプし、コマンド・モードに入る(-- INSERT --が消える)
- (間違えた文字があれば)"hjkl"のいずれかのキーをタイプし、修正部分の最初にカーソルを移動する
- "x"キーをタイプし、不要な文字を消す
- "i"キーをタイプし、編集モードに入る
- 正しい文字を入力
- "ESC"キーをタイプし、コマンド・モードに入る
- 4〜8を繰り返して修正を完了する
- ":w"(コロン、w)と入力し、保存
- ":q"(コロン、q)でviを終了
<html>
<head>
<title>test page</title>
</head>
<body>
<h1>test test test</h1>
Testing 321..
</body>
</html>
ブラウザでリロードすると、作成した内容で表示される
ファイル名を「test.html」に変更してみる
# ls -l
-rw-r--r-- 1 root root 95 Sep 18 17:48 index.html
# mv index.html test.html
# ls -l
-rw-r--r-- 1 root root 95 Sep 18 17:48 test.html
リロードすると以下のに戻ってしまう
Testing 123..
アドレスに/test.htmlを追加してhttp://123.456.789.0/test.htmlとして開くと表示される
index.htmlはファイル名を指定しなくても開かれるように設定されている
Apacheの設定ファイルhttpd.confの164行目付近をlessで確認
less -N /etc/httpd/conf/httpd.conf
163 <IfModule dir_module>
164 DirectoryIndex index.html
165 </IfModule>
時間が余ったらこのファイルをviで編集して実験してみよう!(index.htmlをhoge.htmlに変更してみるとか)
設定などあれこれ
Tera Termダウンロード
リリース Tera Term 4.96 - Tera Term - OSDN
teraterm-4.96.exeをダウンロード、解凍してインストール。インストーラーの設定中の質問はすべてデフォルトでOK
パスワード生成ツール
http://www.luft.co.jp/cgi/randam.php
英数字のみ(記号は使わない)の12桁のパスワードを生成する
macOSはシステム付属のツール「キーチェーンアクセス」でできる(Spotlightで「key」「キー」などと数文字入力)
Command-N、パスワード欄の鍵のアイコンをクリックするとパスワードアシスタントが現れる
viの簡単な説明
Linuxコマンド集 - 【 vi 】 テキスト・ファイルを編集する:ITpro
macOSのターミナルだとSSHがすぐ切れちゃって使いにくい…Tera Termうらやま…
ターミナルでローカルのホームディレクトリに移動して、以下の2行を1行ずつペーストして実行して設定ファイル(~/.ssh/config)を作る($と直後のスペースは不要)
次のSSH接続から有効になり、自動切断しなくなります
$ mkdir .ssh
$ echo "ServerAliveInterval 60" >> .ssh/config
$ echo "ServerAliveCountMax 3" >> .ssh/config
less -N ~/.ssh/config
1 ServerAliveInterval 60
2 ServerAliveCountMax 3