色々あってサーバーがぶっ飛んだときに再構築できるように、KUSANAGI構築した際の手順を記事にします。
- これからKUSANAGIを構築する人
- アプリケーションインストールの吊るし状態は怖い人
- サーバーをぶっ壊した未来の僕
最低限の安心のため、ちょっとめんどくさい手順を踏んでいきます。
この記事のコンテンツ
サーバーの準備
ConoHa VPSの契約がまだの人はこちらから登録しましょう。
まずはサーバーの立ち上げから。
ConoHa VPSの管理画面からGUIで操作できます。
アプリケーションインストール→WordPress(KUSANAGI)と選ぶだけで構築できるので簡単ですね。
Macならターミナルで次のコマンドを打てばSSH接続できます。(秘密鍵を設定しなかった場合は-iオプションは不要です)
$ ssh -i 【秘密鍵のパス】 root@【サーバーのIPアドレス】
ConoHaの管理画面からコンソールで接続できますが、後々の作業でダルくなるのでMacならターミナル、WindowsならTeratermなどを使っての作業をオススメします!
立ち上がったサーバーにrootユーザーでSSH接続したら、とりあえずyum updateしておきましょう。
# yum update kusanagi -y
# yum --enablerepo=remi,remi-php56 update -y
結構時間かかるので気長に……。
デフォルトのホスト名がkusanagi〇〇で気持ち悪いので、変更しておきたいですね。
# vi /etc/hostname
INSERTモードでkusanagi〇〇の部分を手持ちのドメイン名にでもしておきましょう。
ここまで終わったらサーバーを再起動します。
# reboot
# shutdown -r now
上記どちらかのコマンド、もしくはConoHaの管理画面から再起動したらよいでしょう。
続いて、作業用のユーザーを作成していきます。
SSH周りの設定
セキュリティ的な面も考えて、rootでのSSH接続を拒否しておきたいです。
接続のプロセス的にはSSHログイン用のユーザー→rootみたいな流れを想定。
SSH接続用のユーザーを追加
以下のコマンドでユーザーを追加します。
# useradd -m 【ユーザー名】
続いてこのユーザーのパスワードを設定。
# passwd 【ユーザー名】
新しいパスワードを訊かれるので、強固なのを設定。
ユーザーを追加できたら、sudo権限のあるwheelグループに追加します。
# usermod -G wheel 【ユーザー名】
これで追加したユーザーがsudo権限を持ちました。
鍵ファイルを作成
追加したユーザーに切り替えて作業します。
# su 【ユーザー名】
ユーザーのディレクトリに.sshを作成し、その中に秘密鍵を保管しましょう。
$ cd ~
$ mkdir .ssh
$ chmod 700 .ssh
$ ssh-keygen -t rsa
カレントディレクトリ(作成した.ssh/)にid_rsaが作成されます。
パスフレーズを設定したら控えておきましょう。
公開鍵の名前を変更し、ログインユーザーだけが扱えるようパーミッションを設定します。
$ chmod 600 id_rsa.pub
$ mv id_rsa.pub authorized_keys
次に秘密鍵の中身をコピーして、ローカルに.pem拡張子で保存しましょう。
この時、ローカルの秘密鍵もパーミッションを600に設定しておかないと、後々SSHログインする時に怒られるので注意。
SSH接続用のポートを設定
ここからは再びrootユーザーでの作業になります。
$ exit
rootユーザーになったら、下記コマンドでsshの設定ファイルを編集します。
# vi /etc/ssh/sshd_config
ファイルが開いたら、各種設定を変更していきます。
- STEP
Portがコメントアウトされていたら外し、値を変更したいポート番号にする。
Port 61000など
- STEP
Protocol 2がコメントアウトされていたら外す。
- STEP
PermitRootLoginの値をnoに変更する。
- STEP
PubkeyAutenticationがコメントアウトされていたら外し、値をyesにする。
- STEP
PasswordAutenticationがコメントアウトされていたら外し、値をnoにする。
設定を変更したら上書きして編集を抜け、再起動します。
# systemctl restart sshd.service
ここまでできたらSSH周りの作業は完了です。
次回以降、秘密鍵を使用して追加したユーザーでのログインが必須になります。
KUSANAGIの設定
rootユーザーでログインしたら、KUSANAGIの設定に入ります。
初期設定
# kusanagi init
ずらーっとログが流れ、対話式で設定が開始されます。
訊かれる項目は次のような感じ。
- タイムゾーン
- 言語
- キーボードの配列
- kusanagiユーザーのパスワード
- kusanagiユーザーの秘密鍵パスフレーズ
- サーバーのミドルウェア(Apache / nginx)
- アプリケーションタイプ(PHP7 / PHP5 / HHVM)
- DBシステム(MariaDB / PostgreSQL)
- DBのrootパスワード
答えていくだけなので簡単ですね。
一通り入力が終わると、KUSANAGIの初期設定が終了します。
プロビジョニング
初期設定が終わったら、プロビジョニングです。
ここでプロファイルを作ってあげることで、ようやくWordPressなどを公開できるようになります。
# kusanagi provision 【プロファイル名】
デフォルトではWordPressが指定されていますが、オプションを設定することでいろんなアプリケーションをプロビジョニングすることができます。
余談ですが、便利そうなのがLAMP/LEMP環境だけを用意してくれるオプション –lamp。
そのうち使うかも。
プロビジョンコマンドを実行すると、対話式でプロファイルが作成できます。
こちらも訊かれたことに答えていくだけなので迷うことはないと思います。
プロビジョニングが完了したら、設定したホストにアクセスして確認しましょう。
WordPressならそのまま初期設定に進むといいと思います。
SFTPの設定
サーバーの立ち上げとプロビジョニングが終わったところで、ファイル転送アプリなどでの接続設定が必要になってきます。
SFTPで接続するには鍵ファイルが必要になってくるので、サーバーから取得してあげましょう。
/root/kusanagi.pemの内容を出力して、ローカルに保存します。
保存した鍵ファイルをFTPクライアントなどに登録して、kusanagiユーザーで接続するように設定してあげればOK。
おまけ
今時はSEOの観点からも常時SSL化は必須です。
KUSANAGIなら、コマンドを一発叩くだけで常時SSL化できるのでやっておきましょう。
データベース管理をしやすくするために、phpMyAdminの導入もしておいた方がいいでしょう。
KUSANAGIにphpMyAdminを導入する方法はこちらの記事をご覧ください。
サブドメインやサブディレクトリで複数のWordPressを運用したい方は、こちらも併せてご確認ください。
さいごに
かんたんKUSANAGIでお手軽に構築できるようになった今、この記事がどれだけ需要があるのだろう……。
少なくともサーバーの再構築が必要になった時には役に立つはずなので、未来の僕がサーバーをぶっ壊してくれることに期待します。
サーバーぶっ壊れたらこの記事読めないじゃん。