wordpressサーバ構築(インターンシップ用)

linux

アジェンダ

  • 世の中のWEBサイトとは
    • EC(electronic commerce:電子商取引)サイト
    • コポレートサイト
    • ブログサイト
  • PCがWEBサイトを表示させるまでの動線と各ビジネス担当者について
    • PCやルータ:消費者
    • モデムや電信柱、電話線など:電気通信事業者(NTTなど)
    • インターネット接続サービス:ISP事業者(OCNなど)
    • サイト管理者ビル:iDC(インターネットデータセンター)事業者
    • FW,LB,SV,OS,MW:インフラ屋(ネットワーク/サーバエンジニア)
    • application:アプリ開発屋(プログラマー)
    • WEB contents:WEBデザイナー
  • ブログサイトのサーバ構築
    • 環境説明
    • 各アプリケーションのインストール
    • wordpress設定
  • ブログサイトへ感想を投稿
  • 応用編
    • IPアクセス制限
    • Basic認証
  • その他
    • バーストアクセス
    • DoS攻撃

環境説明

  • LAMP(Linux, Apache, MySQL, PHP)構成
    • Linuxサーバ(OS:centOS7)
    • WEB用ミドルウェア:Apache
    • プログラミング言語:PHP
    • ブログ用コンテンツ管理システム:WordPress
    • DB用ミドルウェア:MySQL(mariadb)

サーバ構築手順

  • サーバへログイン
    • teraterm起動
      • ホスト:192.168.1.1 ※読み替えてください
      • サービス:SSH
      • OKを押す
    • ユーザー名:hoge ※読み替えてください
    • パスフレーズ:password ※読み替えてください
    • OKを押す
  • rootへ昇格
    • さきほどのユーザーは一般ユーザーで、操作が制限されています。以下の手順を実施し、管理者権限の操作ができるようになってください。赤のアンダーラインが入力項目です。
$ su -
パスワード: Passw0rd読み替えてください
# 
  • Apacheインストール
    • WEBサーバとして動作させるためのミドルウェアをインストールしてください
# yum install httpd

こんな感じの情報が表示されるはずです。
==================================================================================================
 Package                      アーキテクチャー   バージョン                 リポジトリー     容量
==================================================================================================
インストール中:
 httpd                        x86_64             2.4.6-97.el7.centos.2      updates         2.7 M
依存性関連でのインストールをします:
 httpd-tools                  x86_64             2.4.6-97.el7.centos.2      updates          94 k

トランザクションの要約
==================================================================================================

インストール許可のyを入力します。
Is this ok [y/d/N]: y
  • Apache設定
    • configファイルの編集
ディレクトリ(フォルダ)の移動
# cd /etc/httpd/conf/
confファイルの編集
# vi httpd.conf
※viの操作方法が分からない場合は聞いてください
 i:編集モードの開始
 Esc:編集モードの終了

先頭の#を削除し、好きなFQDNに書き換えてください
==================================================
#ServerName www.example.com:80
   ↓
ServerName www.internship.co.jp:80
==================================================

保存して終了(Escで編集モードを先に終了してください)
:wq

編集した内容が反映されているか確認
# cat httpd.conf | grep -i servername
ServerName www.internship.co.jp:80
  • Apacheの起動
configファイルに間違いが無いかチェック
# apachectl configtest
Syntax OK

apache(WEBサーバ)の起動
# apachectl start
  • WEBコンテンツの配置
ディレクトリ(フォルダ)の移動
# cd /var/www/html/
ディレクトリの中が空っぽであることを確認
# ls
テスト用WEBコンテンツ(静的ファイル)の配置
# echo "testpage" > index.html    ※testpage部分は好きな文字に変えてもらってOK
テスト用WEBコンテンツ(プログラム)の配置
# vi info.php下記の内容をそのまま張り付けてください
=========================
<?php
phpinfo();
?>
=========================
ディレクトリの中にコンテンツが配置されたことを確認
# ls
  • Apache動作確認
    • 自身のPCの左下の検索画面で「notepad」と入力してください
    • 出てきた「メモ帳」アプリを右クリックし、「管理者として実行」を選択してください
      • 「このアプリがデバイスに・・・・」という警告画面が出ますが「OK」
    • メニューバーの「ファイル」-「開く」
      • C:\Windows\System32\drivers\etc
      • hosts ※表示されない場合は「テキスト文書」->「すべてのファイル」に変更してください
    • ファイルの一番下に、下記を記述し、保存して閉じてください
      • 192.168.1.1 www.internship.co.jp
      • IPアドレスとFQDNは読み替えてください
    • ブラウザを起動し、下記のように入力してアクセス
      • http://www.internship.co.jp/index.html
        • 作成したテスト用コンテンツが表示されればOK
      • http://www.internship.co.jp/info.php
        • プログラムが動いてないので、プログラムの内容が表示されればOK
      • FQDNは読み替えてください
  • PHPインストール
    • プログラムを動かすためのPHPをインストールしてください
