WordPress コース 2nd Stage を攻略しよう(Linux 仮想マシン編)

2014年5月16日(金)
鈴木 せいじ

Microsoft Azure上にLinuxインスタンスを立ち上げてWordPressをインストール

Tuning Maniax 2014 - 蒼き調律者たち」の攻略に役立つ情報をお届けする今回の連載。前回のWindows仮想マシン編に続き、今回の記事ではLinux仮想マシンで WordPress を立ち上げるまでの手順について紹介します。

前提条件

事前準備として、以下の環境をそろえてください。
※Microsoft Azureの管理ポータルにログインする際に必要です。

  • Microsoft アカウントの登録
  • Microsoft Azureのアカウント開設
  • インターネットに接続できるPC(OSの種類は問いません)

作業の流れ

  1. SSHクライアントの準備
  2. Microsoft Azureの管理ポータルへログイン
  3. Linux仮想マシンの作成(CentOS)
  4. OSの更新
  5. WordPress実行環境(LAMP)の構築
  6. MySQLの設定
  7. WordPressのインストール
  8. エンドポイントの設定
  9. WordPressの設定

SSHクライアントの準備

Windowsの場合

Windows OS には、デフォルトで「SSHクライアント」が用意されていません。SSHクライアントを別途インストールしてください。

この解説では日本では人気の高いTeraTermを使って解説します。

ダウンロード - Tera Term (テラターム) - SourceForge.JP より、「teraterm-[バージョン番号].exe」をダウンロードしてインストール

※ 以降はこのTeraTerm使って解説します。

Mac 「OS X」の場合

Macの「OS X」には、デフォルトで「SSHクライアント」が用意されています。
「ターミナル.app」を起動し、Dock(ドック)に登録して”すぐに”起動できるようにします。

Microsoft Azureの管理ポータルへログイン

早速、Microsoft Azure 管理ポータル にアクセスして、「Linux仮想マシン」を作成していきます。
特にブラウザのプラグインはいりませんが、最新のブラウザを利用してください。

(クリックで拡大)

Linux仮想マシンの作成

それでは、「Linux仮想マシン」を作成していきます。

左下の「新規」から

(クリックで拡大)

コンピューティング」 ⇒ 「仮想マシン」を選択します。

(クリックで拡大)

次に「ギャラリーから」を選択します。

(クリックで拡大)

すると、作成する「OSイメージ」の一覧が表示されます。

今回は例として「CentOS」を使用します。

(クリックで拡大)

左のメニューから「CENTOS」を選択すると「OpenLogic」と出てきます。
こちらを「選択」して、右下の矢印を選択します。

(クリックで拡大)

【参考】 Microsoft Azureで使えるLinux

Microsoft Azureでは、もちろんWindowsサーバーとLinuxを利用することが出来ます。

執筆時点で利用できるLinuxは以下のようになっています。

  • Ubuntu
    • 12.04LTS
    • 12.10
    • 13.10
    • 14.04LTS
  • CentOS 6.5(OpenLogic)
  • openSUSE 13.1
  • SUSE Enterprise Server 11 SP3
  • Oracle Linux 6.4
    • WebLogic同梱
    • Oracle同梱
  • Puppet Enterprise

次に仮想マシンの構成をしていきます。

仮想マシン名 仮想マシンの名前 短くてわかりやすい物
階層 「基本」を選択します ※
サイズ 「A1」を選択
新しいユーザー名 デフォルトでは「azureuser」ですが、変更をおすすめします!
パスワードの指定 今回は「SSHキー」がないので、パスワードを指定します!

※ 仮想マシンの「階層」ですが、「基本」が機能が制限されていて少し安価に設定されています。自分の構成をお好みで選択してください。
詳細は以下の記事が参考になります。

パスワードには以下の制約があります。

パスワードは 8 文字以上である必要があります
かつ
パスワードには、次のうち 3 種類の文字を含める必要があります:
  • 小文字
  • 大文字
  • 数字
  • 記号

設定が完了したら、右下の矢印を選択します。

(クリックで拡大)

さらに構成が続きます。

クラウド サービス 「新しいクラウド サービスの作成」を選択
クラウドサービスDNS名 「好きなDNS名」.cloudapp.net
リージョン 「日本(東)or(西)」
ストレージアカウント 「自動的に生成されたストレージアカウントを使用」
可用性セット 「可用性セットの作成」
可用性セット名 「好きな名前」
エンドポイント 「SSH」が自動で選ばれていますので、そのまま

