AWS+EC2+CentOS+Kusanagi+WordPress+Let’s Encrypt (6/8)

>AWS+EC2+CentOS+Kusanagi+WordPress+Let’s Encrypt (6/8)

AWS+EC2+CentOS+Kusanagi+WordPress+Let’s Encrypt (6/8)

RLoginにてSSH接続を行ったところです。

sudo su –
sudo su -

コマンドラインはなかなか慣れないものですが、Alt+V, Ctrl+Vなど、コピー・ペーストしやすいように事前に環境設定が必要かもしれません。

yum --enablerepo=remi,remi-php56 update -y
yum –enablerepo=remi,remi-php56 update -y
待つことおよそ5分

地味に時間がかかるため、コーヒーでも淹れて待つことにします。
自動的に画面が流れていきますが、ここでふむふむと頷きながら画面を注意深く見つめることで、エンジニア感が増します。

無事終わった模様
reboot
reboot

一度サーバを再起動します。

サーバ再起動中のため、念の為20~30秒ほど待っておきましょう。
sudo su -

まずはroot権限に切り替えます。

$マークが、#マークになればOKです。

kusanagi init --tz tokyo

ここから、Kusanagiの初期設定を始めていきます。
いくつかの質問がきますので、それらを適切に指定し、適宜記録し、安全な場所に保存しておきます。

Select your using language.
1 : English
2 : 日本語
q : quit

1と入力し、エンターキーを押します。
ここでは、設定したい言語環境に合わせます。2で問題ありません。

Select your keyboard layout.
1 : English
2 : Japanese
q : quit

1と入力し、エンターキーを押します。
ここでは、設定したいキーボード環境に合わせます。 2で問題ありません。

Changing password for user kusanagi.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

CLI(コマンド・ライン・インターフェース)は真っ黒な画面でぶっきらぼうで怖くなってしまいがちですが、臆せず入力していきましょう。新しいPasswordは安全なランダムパスワードを事前に用意しておき、コマンドライン上でペーストするとよいでしょう。

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):

ここは設定を行いません。Enterキーを2回押下します。

KUSANAGI can choose middlewares.
Please tell me your web server option.
1) NGINX(Default)
2) Apache

ここは、デフォルトの(1) NginXでよいので、そのままEnterキーを押します。

Then, Please tell me your application server option.
1) PHP7(Default)
2) HHVM
3) PHP5

ここも、デフォルトのPHP7で問題ないので、そのままEnterキーを押します。

Kusanagiの実行環境によっては、あるいは旧バージョンのKusnagiでは、HHVMがデフォルトとなっていましたが、やはり癖のある実行環境であり、HHVM上では動かないアプリケーションが多く悩まされるためここではPHP7が無難といえます。このあたりは今後いつでもコマンドラインから変更可能です。

黄色い文字が出たりしますが、みんな出るので問題ありません。何一つ間違っていないので、ご安心ください。

Then, Please tell me your ruby version.
1) Ruby2.4

1つしかない選択肢を迫られます。ここは黙ってEnterキーを押します。

Then, Please tell me your Database system.
1) MariaDB(Default)
2) PostgreSQL

ここも、Enterキーを押します。

Enter MySQL root password. Use [a-zA-Z0-9.!#%+_-] 8 characters minimum.

MySQLのrootパスワードを求められます。安全なパスワードを用意しておき、ここで入力し、Enterキーを押します。確認のためにもう一度入力する必要があるので、改めて入力し、Enterキーを押します。

Do you want to install Mroonga ?:

ここはyと入力しEnterキーを押します。
Kusanagiのオフィシャルドキュメントにはない質問などもいくつか登場しますが、落ち着いて対応すれば問題ありません。

一旦これにてKusanagiの初期設定は完了となります。
続いて、プロビジョニングを行っていきます。
プロビジョニングとは、Kusanagi上に乗せるサイトの設定のことです。

  kusanagi provision kusanagi_html

オフィシャルのドキュメントでは上記のようになりますが、kusanagi_html はあまりにもそのままであり、かつ1つのサーバ(Kusnagi環境)に複数のサイトを載せられるため、サイト名(プロジェクト名)を特定しやすいような名称が好ましいでしょう。もちろん、そのままでも構いません。

kusanagi_htmlの部分は任意として、上記のコマンドを入力しEnterキーを押します。

  Choose the installation language of WordPress.
1 : en_US
2 : ja
q : quit

環境に合わせ、適宜選択します。
ここでは英語を選択したいため、そのままEnterキーを押してみました。
すると、

Which do you choose?:  
Please select
1 : en_US
2 : ja
q : quit
Which you want?:

若干食い気味の表現で再質問が飛んできます。1, 2, qのいずれかを入力して選択しないといけないようです。適宜選択し、次へ進みます。

Enter hostname(fqdn) for your website. ex) kusanagi.tokyo

ここで、FQDNを入力します。今回設定したいドメイン名となります。
example.net
test.example.net
などとなります。
先程Route 53にてAレコードを設定したドメインをここで2回入力し、Enterキーを押します。

さて、Kusanagiでは事前にドメイン名を決めなければ設定ができません。しかし、ここで指定するドメイン名は今後随時コマンドから変更可能なため、心配する必要はありません。

In order to use Let's Encrypt services, you must agree to Let's Encrypt's Term of Services.
If you agree to this TOS, type your email address; if not, hit enter twice.
TOS of Let's Encrypt : https://letsencrypt.org/repository/

無料SSLサービスの”Let’s Encrypt”の設定をここで行います。対話式でここまで聞いてくれるので、非常に親切です。自分のメールアドレスを入力しておきましょう。

Enter the name of your database.
Enter user name for database ****************.
Enter password for database user '****************'.
USE [a-zA-Z0-9.!#%+_-] 8 characters minimum.

このあたりも同様に続きますが、適宜入力し、きちんと保存しておきます。

Congratulations! とお祝いされ、ここで一旦設定は一区切りついた形です。
実はまだまだ必要な設定が残っているのですが、とりあえず設定完了したドメインにアクセスしてみましょう。

表示されることが確認できました。

常時SSL化

httpとhttpsの両方でアクセスできる状態です。httpは不要なので、自動的にリダイレクトされるようにしておきます。

kusanagi ssl --https redirect プロファイル名
(例) kusanagi ssl --https redirect kusanagi_html
[root@kusanagi80 ~]# kusanagi ssl --https redirect kusanagi_html
Set redirect all traffic on dearu.com.tw to HTTPS.(Permanently)
Modified nginx/httpd config files and restart.
Done.
You have new mail in /var/spool/mail/root

これにて常時SSL化対応完了となります。

Basic認証を付与

このままの画面ではよくないため、まずは最も手軽に実装可能なBasic認証を付与しておきます。

SFTP接続を行う

FTPでグラフィカルなUIでサイトの運営を行いたいものです。
ここでは、FileZillaを行います。Mac/Windows関係ないはずです。

AWSのEC2にアクセスしようとすると、SSHでもFTPでもやたらとpkkというファイル形式の話になりがちですが、RLogin+FileZillaであれば全てpemファイルで問題ありません。

適宜設定し、「接続」ボタンをクリックします。

なお、鍵ファイル(pemファイル)はこのように指定すればファイル一覧に表示されます。全てのファイルを表示でも問題ありません。
背景色はAWSのLOGOに合わせてOrangeにしてみました。

「OK」ボタンをクリック

「常にこのホストを信用し、この鍵をキャッシュに追加」は任意でチェックします。

FTP接続できました。

しかし、このcentosユーザはFTP上ではほぼ権限がなく、役に立ちません。
rootとkusanagiの両方でSFTP接続を行えるようにします。

先程のRLoginの画面より、

vi /etc/ssh/sshd_config

と入力し、Enterキーを押します。

ここの行にて、”root”ユーザのログインが無効なように設定されています。
この行をコメントアウト、つまり先頭に#マークを入れます。
viエディタの使い方に関しては若干慣れが必要ですが、テキストで説明します。

↓ボタンで49行目までカーソルを持っていきます。
aなどのキーを押すと、下に”– INSERT –“と白い文字が表示されます。
これはINSERTモードになってことを表しています。
49行目の先頭にカーソルを合わせ、#キーを入力します。
キーボード左上の”ESC”キーを押します。
:wq
上記の3文字を続けてを入力し、Enterキーを押します。
これで保存された状態です。

続いて、centosの鍵ファイルをrootでも使用可能なようにしておきます。

cp /root/.ssh/authorized_keys /root/.ssh/authorized_keys_bk
cp /home/centos/.ssh/authorized_keys /root/.ssh/authorized_keys

と続けて2回入力します。

cp: overwrite ‘/root/.ssh/authorized_keys’?

2行目は上記のように確認されるため、yキーを入力します。

service sshd reload

ここで、sshdを一度リロードします。

先程centos用に作成しておいたエントリを複製し、ユーザー名をrootに変更、鍵ファイル(pem)はそのままで、接続をクリックします。

これで、root権限でSFTP接続が可能となりました。
セキュリティ上推奨される方法ではありませんが、これでkusanagiのpemファイルを取得しやすくなります。
(先程のコマンドライン画面のroot権限SSH接続から、vim /root/kusanagi.pem で鍵情報を取得することも可能です)

/root/ディレクトリ上のkusanagi.pemをダウンロードした後は、必要に応じて先程の手順で PermitRootLogin no の先頭のコメントアウトの#をもとに戻し、再び禁止しておきます。

ここで、kusanagiアカウントによるSFTP接続が可能となります。
centosアカウントは不要なので、それを上書きしてkusanagi用にしてもよいのですが、上図では3つのアカウントでSFTP接続を可能にしたことを示すために残してあります。

(次の記事へ続く)

2019-01-13T18:25:12+00:002019.01.13|

About the Author:

弊社は台湾を拠点として、中国(北京、上海、広州、深セン)、香港、韓国などアジア各国のWEB関連会社と幅広いネットワークを形成するWeb制作会社です。高度なWEB技術と翻訳力をベースにWordPressなどのCMSを中心としたHP(ホームページ)作成やSEO、リスティング広告などWEB関連業務を幅広く請け負っています。