EC2のAmazon Linux 2にDockerを使わずSSL化したWordPressを構築する
表題の通りです。Dockerを使わないでオンプレでWordpressを立ち上げたい、そんな時のためのメモです。
- 1. インスタンスの作成・起動
- 2. LAMP(Linux/Apache/MariaDB/PHP)環境のインストール
- 3. Apacheの設定
- 4. MariaDBの設定
- 5. ユーザー、データベースの作成
- 6. WordPressのインストール
- 7. ドメインの設定
- 8. Let's EncryptでSSL化
1. インスタンスの作成・起動
"EC2" > "Launch Instance"
インスタンスタイプの選択
ここでは "t2.micro" を選択。
セキュリティグループの設定
秘密鍵の移動
$ mv ~/Download/'sample'.pem ~/.ssh
パーミッションの変更
$ chmod 600 ~/.ssh/'sample'.pem
3. Apacheの設定
Apache起動
[ec2-user ~]$ sudo systemctl start httpd
自動起動の設定
[ec2-user ~]$ sudo systemctl enable httpd
確認
ブラウザにパブリックIPアドレスを入力。下記のテストページが表示されたら成功。
4. MariaDBの設定
MariaDB起動
[ec2-user ~]$ sudo systemctl start mariadb
自動起動の設定
[ec2-user ~]$ sudo systemctl enable mariadb
初期化
[ec2-user ~]$ sudo mysql_secure_installation
パスワードの設定
- Enter
- Y: パスワードの設定(入力2回)
- Y: 匿名ユーザーの削除
- Y: リモートルートログインを許可しない
- Y: テストデータベースの削除
- Y: 権限テーブルのリロード&変更の保存
5. ユーザー、データベースの作成
[ec2-user ~]$ mysql -u root -p
ユーザー、パスワードの設定
MariaDB [(none)]> create user 'username'@localhost identified by 'password';
データベースの作成
MariaDB [(none)]> create database `db-name`;
ユーザーにGRANT権限を付与
MariaDB [(none)]> grant all privileges on `db-name`.* TO 'username'@localhost;
変更を有効化
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
6. WordPressのインストール
パッケージのダウンロード、解凍
[ec2-user ~]$ wget https://wordpress.org/latest.tar.gz [ec2-user ~]$ tar -xzf latest.tar.gz
ルートディレクトリを変更
[ec2-user ~]$ cp -r wordpress/* /var/www/html/
Apacheに /var/www へのアクセス権限を付与
[ec2-user ~]$ sudo usermod -a -G apache ec2-user [ec2-user ~]$ sudo chown -R ec2-user:apache /var/www
.htaccessの編集
[ec2-user ~]$ sudo vi /etc/httpd/conf/httpd.conf
AllowOverride None
をAllowOverride All
に変更
変更を有効化
[ec2-user ~]$ sudo service httpd restart [ec2-user ~]$ sudo systemctl restart httpd
7. ドメインの設定
ホストゾーンの作成
"Route 53" > "Hosted Zones" > "Create a hosted zone"
レコードの追加
- 追加したいホストゾーンを選択
- "Go to Record Sets"
- "Create Record Sets"
ネームサーバーの設定
- お名前.comとかのドメインを管理しているサイトへ
- NSレコードで作成された4つのネームサーバーを入力
8. Let's EncryptでSSL化
epalのインストール、有効化
[ec2-user ~]$ sudo wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/ [ec2-user ~]$ sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm [ec2-user ~]$ sudo yum-config-manager --enable epel*
Virtual Hostの設定
[ec2-user ~]$ sudo vi /etc/httpd/conf/httpd.conf
listen 80
の後ろに下記の行を追加。
<VirtualHost *:80> DocumentRoot "/var/www/html" ServerName "example.com" ServerAlias "www.example.com" </VirtualHost>
変更を有効化
[ec2-user ~]$ sudo systemctl restart httpd
Certbotのインストール、起動
[ec2-user ~]$ sudo yum install -y certbot python2-certbot-apache [ec2-user ~]$ sudo certbot