設定が完了したら、右下の矢印を選択します。

(クリックで拡大)

「VMエージェント」はチェックのまま、右下のチェックを選択します。

(クリックで拡大)

すると、先ほどの構成で「Linux仮想マシン」が作成されます。

(クリックで拡大)

エンドポイント

Microsoft Azureが標準で備えているファイアーウォールの設定です。

アクセスしたいポートを変える場合は、「パブリックポート」の番号を変更すれば、そのポート番号でアクセス可能です。

また、他のプロトコルを追加することも可能です。設定は後から追加変更出来ます!

OSの更新

Microsoft Azure 管理ポータル」から、「DNS名」をコピーしてきて、SSHで接続してみます。

(クリックで拡大)

TeraTermの「ホスト」先ほどコピーしたDNS名を入れて「OK」

すると、セキュリティ警告が出ます。
ダッシュボードの「SSH 証明書のサムプリント」と同じであることを確認して、「続行」します。

次に、先ほど「仮想マシンの構成」で設定した「ユーザ名」、「パスワード」を入力して「OK」で接続します。

まず、最初にLinuxOS自体の「アップデート」を行ってください。

sudo yum update -y

この時、パスワードが求められます。
ここでは、「仮想マシンの構成」で設定した「パスワード」を入力します。

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
[sudo] password for unagiuser:

一度再起動します。

sudo /sbin/shutdown -r now

MacでLinuxに接続する方法

MacOSXには標準でsshクライアントがありますので、そちらを利用して接続します。

「アプリケーション」→「ユーティリティ」から「ターミナル」を立ち上げます。

(クリックで拡大)

Microsoft Azure 管理ポータル」から、「DNS名」をコピーしてきて、SSHで接続してみます。

(クリックで拡大)
ssh 先ほど設定した[新しいユーザー名]@先ほど設定した[DNS名]

例としてこのようになります。
質問には「yes」で回答して、以下のように表示が変われば接続完了です。

ssh motounagiya@tuningmaniaxwq.cloudapp.net
(クリックで拡大)

Windowsと同様にOSの更新を行ってください。

WordPress実行環境(LAMP)の構築

WordPressを実行するためには、以下のソフトウェアが必要です。

  • Apache HTTPd Server (Webサーバー)
  • MySQL
  • PHP

導入していきます!

sudo yum install -y httpd mod_ssl php php-mysql php-xml mysql-server

MySQLの設定

MySQLを起動します。

sudo service mysqld start

以下のようなメッセージが出て、起動すると思います。

Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h motounagiya password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!                                                    [  OK  ]
Starting mysqld:                                           [  OK  ]

次にDBのパスワード設定などを行います。
以下のコマンドを実行します。
sudo /usr/bin/mysql_secure_installation

MySQLのrootパスワードを設定します。

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
      
In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): ← 最初は空なので何も入力せずEnter
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] Y ← ここでrootのパスワードを設定します
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

WordPress用のMySQLユーザーとデータベース作成

以下の内容でMySQLデータベースを作成します。あくまで“サンプル”ですので、本番では複雑なパスワードを設定されることをオススメします!

DB名 wordpressdb
DBユーザー名 wpdbuser
DBパスワード Password

例:
サンプル情報を元に「SQLファイル」を以下のように作成します。
wpcreate.sql:

CREATE DATABASE wordpressdb DEFAULT CHARACTER SET utf8;
CREATE USER 'wpdbuser'@'localhost' IDENTIFIED BY 'Password';
GRANT ALL PRIVILEGES ON wordpressdb.* TO wpdbuser@localhost;
flush privileges;

MySQLに接続して、上記SQLを実行します。

mysql -u root -p < wpcreate.sql

上記が一番簡単な方法ですが、以下の方法でも作成可能です。

mysql -u root -p 
mysql> 先ほどのSQLを貼りつける

完了したら、以下のコマンドでMySQLの接続を切っておきましょう。

mysql> quit ← mysqlから抜ける

WordPressのインストール

今回、

http://DNS名/wordpress/

へインストールを行います、以下の手順で進めます。

  • Webサーバのルートディレクトリ「/var/www/html」に移動
  • WordPressの最新版をwgetコマンドでダウンロード
  • tarコマンドでダウンロードしたファイルを展開
  • chownコマンドで所有者権限をapacheユーザーへ変更

以下、コマンドのみで記載します。

cd /var/www/html
sudo wget http://ja.wordpress.org/latest-ja.tar.gz
sudo tar zxf latest-ja.tar.gz
sudo chown -R apache.apache wordpress

