先日、ConoHa WINGのレンタルサーバーとWordPress5環境で、「サブディレクトリ型」のマルチサイト化を行ってみた。新たに「マルチドメイン型」でサイトネットワークを構築する際、いくつかはまったポイントがあるので報告しようと思う。
ここで紹介する方法は、基本的にこちらのサイトで紹介されているエックスサーバー向けの手をConoHaに置き換えたもの。
「シンボリックリンクの設定」という作業が肝だが、事前にサーバの管理画面でアカウントをつくっておく必要がある。設定すべきリンク先も、public_htmlでなく元ドメインのディレクトリになる。
サブドメインの設定
下準備として、ConoHa WINGのサーバ管理画面から任意のサブドメインを設定しておく。サーバー管理>ドメイン>右上+ボタンから新規追加>サブドメインを追加、文字列設定、無料独自SSLの使用可否を選択、という流れでOKだ。
ここまでは特に問題なく、数10分~数時間程度でサブドメインの設定が反映される。うまくいくと、ほかのドメインと同じく、サーバ内にサブドメイン名のディレクトリが自動生成される。
そしてWordPressのマルチサイト化にあたっては、このサブドメイン名ディレクトリを使わないというのがミソだ。
WordPressのサイトネットワーク設定
次に、WordPressの管理画面で既存サイトをネットワーク化する。
基本的にはサブディレクトリ型と同じ手順で、wp-confing.phpの1行追加>「ネットワークの設置」で「サブドメイン」を選択>wp-config.phpと.htaccessの書き換え>新規サイトの追加、という流れで済む。
途中、「WordPressサイトネットワークの作成」という画面の冒頭で、以下のエラーメッセージが表示されると思う。
注意 ! ワイルドカード DNS が正しく設定されていない可能性があります。
インストーラーはこのドメイン上のランダムなホスト名 (○○○.△△△.□□□) への接続を試みました。 その結果、このエラーメッセージが返されました: cURL error 6: Could not resolve host: ○○○.△△△.□□□
サブドメインの設定を行うには、DNS にワイルドカードを追加する必要があります。たいていの場合、お使いの Web サーバーに向けた * ホスト名レコードを DNS 設定ツールで追加することになります。
サイトを使い続けることはできますが、作成されたサブドメインはアクセスできないようです。もし DNS が正しく設定されているなら、このメッセージは無視してください。
とりあえず無視して作業を進めることはできる。しかし新規サイトを追加しても、ウェブページ・管理画面ともForbiddenかNot Foundというエラーメッセージが出てしまう。
これは前回、サブディレクトリ型のサイトネットワークを構築した際、自分でフォルダを作っておいたらForbiddenが出た状況と似ている。
SSHアカウントを作成して接続
対策としては、先に自動生成されたサブドメイン名のディレクトリを削除するかリネームする。そして元ドメインのディレクトリに「シンボリックリンクを張る」という作業で解決できる。
シンボリックリンクを設定するには、サーバーにSSH接続してコマンドを打つ必要がある。ターミナルソフトは、WindowsであればTera Termなどが無料で利用できる。
下準備として、ConoHa WINGの管理画面からSSHアカウントをつくっておく必要がある。手順はこちらの公式マニュアルに詳しく書かれている。サーバー管理>SSHから右上の「+ SSH Key」ボタンを押して、ネームタグ設定、プライベートキーのファイルダウンロードまで行う。
Tera Termを使う場合は、SSHアカウント作成後の画面に表示された、ホスト名、ポート番号、ユーザー名でログインする。
SSH認証のパスフレーズには、先ほど管理画面で設定した「ネームタグ」が相当するので注意。あとは秘密鍵に、ダウンロードしたプライベートキーのファイル(拡張子.pem)を割り当てれば接続できる。
シンボリックリンクの設定
サブドメインから元ドメインのディレクトリにシンボリックリンクを張る。ConoHa WINGの場合、以下のようなコマンドを打てばうまくいくはず。
ln –s /home/アカウント名/public_html/元ドメイン /home/アカウント名/public_html/サブドメイン
llもしくはls -laというコマンドで設定結果を確認できる。
サブドメイン -> /home/アカウント名/public_html/元ドメイン
となっていればOKだ。
もし間違ったら、いったんunlinkコマンドでシンボリックリンクを削除してからでないと、再設定できなかった。unlinkは引数を間違うと、rmのように対象ファイルを削除してしまう危険があるので注意。
リンク設定がうまくいけば、WordPress管理画面で設定したサブドメインのサイトが、無事に見られるようになる。
サイト転送、DNS編集は必要なし
ConoHa WINGの管理画面、サイト管理>基本設定>サイト転送からディレクトリの転送もかけられる。ただしこれは301リダイレクトなどに相当するので、試してみたがマルチサイトのエラーには効かなかった。
また、WordPressの警告どおり「ワイルドカードDNS」が必要かと思い、ConoHaのDNS画面で「*.ドメイン名」とレコードを設定してみた。しかしサブドメインの生成時に、すでに共通のIPアドレスを向くようDNSレコードが設定されていたようだ。これもマルチサイトのエラー対策としては効果がなかった。
なお、以前使っていたバリュードメイン系XREA、コアサーバー、バリューサーバーのサービスでは、サーバの管理画面の「ドメインウェブ」から、シンボリックリンクのような設定ができた。これらのサービスでWordPressをサブドメイン・マルチサイト化する際には、本記事のようにコマンドを打つ必要はないかもしれない。