Wordpress

ファイアバード(スターサーバー)でwordpressのマルチサイト化をしてみた

wordpress
wordpress-logo

やり方が合っているのかはわかりませんが、Wordpressでマルチサイト化を見よう見まねでやってみました。

マルチサイト化の目的はmySQLの節約のためです。
というのも私が使っているサーバーのファイアーバードはmySQLを10個までしか登録できないので、マルチサイト化せずにサブドメインを作るとmySQLがすぐに足りなくなってしまうからです。
他にもやり方があるのかもしれませんが、私はこれしか知らないので備忘録もかねて書き残そうと思います。
途中難航しますが、同じトラップの方がいるかもしれないので、はしょらず書き残します。
同様の操作を行って不具合が出てもなんの責任も持てませんのであくまで参考に。

サイトをネットワーク化する

このやり方はネットにすでに上がっているので、検索してみてください。
わかりやすく説明してくれているサイトのリンクを貼っておきます。
参考サイト複数サイト運用方法(サブドメイン型)

サブドメインとサブディレクトリ型で悩む方もいるかと思います。
SEO的によさそうなサブディレクトリ型(例:example.com/sub1, example.com/sub2)にしたかったのですが、柔軟性が合っていいかなとサブドメイン型を私は採用することにしました(例:sub1.example.com, sub2.example.com)。

WordPressのマルチサイト化を終えたら、サイトにサブドメインを追加します。

サブドメインを追加する

wordpressの後、ファイアーバード側にもサブドメインを追加します。

sub_domain
add_site

ファイアーバードの管理画面に入ったらサブドメイン設定を開きます。

サブドメイン設定にあるタブの中のサブドメイン追加を選択しwordpressと同じように追加します。

これだけで終わってくれればどれだけ楽でしょう(笑)

データベースを確認する

database_set

次にファイアーバード内のデータベース設定を開きます。

開いたらデータベース設定のMySQL一覧から、データベース名権利設定ユーザーを覚えておきます。

mysql_data


権利設定ユーザーのパスワードも忘れていたら設定し直しましょう。

また同一ページの下にあるMySQL情報のMySQLホスト名もメモっておきましょう。

phpmyadmin_1
site_url_check

そしてデータベース設定のタブのメニューにあるphpmyadminよりデータベースにログインします。
そしてデータベース内のサブディレクトリの番号を確認します。
基本的にはdatabase(任意)_1, database_2のようにwordpress側で自動で割り振られていきます。

それらしい番号を確認したら、念のためoptionsの情報を確認します。

siteurlが追加したサブドメインと合っていたら正解です。

私はこれがわかっていなくて以前一度にいくつかサブドメインを追加して、データベースとの番号がぐちゃぐちゃになり解決するまでにかなり時間がかかりました。

WordPressをダウンロードする

wordpressを下記サイトからダウンロードします。

参考サイトWordPress インストール

ダウンロードしたら、圧縮データを解凍して中にあるwp-config-sample.phpを編集します。

wp-config-sample.phpの編集

wp-config-sample.phpを開いたら上記で調べたデータを記入します。

wp-config-sample

define(‘DB_NAME’, ‘database_name_here’);にはMySQL一覧で確認したデータベース名を入れます。

define(‘DB_USER’, ‘username_here’);

には権利設定ユーザーを入れます。

define(‘DB_PASSWORD’, ‘password_here’);には

権利設定ユーザーのパスワードを入力します。

define(‘DB_HOST’, ‘localhost’);にはMySQLホスト名をコピペします。

そして最後に、WordPress データベーステーブルの接頭辞を追加します。
$table_prefix = ‘wp_’;
の部分にphpmyadminで確認した数字を追加します。
例:$table_prefix = ‘wp_12_’;
(上記の画像の場合)

記入し終えたらwp-config.phpという名前にして保存します。

調べた通りに書き込んだのにうまくいかなかった場合は、メインドメインのwp-config.phpの内容と見比べてみるとわかり易いと思います。

