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

3 min

普通のレンタルサーバーならサブディレクトリに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設置代行サービスなどがありますので、こういった業者さんを利用するのもアリでしょう。
僕もエンジニアとして事業を行っておりますので、お問い合わせやTwitterのDMからご相談ください。

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

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

さいごに

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

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

未経験からITエンジニアになりました!

今までは趣味としてプログラミングを独学してきたけど、やっぱりこれを仕事にしたい……!

そう思い立ったはいいものの、世間の情勢などもあり未経験でのエンジニア職の中途採用が絶望的な状況

大手転職エージェントを通して何社も面接を受けては落ちてを繰り返し、諦めかけていたのですが……。

気分転換で登録した転職サービスで、とある企業から内定をいただくことができました

同じように未経験からITエンジニアを目指している方へ、どんなに厳しくても可能性がゼロではないことを伝えたい。

ポイントは、IT業界に精通した転職サービスを利用すること。
これだけで少なくとも面接へ進める可能性がグッと高くなります。

あなたがもしIT特化の転職サービスに未登録で苦しんでいるなら、ぜひ利用してみてください。きっと可能性が広がりますよ!

\無料のIT系転職サービス/

はるしか

はるしか

ゲーム・漫画・クルマ・ガジェットなど多趣味な雑食系。
モノづくりが楽しくてプログラミングをポチポチしてたら本業エンジニアになってしまったASPの中の人。
動物占いは子鹿。
忘れっぽい自分へのメモ代わりの記事が多めです。

FOLLOW

カテゴリー:
タグ:
関連記事

2 件のコメント

  1. お聞きしたいのですが、
    現在運用しているサイトのプロファイル名が「aaa_html」だった場合、
    以下のような設定でいいのでしょうか?
    # kusanagi provision 【aaa_html】
    # cd /home/kusanagi/aaa_html/DocumentRoot

    よろしくお願いいたします。

    • 佐々木さん、コメントありがとうございます!

      aaa_htmlがプロファイル名の場合はコマンドは下記のようになります。

      # kusanagi provision aaa_html
      # cd /home/kusanagi/aaa_html/DocumentRoot

      記事内にて記載しているプロファイル名などは、角かっこ(【】)までが置換対象になっております。
      実際のコマンドやファイル名に角かっこは含めないようにしてください。

      Nginxの設定ファイルを触る内容となっておりますので、一つ間違えると親ディレクトリのサイトまで表示されなくなったり等リスクがあることをご承知おきください。
      不安だったりよくわからない場合は記事後半の別の選択肢も検討いただけると安心かなと思います。

コメントを残す

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