こんにちは。「クロジカサーバー管理」コンサルティングチームの三谷です。
この記事は、AWS初心者向けAWS環境のWordPress基本パターン8つ作ってみたのパターン1の作成方法を紹介する記事です。
そのまま真似をすれば誰でもAWSを使ってWordpressの入った1台構成のサーバーを建てる事ができます。
また、今回紹介する構成は、WebサーバーとDBサーバーを一つのインスタンスで賄っているため、AWSのAMIという機能を使うことでクローンを作るのが非常に簡単です。
例えば、WordPressのバージョンを上げたり、大規模な変更のためにテスト環境を作りたい場合、現行のサイトをそのままコピーしてテスト環境を用意する場合、このマシンをコピーすれば完了するので、非常に楽です。その方法も後半で紹介していきます。
WordPress環境の作り方
まずは、EC2でインスタンス(Amazon Linux2)を建ててください。
この時、セキュリティグループの設定では、sshとhttpと最終的に必要になるhttpsが許可されるように設定してください。セキュリティ的にsshはマイIPなどで許可制にし、httpとhttpsはデフォルトのままにすることを推奨します。マイIPの場合は、今いる場所のネットワークからのみssh接続が許可されるようになります。
インスタンス作成後にターミナル(端末、コマンドプロンプト、windows powershellどれでもOKです)でsshログインします。初めてログインする時は、Are you sure you want to continue connecting (yes/no)?
と聞かれるため、yes
と入力してenterを押します。XXX.XXX.XXX.XXXにはパブリックIPが入ります。
ssh -i XXXXX.pem ec2-user@XXX.XXX.XXX.XXX
sudo su -
次のコマンドを順番に入力してください。
これらのコマンドを入力することで、LAMPサーバーに必要なApache(アパッチ)とMySQL(DB:データベース)とPHP(プログラミング言語)の環境が整います。
※LAMPのLはLinuxから来ており頭文字を取ってLAMPサーバーと呼ばれています。
- Apache 最新版
- MySQL ver.5.7
- PHP ver.7.2
がインストールされます。
amazon-linux-extras install php7.2
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
yum install -y httpd php mysql-community-server
systemctl start httpd mysqld
systemctl enable mysqld httpd
MySQLにログインして、Wordpressに最低限必要な設定をします。mysql -uroot
と入力してenterを押せば、通常であればログインできます。できなかった場合は、MySQLログイン後、MySQL内でWordpress用のDatabase、アカウント作成およびアカウントにwordpress Database
への全アクセス権限付与を次のコマンドでしていきます。このとき、wordpress Database
のIDはwpuserでPasswordはhogeです。任意の文字列にしてください。後でWordpressをインストールする時に使います。
CREATE DATABASE wordpress charset utf8;
GRANT ALL PRIVILEGES ON wordpress.* TO "wpuser"@"localhost" IDENTIFIED BY "hoge";
FLUSH PRIVILEGES;
WordPressをインストールします。次のコマンドを入力して実行すれば、インストールに必要なデータがダウンロードされます。その後、chromeなどのWebブラウザでhttp://×××.×××.×××にアクセスし、指示に従って先ほど作成したDatebaseのアカウント情報を入力してインストールは完了します。
cd /usr/local/src
wget https://wordpress.org/latest.tar.gz
tar -zxvf latest.tar.gz
mv wordpress/* /var/www/html/
chown -R apache: /var/www/html/
AMIを使ったWordpress環境のコピーインスタンスを建てる方法(テスト環境構築)
- WordPress環境の作り方で作ったインスタンスをAWSコンソールで表示し選択します。
- アクションをクリックし、その中のイメージの中のイメージの作成をクリックします。
- イメージ名とイメージの説明を入力して、イメージの作成をします。
- しばらく待つとWordPress環境の作り方のイメージ(AMI)が作成されます。
- 作成されたら、WordPress環境の作り方でインスタンスを建てた時と同じ手順で、AMIの選択のところでマイAMIの中のhoge-imgを選択し建てます。
- この手順で、IPアドレスは違いますが中身の同じインスタンスが作成されます。
おわりに
AWSをよく知らない人でも、WebサーバーとDBサーバーが同じEC2インスタンス内にあるWordpressサーバーを建てることができると思います。また、Wordpressのバージョンアップデートなど、本番環境を複数作りたい時にも簡単にサーバーをAMIを使って建てることができると思います。
付録
mysqlでログインできなかった人向けの話
cat /var/log/mysqld.log |grep "password"
このコマンドを入力してあげると、以下のように初期パスワードが出てきます。以下の場合 hogehoge
がパスワードです。
---略---
2019-01-30T07:32:31.484704Z 1 [Note] A temporary password is generated for root@localhost: hogehoge
2019-01-30T07:39:15.648617Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
---略---
初期パスワードを使ってMySQLログイン後パスワードを変更するよう指示されるので、以下のコマンドでMySQLにログインして変更します。
mysql -u root -p hogehoge
SET password for root@localhost=password('passwordPASSWORD');
テスト環境作成などでパスワードを短くしたければ、以下のコマンドを追加で実行してください。
SET GLOBAL validate_password_length=4;
SET GLOBAL validate_password_policy=LOW;
SET password for root@localhost=password('pass');
コーポレートサイトをクラウドでセキュアに
無料ではじめるサーバー管理
クロジカガイドブック
- コーポレートサイト構築・運用の課題を解決
- クロジカサーバー管理の主な機能
- 導入事例
- 導入までの流れ