【アシアル塾】linux超入門編・第二回...

34
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 1 Linux超入門 第二回 仮想サーバー上にLAMP環境を構築してみよう 1回3,000円のWeb技術教育・アシアル塾 http://www.asial.co.jp/school/juku.php

Post on 13-Dec-2014

349 views

Category:

Engineering


3 download

DESCRIPTION

さくらのクラウド上にLAMP環境を構築する講義の資料です。

TRANSCRIPT

Page 1: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 1

Linux超入門第二回仮想サーバー上にLAMP環境を構築してみよう

1回3,000円のWeb技術教育・アシアル塾

http://www.asial.co.jp/school/juku.php

Page 2: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 2

本講座の目的

本講座の目的• Webの仕事に携わる上で避けて通れないLinuxサーバーの役割を理解します

• いわゆる黒い画面を利用した操作方法を学びます

• サーバーのファイルを直接変更する方法を学びます

受講対象者• Webを普段から利用しており、Linuxサーバーに興味関心がある方

第二回目(仮想サーバー上にLAMP環境を構築してみよう)の目標1. 仮想サーバーの仕組みや役割を理解する

2. 仮想サーバーの設定方法を理解する

3. パッケージ管理ソフトを利用してApacheやMySQLをインストールする

4. ブラウザからサーバーにアクセスしPHPが動作することを確認する

Page 3: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 3

Linuxサーバーを用意する

Page 4: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 4

サーバーを用意する方法

PC上にLinuxをインストールする• Linux用のインストールディスクを調達してインストールします

古くなったPCを活用すれば低コスト・低リスクでLinuxを用意できます

PC上に仮想化ソフトで仮想マシンを用意し、Linuxをインストールする• VMware やVirtualBoxといったソフトを利用して仮想マシンを用意します

ディスクやメモリが許す限り仮想マシンを用意できます

低コストで利用できます

仮想サーバーをレンタルする• VPSやクラウドで提供される仮想マシンを利用します

グローバルなIPアドレスを持てるためサービスの公開には最も向いています

お金さえ払えば必要な時に必要な分だけマシンを調達できます。

Page 5: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 5

本日利用するサーバー

本日はさくらのクラウドを利用します• サイトが全部日本語

• 明朗会計

• 1時間単位からの料金設定

利用するLinux• ディストリビューション

CentOS6.x

Page 6: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 6

サーバーの設定確認

Page 7: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 7

サーバーの設定確認

サーバーにログインする• SSHコマンドを利用して仮想サーバーにログインします

ssh root@IPアドレス

• rootは管理者です

※ rootでネットワークの外から簡単に入れる状態は好ましくないため、対策が必要となります。

サーバーの設定確認• ネットワークの設定ファイルを確認する

• 利用しているネームサーバーを確認する

• 自動起動するサーバーソフトを確認する

• ファイアーウォールの設定を確認する

Page 8: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 8

ネットワークの設定ファイルを確認する

ifcfg-eth

• イーサネットデバイス毎の設定が記載されたファイルです。

1番目のイーサーネットデバイスはifcfg-eth0、2番目がifcfg-eth1になります。

– サーバーでは複数のイーサネットデバイスを利用することが珍しくありません。

• 出力結果例

cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0NETMASK=255.255.255.0IPADDR=xxx.xxx.xxx.xxx

Page 9: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 9

ネットワークの設定ファイルを確認する

resolv.conf

• ネームサーバーのIPアドレスを記述するファイルです

ネームサーバーとはexample.comなどのドメインとIPアドレスを相互変換するサーバーです

この設定が無いとドメイン名からIPアドレスを調べる(名前解決)ことができません

• 出力結果例

• ネームサーバーの障害に備え、複数のネームサーバーを指定できるようになっています

cat /etc/resolv.conf

nameserver xxx.xxx.xxx.xxxnameserver xxx.xxx.xxx.xxxsearch localdomain

Page 10: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 10

自動起動サーバーソフト(サービス)の確認

自動起動サーバーソフト(サービス)の確認• サーバーソフトのことをサービスやデーモンと呼びます

• chkconfigコマンドにてサービスの自動起動設定を確認できます

• 出力結果例

• 解説

一般的に3の設定が採用されます。

– 各数字はランレベルというものを表しています。

chkconfig --list

sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Page 11: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 11

インストール済みのソフトウェアパッケージ確認