エンドポイントの設定

WordPressの公開及び管理のために、エンドポイントを追加します。

  • HTTP (80)
  • HTTPS (443)

を追加します。

再度「Microsoft Azure 管理ポータル」にアクセスして、自分が作成した「Linux仮想マシン名」をクリックして以下の画面を表示します。

メニューから「エンドポイント」を選択します。

(クリックで拡大)

この画面に切り替わります。ここでは、「+ 追加」を選択します。

(クリックで拡大)

ここでは、「スタンドアロン エンドポイントの追加」を選択して、右下の矢印で「次へ」

(クリックで拡大)

「名前」から「HTTP」を選択します。

(クリックで拡大)

「HTTP」です。

(クリックで拡大)

他の項目は自動で入力されます。ので、このまま右下の「チェック」をクリックします。

(クリックで拡大)

この画面に切り替わって、完了まで数秒待ちます。
完了したら同様に「HTTPS」も追加します。

(クリックで拡大)

ブラウザで「DNS名」にアクセスして、アクセス可能か確認してみます。
この画面が表示されれば、完了です。

(クリックで拡大)
WordPressの管理の安全上
  • IPアドレスで制限
  • SSLで管理画面ログイン
の設定は実施しておきましょう。

WordPressの設定

それでは、WordPressのインストール設定をしていきます。
httpdとmysqldを起動します。

sudo service httpd start
sudo service mysqld start

その後、

http://DNS名/wordpress/

へアクセスして、以下の画面が表示されることを確認します。
「設定ファイルを作成する」で次の画面へ

(クリックで拡大)

ここは先ほど設定した、データベースの情報用意します。
そして、「さあ、始めましょう!」で次の画面へ

(クリックで拡大)

こちらにデータベースの接続情報を入力します。

  • データベース名
  • ユーザー名
  • パスワード

が入力の項目で、他はそのままで大丈夫です。「送信」で次へ

(クリックで拡大)

今度は、「インストール実行」で次へ

(クリックで拡大)

次に、サイトの設定です。

サイト名 好みのものを入力(例:Tuning Maniax)
ユーザー名 好みのものを入力(admin以外が好ましい)
パスワード 複雑なもので設定しましょう
メールアドレス 自分のメールアドレス(パスワードを忘れた時に必要です)
プライバシー 今回はコンテスト用なので、「チェックを外します」

以下は、例です。
すべての項目が入力完了したら、「WordPressをインストール」で次へ

(クリックで拡大)

この画面が出れば、WordPressのインストールは完了です!

(クリックで拡大)

念の為に管理画面にログインしておきましょう。

https://DNS名/wordpress/wp-admin/

と、HTTPSでアクセスを推奨します。
先ほど設定した、

  • データベース名
  • ユーザー名

を使って、ログインしましょう

(クリックで拡大)

この画面が表示されば、問題ありません!

(クリックで拡大)

最後に、サイトのトップページにアクセスしてみます。 http://DNS名/wordpress/

(クリックで拡大)

ここまで、表示されればインストールに問題はありません。

競技用データのインポート

WordPressのインストール後、公式サイトに掲載されている手順に沿ってWordPressのデータをインポートしましょう。

WordPressのデータをインポートする - Tuning Maniax 2014

データがインポートできない時は?

※上記手順でデータがうまくインポートできない場合、PHPのXMLモジュールがインストールされていない可能性があります。例えばCentOSであれば以下のようにXMLモジュールをインストールして、Apacheをリスタートしてください。

sudo yum -y install php-xml

sudo service httpd restart

これが終われば競技前の準備完了です。お疲れ様でした!

【参考リンク】

Tuning Maniax 2014 - 蒼き調律者たち

Windows Azure 自習書シリーズ - 仮想マシン (IaaS) 編 | MSDN

<編集部より> MacからのSSH接続やSQLファイルの作成など、わかりづらかった箇所の追記を行いました。その他、一部の間違いを修正しました。(2014.05.17)

「元うなぎ屋」
うなぎ屋など、飲食店勤務を経て IT業界へ。受託開発会社でインフラを担当。その後、派遣で勤務するも派遣切りに2度遭う。インストールマニアックスに出会い転職成功。現在はWeb広告を扱う企業で情報システム部門のインフラを担当
 
マニアックスをこよなく愛する、ひとりです。
マニアックスで出会った人脈は「宝物」だと思っている。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています