昨日からいろいろと引越し作業をしているのですが、複数のサイトを1個のドメイン内に階層構造にしようとしたところハマった部分があったのでメモしておきます。すべてワードプレスのサイトです。
https://bey.jp/ ←メインサイト https://bey.jp/sub1/ ←サブサイト https://bey.jp/sub2/ ←サブサイト このように既存のメインサイトの下にディレクトリを作っていくつかのサブサイトを引越ししてみます。
Contents
ワードプレスのサイトまるごとコピー
サブサイトをメインサイトのサーバーにコピーします。 サブサイトがメインサイトと同じ場合は特にコピーしなくてもOKです。 今回は、2つのCoreserver間でお引っ越しやってみました。
メインサイトのサーバー管理画面に入って、「サーバー間コピー」のページを表示します。 サブサイトが置いてあるコピー元サーバーの情報を記入していきます。
- FTPユーザー名:サブサイトのサーバー管理画面の左上「管理メニュー」の下に書いてあるID:●●の部分
- FTPパスワード :サブサイトのサーバー管理画面 「FTP設定」の画面にあります。
- FTPサーバー名:▲▲.coreserver.jp ▲の部分はサブサイト管理画面「項目の説明・仕様」の画面の「サーバー名」の部分
- リモートディレクトリ: コピーするサイトのディレクトリ 例:/public_html/subsite.com
- ローカルディレクトリ:メインサイトのサーバーに置くディレクトリ 例:/public_html/bey.jp/sub2 など、この時指定したディレクトリが無い場合はコピーされません!予めディレクトリを作っておきましょう。
WPのデータベースダンプ
サイトのコピーと同時にサブサイトのデータベースもダンプしておきます。 phpMyAdminにログインします。CoreserverでphpMyAdminにログインするには、
データベース画面表示 Coreserver管理画面 左メニューの上記の位置にあります。
データベースのページの下のほうにphpMyAdminのログインリンクがあります。 phpMyAdminを開いてエクスポート画面ですべてのテーブルをダンプしましょう。
メインサイトのサーバーにMySQL DBを作成してインポート
ダンプができたらメインサイトのCoreserver管理画面のログインしてMySQLのデータベースを作成します。 MySQLの追加・編集のところのIDとパスワードと記入して、文字コードはUNICODEにします。作成ボタンを押せばデータベース作成完了 つぎにphpMyAdminにログインして
インポートのページでサブサイトでエクスポートしたファイルを選んで実行するとテーブルがすべてコピーされます。
2つのファイルの設定をFTPでする
サブサイトがメインサイトの下にコピーできたらFTPクライアントやWinSCPとかでメインサイトのサーバーにログインして/public_html/bey.jp/sub2 ←サブサイトを新しく置く場所 こちらに行きます。 WinSCPでログインしました。こんな感じに新しく設置するサブサイトのファイル郡が表示されます。
サブサイトのwp-config.phpの設定
session.save_pathがある場合は以下も変更
1 |
ini_set("session.save_path", "/virtual/ユーザー名/public_html/bey.jp/sub2/session"); |
新たに作ったデータベースのデータベース名、IDとPass
1 2 |
define('DB_NAME', 'ユーザー名_sub2');</code> <code>define('DB_USER', 'ユーザー名_sub2'); define('DB_PASSWORD', 'パスワード'); |
サブサイトの.htaccessの設定
ここが今回ハマったところです! パーマリンク設定でカスタム構造を選択した場合は注意が必要です。
ワードプレス管理画面 設定>パーマリンク設定の画面 この状態の時に、サブサイトのトップは表示できますが、ページがうまく表示されない場合があります。
https://bey.jp/sub2 ←正常に表示される。
https://bey.jp/sub2/sample-page ←表示されない!
僕の場合は404ではなくメインサイトの「条件に合う投稿はありませんでした。」表示されてしまいました(汗)
いろいろ探して解決したのでメモしておきます。
ワードプレスのデフォルトでは以下のようになっていると思います。
1 2 3 4 5 6 |
# BEGIN WordPress </code> <code><IfModule mod_rewrite.c> RewriteEngine On</code> <code>RewriteBase /</code> <code>RewriteRule ^index\.php$ - [L] </code> <code>RewriteCond %{REQUEST_FILENAME} !-f</code> <code>RewriteCond %{REQUEST_FILENAME} !-d </code> <code>RewriteRule . /index.php [L]</code> <code></IfModule> # END WordPress |
上記を以下のように変更
1 2 3 4 5 6 7 8 |
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On</code> <code>RewriteBase<span style="color: #3366ff;"><span style="color: #000000;"> /</span>sub2/</span></code> <code>RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .<span style="color: #3366ff;"><span style="color: #000000;"> /</span>sub2/</span>index.php [L] </IfModule> </code> <code># END WordPress |
青い部分が追加されたところです。
「sub2」は新しくサブサイトを設置したディレクトリ名です。
もしかしたら自動でワードプレスが変更したかもしれませんが一応チェックしてみてください。 これをやらないとパーマリンク設定のリンクの仕方だと正常に表示されないと思います。
パーマリンク設定での不具合 他のやり方
http.confに追加などという記事もあったがそもそもCoreserverはDirectoryはいじれない仕様なのでちょっとこれは変更できませんでした。
他のサーバーでは有効かもしれません。
1 2 3 |
<Directory "/server/public_html/bey.jp/sub2"> AllowOverride All </Directory> |
これをhttpd.confの下のほうに追加すれば良いようです。未確認
データベースを修正


searchreplacedb2.phpです。これをそのままサブサイトのディレクトリにアップロードします。
例: /virtual/ユーザー名/public_html/bey.jp/sub2
こんな感じです。
そしたらサブサイトのsearchreplacedb2.phpにブラウザからアクセスします。 例:https://bey.jp/sub2/searchreplacedb2.php
最初にこんな画面がでますので「Submit」を押します。
次の画面ではデータベース情報が自動で表示されますので確認してください。
次もテーブルの確認です。確認したらContinue
最後に変更点を記入します。
- Search for :以前のドメイン名 例:hogehoge.com
- Replace with:新しいサイトの場所 例:bey.jp/sub2
間違わないように確認してくださいね。 終わったらSubmit Search stringボタンを押します。
成功すると上記のように表示されます。
ただ、成功してもたまに全部の設定を変更できてない場合もありますのでサイトを確認しておかしい?と思ったら再度実行してみてください。
旧ドメインサイトをリダイレクト
引越し先のサイトが正常に表示・稼働を確認できましたら旧ドメインのサイトを301リダイレクトします。
.htaccessを以下のように変更してアクセスをすべて301リダイレクトで引越ししたことを伝えで同時に新しいサイトに飛ぶようにします。
1 2 3 4 |
<IfModule mod_rewrite.c> RewriteEngine On</code> <code>RewriteCond %{HTTP_HOST} ^(旧ドメイン\.com)(:80)? [NC] </code> <code>RewriteRule ^(.*)$ http://<span style="color: #99cc00;">bey.jp</span>/<span style="color: #3366ff;">sub2</span>/$1 [R=301,L] </code> <code></IfModule> |
久しぶりにサーバーとかいじってかなり楽しい・・・
やっぱりオタクですね(^_^;) たまにいじるから良いのかもしれませんが、いろんな便利なツールがでてきて手間なくできるようになったのは嬉しい限りです。
コメント