パッケージによるソフトウェア管理• ソフトウェアはパッケージという単位で管理されています

例えば「w3m」コマンドをインストールするためのパッケージや「mysql」を動かすためのパッケージが存在します。

• パッケージには依存関係があります

例えば「w3m」コマンドはSSLによる暗号化通信を行うために「openssl」のパッケージを必要とします

パッケージ管理ソフト• rpm

パッケージのインストールやアンインストールを行うソフトです。

• yum

rpmを更に簡単に利用するためのソフトです。依存関係の解決や更新を手軽に行うことができます。

インストール済みパッケージの確認

パッケージのインストールと依存性の確認

yum list installed

yum install w3myum deplist w3m

Page 12: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 12

yumコマンドの使い方

yumコマンド• yumコマンドを使うことでパッケージを探したり、依存関係を考慮した一括インストールを

行うことができます。また、パッケージのアップデートも行うことができます。

• パッケージデータベース(リポジトリ)によるパッケージ管理yumはパッケージデータベースを参照することでソフトウェアを管理しています。パッケージデータベースの設定は以下のディレクトリで行います。

– /etc/yum.repos.d/

• コマンドupdate インストール済みパッケージのアップデートを行います

search パッケージを探します

install パッケージをインストールします

remove パッケージをアンインストールします

Page 13: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 13

rpmコマンドの使いかた

rpmコマンド• パッケージのインストールや削除を行います

• オプション-v 詳細情報を出力

-h 進捗状況を#記号で表示

-i パッケージをインストールします

-e パッケージをアンインストールします

-qa インストール済みのパッケージ一覧を確認

-K パッケージの署名を確認します

--import 署名検証用の公開鍵をインストールします

使い方• インストール

rpm -ivh パッケージファイル

• インストール済みパッケージの確認

rpm -qa |grep php

Page 14: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 14

【応用】言語環境を日本語に切り替える方法

言語環境を日本語に切り替える

常に日本語環境になるように設定ファイルを変更する

/etc/sysconfig/i18n

export LANG="ja_JP.UTF-8"

vim /etc/sysconfig/i18n

LANG="ja_JP.UTF-8"SYSFONT="latarcyrheb-sun16"

Page 15: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 15

セキュリティ対策

Page 16: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 16

セキュリティ対策

今回行う対策• パッケージを最新の状態にする

• ファイアーウォールを設定する

今回特別に行う対策• 特定のIPアドレス以外からはアクセスできないようにする

今回は行わないが、可能な限り行った方が良い対策• パスワード認証ではなく鍵認証を行う

• rootユーザーでの直接ログインを禁止する

一般ユーザーでログインしてからrootに昇格することのみ許可する

• rootによる操作は控える

【参考情報】• エルピーアイジャパンがLinuxのセキュリティに関する情報をPDFで無料公開しています。

Linuxセキュリティ標準教科書

Page 17: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 17

パッケージを最新状態にする

パッケージを最新状態にするコマンド

【発展】パッケージアップデートの自動化設定• yum-cronのインストール

• yum-cronの起動

• yum-cronの自動起動設定

yum update

yum install yum-cron

/etc/init.d/yum-cron start

chkconfig yum-cron on

Page 18: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 18

ファイアーウォールを設定する

setupコマンドによるファイアーウォールの設定

Firewallを選択してセキュリティの設定を行います

操作方法• タブや十字キーで選択を切り替えます

• エンターキーで選択を行います

setup

Page 19: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 19

Firewallの設定

Customizeを選択し「SSH」「HTTPS」「HTTP」を許可する。その後 Close

OKを選択。YESを選択して設定を上書きする。

Page 20: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 20

Firewallの設定ファイル確認と再起動

Firewall(iptables)の設定ファイルは「/etc/sysconfig/iptables」に記載されます• 設定ファイルを確認してみましょう

• 念のためiptablesのサービスを再起動します

/etc/sysconfig/iptablesの設定例

iptablesの再起動

# Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT

/etc/init.d/iptables restart

Page 21: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 21

特定のIPアドレス以外からはアクセスできないようにする

特定のIPアドレス以外からはアクセスできないようにする• 実験中などで外部に公開したくない場合はIP制限ではじくことができます。

/etc/sysconfig/iptables• 例:sshの接続は特定のIPだけ行えるようにする

# Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp -s xxx.xxx.xxx.xxx --dport 22 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT

Page 22: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 22

Apache・MySQL・PHPのインストールと動作確認

Page 23: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 23

LAMP環境構築に必要なパッケージのインストール

LAMP環境構築に必要なパッケージのインストール

• 複数行に分けてインストールしても大丈夫です

yum install mysql mysql-server httpd php php-pdo php-mysql

yum install mysqlyum install mysql-server yum install httpdyum install phpyum install php-pdoyum install php-mysql

Page 24: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 24

Apacheウェブサーバーの起動と動作確認

Apacheウェブサーバーの起動

ウェブサーバーの動作確認• PCのブラウザにてIPアドレスを指定して確認します

http://IPアドレス/

PHPの実行確認• /var/www/html/index.phpを作成してPHPのプログラムを記述してみましょう。

• /var/www/html/index.php

/etc/init.d/httpd start

vim /var/www/html/index.php

<?php echo 'Hello Linux'; ?>

Page 25: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 25

MySQLデータベースサーバーの起動と動作確認

MySQLデータベースサーバーの起動

動作確認• mysqlコマンドでデータベースに接続 (rootログイン)

• データベース一覧を表示してみる

/etc/init.d/mysqld start

mysql

show databases;

Page 26: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 26

【発展】非公式リポジトリの活用

Page 27: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 27

非公式リポジトリの活用

非公式リポジトリの活用• CentOS6におけるPHP5.5やPHP5.6の利用など、通常サポートされていないパッケージをインストールす

る際に、非公式のリポジトリを活用することが可能です。

• remi.repoの編集例

wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpmrpm -ivh remi-release-6.rpm vim /etc/yum.repos.d/remi.repo

[remi]name=Les RPM de remi pour Enterprise Linux 6 - $basearch#baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirrorenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php55]name=Les RPM de remi de PHP 5.5 pour Enterprise Linux 6 - $basearch#baseurl=http://rpms.famillecollet.com/enterprise/6/php55/$basearch/mirrorlist=http://rpms.famillecollet.com/enterprise/6/php55/mirror# WARNING: If you enable this repository, you must also enable "remi"enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

Page 28: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 28

【発展】MySQLとPHPの接続

Page 29: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 29

MySQLデータベースサーバーの利用実験

データベーステーブルを作成し、データの入力や参照を行う

use test;create table asial_juku(id serial,name text); insert into asial_juku(name) values ('yuki'); select * from asial_juku;

Page 30: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 30

PHPとMySQLデータベースサーバーの接続実験

先ほどのデータベースにPHPのPDOから接続試験を行う

<?php$pdo = new PDO ('mysql:dbname=test;host=localhost', 'root');$sql = 'SELECT * FROM asial_juku';$stmt = $pdo->query($sql);$asial_juku = $stmt->fetchAll();

foreach($asial_juku as $member) {echo htmlspecialchars($member['id'], ENT_QUOTES, 'UTF-8');echo htmlspecialchars($member['name'], ENT_QUOTES, 'UTF-8');echo "<br>¥n";

}

Page 31: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 31

【CM】アシアルスクール

Page 32: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 32

アシアル塾のご案内

1回3,000円でWeb技術を約90分学習できる格安の教育サービスです• 60分の講義+30分の復習&質問タイム

主な対象• IT業界やWeb業界で働いているプロの方の学習を応援します!

Webデザイナーの方大歓迎

• 技術を分かりやすく教えます

絶対理解保証キャンペーン実施中• もし講義内容にご満足いただけなかった場合は返金いたします

(返金手数料のみ頂戴いたします)

URL• http://www.asial.co.jp/school/juku.php

Page 33: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 33

アシアルスクールのご案内

Web関連技術を集中的かつ体系的に学べる研修サービスです• 半日~二日間の集中講義を中心に実施

• PHPやJavaScript、LinuxといったWeb関連技術が学べます

URL• http://www.asial.co.jp/school/guide.php

例:PHP講座の学習ロードマップ

Page 34: 【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう

URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 34

企業研修のご案内

アシアルではWeb技術に関する企業研修を行っています• 技術職採用の社員に向けた新人研修・中途採用者向け研修

• 総合職向けのWeb技術入門研修

主な実績• グリー株式会社様

• 株式会社ドワンゴ様

• 株式会社朝日新聞社様

URL• http://www.asial.co.jp/business/training/