# yum install --enablerepo=remi php74 php74-php php74-php-devel php74-php-mysqlnd

こんな感じの情報が表示されるはずです
===================================================================================================
 Package                     アーキテクチャー    バージョン                リポジトリー      容量
===================================================================================================
インストール中:
 php74                       x86_64              1.0-3.el7.remi             remi             2.6 k

 php74-php                   x86_64              7.4.27-1.el7.remi          remi             1.7 M
 php74-php-devel             x86_64              7.4.27-1.el7.remi          remi             758 k
 php74-php-mysqlnd           x86_64              7.4.27-1.el7.remi          remi             195 k
依存性関連でのインストールをします:
 多いので省略

トランザクションの要約
===================================================================================================

インストール許可のyを入力します。
Is this ok [y/d/N]: y
  • Apacheの再起動
    • ApacheとPHPを連携させるためにApacheの再起動を行います
apache(WEBサーバ)の再起動
# apachectl restart
  • PHPの動作確認
    • ブラウザを起動し、下記のように入力してアクセス
      • http://www.internship.co.jp/info.php
        • プログラムが動いたので、さきほどと表示が変わってるはずです
      • FQDNは読み替えてください
  • 不要ファイルの削除
    • 動作確認を終えたので、不要なテストファイルを削除してください
# rm /var/www/html/index.html
# rm /var/www/html/info.php
  • MySQLのインストール
    • wordpressを動かすためにはデータベースも必要なのでインストールします
    • mariadbと書いていますが、気にせずインストールしてください
# yum install mariadb-server

こんな感じの情報が表示されるハズです
========================================================================================================
 Package                     アーキテクチャー    バージョン                     リポジトリー       容量
========================================================================================================
インストール中:
 mariadb-server              x86_64              1:5.5.68-1.el7                 base               11 M
依存性関連でのインストールをします:
 libaio                      x86_64              0.3.109-13.el7                 base               24 k
 mariadb                     x86_64              1:5.5.68-1.el7                 base              8.8 M
 perl-DBD-MySQL              x86_64              4.023-6.el7                    base              140 k

トランザクションの要約
========================================================================================================

インストール許可のyを入力します。
Is this ok [y/d/N]: y
  • Mysqlの起動
# systemctl start mariadb.service
  • データベースの作成
Mysql(mariadb)へ接続
# mysql

データベースの作成
MariaDB [(none)]> create database wpdb;
Query OK, 1 row affected (0.00 sec)

データベース接続用ユーザー作成
MariaDB [(none)]> create user 'wpadmin'@'localhost' identified by 'hogehoge';
Query OK, 0 rows affected (0.00 sec)

権限付与
MariaDB [(none)]> grant all on wpdb.* to 'wpadmin'@'localhost';
Query OK, 0 rows affected (0.00 sec)

ログアウト
MariaDB [(none)]> exit
Bye
  • wordpressのインストール
適当なディレクトリ(フォルダ)へ移動します
# cd /tmp/

wordpressのファイルをダウンロードします
# wget https://wordpress.org/latest.tar.gz

ダウンロードしたファイルを解凍します
# tar -zxvf latest.tar.gz

解凍したファイルをWEBコンテンツ置き場へ移動します
# mv wordpress/* /var/www/html/

コンテンツの所有者を変更します
# chown apache:apache -R /var/www/html

以上でサーバ側の設定は完了です。おおよそこの辺りまでがインフラ側の仕事内容となります。次の項目からはWEBコンテンツ側の仕事内容となります。

wordpress初期設定

  • 下記へアクセスしてください ※FQDNは読み替えてください
    • http://www.internship.co.jp/wp-admin/install.php
    • 「Let’s go!」を押してください
  • 必要な項目を入力してください
    • Database Name : wpdb
    • Username : wpadmin
    • Password : hogehoge
    • Database Host : localhost
    • Table Prefix : wp_
  • 「Run the installation」を押してください
  • wordpress初期情報設定
    • Site Title : テストブログ   ※好きに編集してもらってOK
    • Username : test   ※好きに編集してもらってOK
    • Password : test-pass!!   ※好きに編集してもらってOK
    • Your Email : 指示します
  • ログイン

以上でwordpressサーバの構築は完了となります。

応用編

以下は、ヒント無し。自分でググって情報を見つけて対応してみよう

  • IPでのアクセス制限
    • 特定のIPアドレスからのアクセスを遮断する
    • Apacheで制限をかける
    • 自分が作ったブログサイトが見れなくなったことを確認する
    • 制限を解除し、ブログサイトが見れるようになったことを確認する
  • Basic認証
    • 自分が作ったブログサイトを閲覧するにはID/PASSが必要になるようにする
    • ID/PASSを入力して閲覧できることを確認する

その他

  • バーストアクセス
    • 概要:テレビで宣伝していた商品をECサイトでお買い物をしようとすると、ユーザーが殺到してサイトに接続できずお買い物ができないという事象が発生
  • DoS攻撃
    • 概要:インターネットから攻撃を受け、サイトに問題が発生

コメント