【アシアル塾】linux超入門編・第二回...
Post on 13-Dec-2014
349 views
DESCRIPTION
さくらのクラウド上にLAMP環境を構築する講義の資料です。TRANSCRIPT
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
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が動作することを確認する
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 3
Linuxサーバーを用意する
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 4
サーバーを用意する方法
PC上にLinuxをインストールする• Linux用のインストールディスクを調達してインストールします
古くなったPCを活用すれば低コスト・低リスクでLinuxを用意できます
PC上に仮想化ソフトで仮想マシンを用意し、Linuxをインストールする• VMware やVirtualBoxといったソフトを利用して仮想マシンを用意します
ディスクやメモリが許す限り仮想マシンを用意できます
低コストで利用できます
仮想サーバーをレンタルする• VPSやクラウドで提供される仮想マシンを利用します
グローバルなIPアドレスを持てるためサービスの公開には最も向いています
お金さえ払えば必要な時に必要な分だけマシンを調達できます。
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 5
本日利用するサーバー
本日はさくらのクラウドを利用します• サイトが全部日本語
• 明朗会計
• 1時間単位からの料金設定
利用するLinux• ディストリビューション
CentOS6.x
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 6
サーバーの設定確認
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 7
サーバーの設定確認
サーバーにログインする• SSHコマンドを利用して仮想サーバーにログインします
ssh root@IPアドレス
• rootは管理者です
※ rootでネットワークの外から簡単に入れる状態は好ましくないため、対策が必要となります。
サーバーの設定確認• ネットワークの設定ファイルを確認する
• 利用しているネームサーバーを確認する
• 自動起動するサーバーソフトを確認する
• ファイアーウォールの設定を確認する
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
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
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
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
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 パッケージをアンインストールします
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
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"
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 15
セキュリティ対策
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 16
セキュリティ対策
今回行う対策• パッケージを最新の状態にする
• ファイアーウォールを設定する
今回特別に行う対策• 特定のIPアドレス以外からはアクセスできないようにする
今回は行わないが、可能な限り行った方が良い対策• パスワード認証ではなく鍵認証を行う
• rootユーザーでの直接ログインを禁止する
一般ユーザーでログインしてからrootに昇格することのみ許可する
• rootによる操作は控える
【参考情報】• エルピーアイジャパンがLinuxのセキュリティに関する情報をPDFで無料公開しています。
Linuxセキュリティ標準教科書
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
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 18
ファイアーウォールを設定する
setupコマンドによるファイアーウォールの設定
Firewallを選択してセキュリティの設定を行います
操作方法• タブや十字キーで選択を切り替えます
• エンターキーで選択を行います
setup
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 19
Firewallの設定
Customizeを選択し「SSH」「HTTPS」「HTTP」を許可する。その後 Close
OKを選択。YESを選択して設定を上書きする。
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
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
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 22
Apache・MySQL・PHPのインストールと動作確認
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
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'; ?>
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;
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 26
【発展】非公式リポジトリの活用
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
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 28
【発展】MySQLとPHPの接続
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;
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";
}
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 31
【CM】アシアルスクール
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
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講座の学習ロードマップ
URL : http://www.asial.co.jp/ │ Copyright © Asial Corporation. All Rights Reserved. │ 34
企業研修のご案内
アシアルではWeb技術に関する企業研修を行っています• 技術職採用の社員に向けた新人研修・中途採用者向け研修
• 総合職向けのWeb技術入門研修
主な実績• グリー株式会社様
• 株式会社ドワンゴ様
• 株式会社朝日新聞社様
URL• http://www.asial.co.jp/business/training/