KUSANAGIでサブディレクトリにWordPressをインストールする

普通のレンタルサーバーならサブディレクトリにWordPressをインストールすることは簡単にできますよね。

しかしVPS上で動作するKUSANAGIでサブディレクトリ化するには、ちょっと一手間加えてあげないとうまく動きません。

ちょうどConoHa VPS のサブディレクトリサイトを構築したので、手順をメモしておきます。

KUSANAGIでサブディレクトリ化する手順

ここからはVPSのコンソール、もしくはSSH接続してある状態を前提として説明していきます。

新規にプロビジョニングする

はじめに、サブディレクトリ以下に置きたいサイトをプロビジョニングします。

# kusanagi provision 【プロファイル名】

通常通りにコマンドを入力していき、DBユーザーやパスワードを設定していきましょう。

ホスト名はルートディレクトリにしたいドメインがいいと思います。

プロビジョニングが終わったら、まだアクセスせずにそのまま置いておきます。

アクセスしてしまっても、wp-config.phpが作成されてなければ(DBに書き込まれていなければ)セーフです。

サブディレクトリを作成

次にサブディレクトリサイトを置きたいプロファイルのDocumentRoot以下に、kusanagi権限のディレクトリを作成します。

# cd /home/kusanagi/【サブディレクトリを置きたいプロファイル】/DocumentRoot
# mkdir -m 0777 【サブディレクトリ名】
# chown kusanagi:kusanagi 【サブディレクトリ名】
# cd 【サブディレクトリ名】

ちょっと紛らわしいですけど、例えばプロファイルexamplesubというディレクトリを置きたいとすると、以下のようになります。

# cd /home/kusanagi/example/DocumentRoot
# mkdir -m 0777 sub
# chown kusanagi:kusanagi sub
# cd sub

サブディレクトリ名と、前項でプロビジョニングしたプロファイル名は一致している必要はありませんが、管理がめんどくさいので同じ名前にしておくといいでしょう。

WordPressをサブディレクトリに移動する

はじめにプロビジョニングしておいたWordPressを、作成したサブディレクトリに移動します。

移動方法はなんでも良さげですが、圧縮して解凍するのが体感速くて楽でした。

# tar zcf ./wp.tar.gz /home/kusanagi/【プロファイル名】/DocumentRoot
# tar xf wp.tar.gz

圧縮と解凍自体はわりと秒で終わるので、淡々とコマンドを打っていきましょう。

展開が終わったらゴミになった書庫ファイルを削除するのも忘れずに。

# rm -f wp.tar.gz

WordPressを初期設定する

ここまでできたら、ようやくWordPressにアクセスできるようになります。

ホストをexample.comとして、https://example.com/subにアクセスするとWordPressの初期設定画面が表示されます。

プロビジョニングの時に設定したデータベース名とパスワードなどを入力して、WordPressのインストールを実行しましょう。

この辺はすでにWordPressサイトを運営している方なら特に問題なく終わると思います。

サブディレクトリ化は残念ながらこれで完了、というわけにはいきません……。

このままだと管理画面とフロントページは問題ないのですが、パーマリンクやクエリが付くとルートディレクトリに飛ばされて404になってしまいます。

これをどうにかするために、Nginxの設定ファイルを変更しましょう。

Nginxの設定を変更する

URLに/sub/のようなサブディレクトリが付与されているけど、それに対してどう処理するかの記述がされていないために起こる不具合ですので、適切に分岐させてあげるよう設定します。

# vi /etc/nginx/conf.d/【ルートディレクトリのプロファイル名】_ssl.conf

ルートディレクトリのプロファイル名は、前項までの例でいうとexampleになりますね。

confファイルの編集に入ったら、INSERTモードでlocationディレクティブを追記してあげましょう。

location / {
  try_files $uri $uri/ /index.php?$args;
}

これの直後あたりに以下を追記します。

location /【サブディレクトリ名】 {
  try_files $uri $uri/ /【サブディレクトリ名】/index.php?$args;
}

ここまでの手順でようやくサブディレクトリのWordPressが正常に動作するようになります。

サブディレクトリ化したい時の別の選択肢

ここまで手順を書いてきましたけど、そもそもこんな面倒くさいことしなくてもサブディレクトリ化するだけなら別のアプローチもあるにはあります。

一つはWordPress標準のサイトネットワーク機能を利用すること。

KUSANAGIならWPマルチサイト構築がコマンド一発で出来た

ただしバグまみれ&サポートされていないプラグインも多いので、わりと茨の道だったりします。

もう一つは経験豊富な専門家に依頼すること。

KUSANAGI設置代行サービスなどがありますので、こういった業者さんを利用するのもアリでしょう。

そして最後に、いっそKUSANAGIを諦めてConoHa WING のようなレンタルサーバーに移行してしまうなんてのも選択肢の一つだとは思います。

ConoHa WINGのWordPressかんたん移行の手順

WINGも十分過ぎるほど爆速です。

さいごに

KUSANAGIのサブディレクトリ化についての記事を書きましたが、特にNginx周りの設定は少しでも書き方を間違えると同じKUSANAGI上のすべてのサイトが死にます。

あまり無理をせず、難しそうならサブディレクトリを諦めるか安全策を選ぶようにしてください。
マジで責任取れませんからね……。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です