複数のドメインで複数のWordpressサイトを一つのレンタルサーバーで立ち上げる方法について
レンタルサーバーを借りて一年後に新たにドメインを取得してネームサーバー の設定をして取得したドメインに新たにwordpressをインストールしたんだが、反映されていない。。。どころか、新たに取得したドメインが最初に取得したドメインのサブドメインになっていて、wordpressをインストールした新しいドメインにアクセスすると最初に取得したドメインのサイトが表示される。
単に新しく取得したドメインにwordpressをインストールすればサイトがたち上がると思っていたのだがそうは問屋が降ろさなかった。
ど素人ながら。色々試行錯誤しながらwordpressの複数サイトの設定ができたので共有したいと思う。
まず参考にしたのがこのブログ。このブログ記事に書かれている内容をそのまま実行すれば、問題がなければ複数サイトは稼働するが、所々問題が生じたためその解決法も合わせて備忘録として書いていく。
マルチサイトの基本的な考え方
マルチサイトの基本的な考え方は、ワードプレスネットワークによって現在所有している複数のサイトが管理されるといった感じです。言い換えると。ワードプレスネットワークの配下に現在所有しているサイトが設置されている感じです。
マルチサイトの設定はWordpress network adminをwordpressのメインサイトに設定することです。上に掲載したスクリーンショット画面はWordpress network admin の管理画面です。こちらの管理画面が基本サイトを通じて追加されれば、新しく取得したドメインでwordpressのサイトを追加できるようになる。
マルチサイトの設定をするとダッシュボード上部のMysitesにWordpress network adminのメニューが現れるようになる。
この記事ではすでに特定のドメインをサーバーに設定してwordpressをインストールし、一つのwordpressサイトを立ち上げていることを前提に説明をする。
設定ファイルの編集
サーバーのファイルマネージャー、もしくはFTPソフトを利用してpublic_html ディレクトリ内にあるwp-config.phpをダウンロードし、以下のコードを書き加え、アップロードする。
define(‘WP_ALLOW_MULTISITE’, true);
するとツールにネットワークの設定という項目が追加される。そこをクリックしてネットワークの設定を行う。
ネットワークの設定にアクセスするときにwordpressのバージョンを更新していないと以下のエラーが発生する。
Because your install is not new, the sites in your WordPress network must use sub-domains. The main site in a sub-directory install will need to use a modified permalink structure, potentially breaking existing links.
この場合は、「外観」→「テーマの編集」からfunctions.phpを選択し、以下のコードを加える。
add_filter( ‘allow_subdirectory_install’,
create_function( ‘’, ‘return true;’ )
);
全てのプラグインを無効化する
メインサイトで使用している全てのプラグインを無効化にする。
ネットワークの設定
参照:テンプレートキング
サブドメインを選択、ネットワークのタイトル、管理者のメールアドレスを設定しインストールをクリックする。
ネットワークの有効化
インストールをクリックするとこちらの画面に切り替わるので指示された内容を順番に行う。
ここでやるべきことは3つ。wp-config.php そして.htacessの両ファイルに示されたコードを追加し、Wp-contentにblogs.dirという名前でディレクトリを追加する。
wp-config.phpファイルを編集しアップロード
以下のコードを貼り付ける
define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, true);
define(‘DOMAIN_CURRENT_SITE’, ‘hanko-seal.com’);
define(‘PATH_CURRENT_SITE’, ‘/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);
.htacessファイルを編集しアップロード
# BEGIN WordPress
<IfModule mod_rewrite.c>
ここに以下のコードをコピペする
</IfModule>
# END WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ — [L]# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ — [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
blogs.dirディレクトリを加える
public-htmlの配下のwp-contentディレクトリの中に新しくファイルを作成しblogs.dirと名前をつけて保存する。ファイルパーミットは757に設定。
.htacessが見つからない場合
サーバーによってはファイルマネージャーからは見つからない場合があるので、FTPソフトをダウンロードする。FileZillaダウンロード
ホスト名、ユーザー名、パスワードを設定しサーバーとの接続を確立する。ホスト名、ユーザー名、パスワードについてはサーバーを契約したときにまとめて情報がメールで送られてきているはず。
.htaccessはpublic_html ディレクトリ内にある。これをダウンロードしてエディターで編集するんだが、MCOSの場合は.htaccessファイルが現れない場合がある。その場合は、ランチパッドからターミナルを開き以下のコードを入力する。
defaults write com.apple.finder AppleShowAllFiles true
エンターしさらに以下のコードを加える
killall Finder
これで.htacessファイルが現れるようになる。
またFilezillaから直接エディターを起動し編集もできるので試してほしい
右クリックメニューの「表示/編集」をクリックすると自動的にエディタが立ち上がるのでそこに直接編集してアップロードすれば手軽だ。
Wordpress network adminでの設定
再度ログインし上部のマイサイトからメニューに追加された「サイトネットワーク管理者」をクリックする。
「設定」→「ネットワーク設定」を選択する。
ネットワーク設定画面の「言語設定」で「日本語」を選択し、「変更を保存」をクリックする。
サイトを追加する
WordPress管理画面の「サイトネットワーク管理者」から、「サイト」→「新規追加」を選択。
新規サイトの追加画面でサブドメインやサイトのタイトル、管理者メールアドレスを入力し、「サイトを追加」をクリックする。
参照:テンプレートキング
この段階ではメインで利用しているドメインのサブドメインを入力する。
例:abcd.efg.com = efg.comのサブドメイン (abcd.comで新たにドメインを取得した場合、サーバー場で最初に取得したefg.comのサブドメインabcd.efg.comが設定される)を入力する。
プラグインのインストール/設定
ネットワーク管理者の管理画面からメニュー「プラグイン」を開き、「WordPress MU Domain Mapping」をインストールし有効化する。
プラグインが正常にインストールされると、「サイトネットワーク管理者」の「設定」メニューに「Domain Mapping」と「Domains」という項目が追加される。
そしたら、ファイルマネージャーかFTPソフトを使ってディレクトリを辿りwp-content/plugins/wordpress-mu-domain-mapping からsunrise.phpのファイルをコピーして、public-htmlの配下にあるwp-contentディレクトリ内にコピーしたファイルを置く。
次にpublic-html 内にあるwp-config.phpに次のコードを追加する
define( ‘SUNRISE’, ‘on’ );
ドメインの設定
WordPress管理画面の「サイトネットワーク管理者」から「設定」→「Domains」を選択する。
「Domain Mapping」画面の「New Domain」項目で以下の情報を入力し、「Save」をクリックする。
「Site ID」欄にサイトのIDの番号を入力する。サイトIDはサイトを追加した際に付与れるもの。現在のメインサイトを「1」として次に追加したサイトは「2」というID番号が振られる。
ブログID を明示的に管理画面に示すこともできる。こちらのブログでやり方を紹介しているが、まずネットワーク管理者のテーマエディターのfunctions.phpファイルに次のコードを入力する。
get_current_blog_id()
すると
こちらの画面においてドメインの横にIDが表示されるようになる。
次に、新たに取得したドメインを入力し、保存をクリック。この段階ではまだ新しいドメインにwodpressがインストールされていないので、新しいドメインのリンクをクリックしても画面上に何も表示されない。
レンタルサーバーから新しく取得したドメインを選択しwordpressのインストールを行う。
以上がwordpress マルチサイトの設定方法。 この設定に丸二日かかった。余談だが、海外のレンサバだとワンクリックでマルチサイトの設定をできるみたいなのでそちらを使ってみてはいかがだろうか。英語ができることが必須だが、サポート体制は日本と比較にならないほど優れてる。色々サーバーを借りて試したが今の所Fastcometが最強かもしれない。