アップデートする

私はファイアーバードではなくFTPソフトを使ってwordpressのデータをアップデートしました。
使っていない方はこれを機に使えるようにしておくと、とても便利です。
Macを使用しているのでCrossFTPというソフトを使用しています。
参考サイトCrossFTP Downloadページ
使い方はネットで検索すると出てくるので割愛します。

ftp_set
ftp_login

一応ファイアーバードで行う場合はFTPアカウント設定を開きます。
次にWebFTPのログインをクリックしてファイルマネージャーを開きます。
ここにできた新しいサブドメインのフォルダにwordpressのデータをアップデートします。
圧縮データでそのままあげられるのかと思ってみたらそのままフリーズしたので、一つずつ頑張ってあげていくことになるのでしょうか(汗)?。
やはりFTPソフトを使ってあげた方が良さそうです。
他にも方法があるようですがFTP以外やり方をしりません。

ちょっとした時は便利なので一応覚えておくと便利です。

確認

アップデートし終えたら確認をします。
メインのサイトからサブドメインのリンクからダッシュボードに入ってみるか、直接サブドメインに/wp-login.php/をつけてログインしてみましょう。
この時、URLがメインのサイトへリダイレクトしていたら何かがおかしいです。
データの確認や書き換えはファイルマネージャーのメモ帳みたいなアイコンからできます。

file_manager_1

よくみてみると私は接頭辞を間違えていました。

書き直して再度トライしてみます。

今度はログインができません。

ここから難航

.htaccessというデータがアップデートできていませんでした。
メインから引っ張ってきてコピーしようとするとファイルマネージャーだと別のデータに変わってしまいます。FTPだとコピーしてもデータが見つかりません。
私はMacだったのですが、うっかりこの前魔が差して不可視ファイルを非表示にしていたため、データが見えなかったようです。
不可視ファイルを表示したところ見えるようになりました。
参考サイトMacで不可視ファイルと不可視フォルダを表示、非表示する方法

アップロードしてみたところ、変化なしです。

firefoxからchromeに変えてみても変化なし。

.htaccesの記述をシンプルにしてみても変化なし。

参考サイトWordPressをマルチサイトに対応させる場合の注意点

サブドメイン/indexでページを見れるか確認したら見える。
直接サブドメインのURLを確認すると
「設定の反映待ちか、存在しないアドレスです。
しばらく時間を置いてから、再度アクセスをお試しください。」
とメッセージがでる。

ファイルマネージャーからサブドメイン内のindex.htmlを消してみたら表示された。けどダッシュボードには入れない。

試しに「パスワードをお忘れですか?」からメールアドレスを入力すると、そのメールアドレスのユーザーは登録されておりません。とエラーが。

メインのサイトのネットワーク管理者ページからユーザーを確認してみたらユーザーがいる。
ユーザーを新しく追加してもログインしない。

うーん。

一回寝てみよう。

一夜明けて

起きたら問題解決してないかなーと期待するも何も変化なし。

database_user

頭もスッキリしたので新たな気持ちで、
phpmyadminを確認したところ、データベースにあるはずのusersがない。

そりゃログインできないわけだ。
けれどもどうやったら作れるのだろう。

一から入れなおしてみます。
結果、同じ症状のままでuserは作られずじまいです。

delete_database
wordpress _instal

それでも諦めたらここでゲーム終了なので諦めません。
一度データベースから新しいサブドメインのために作られたデータをすべて選択し消し去ってみることに。(データベーステーブルの接頭辞が新しいものだけ、他のを消すと惨事になります)

消し去ったあとにサブドメイン/wp-admin/install.phpからwordpressのインストールをしてみます。

無事にインストールが終わりました。
ログインしてみると、無事にログインできました!!!!!
メインサイトからのリンクも問題なく稼働しました。

ひとまずこれで様子を見てみたいと思います。

後半からグダグダですし、きちんとした説明になっていませんが参考になれば幸いです。

COMMENT

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