WordPressでマルチサイトを強制的にサブディレクトリで作ってみた

WordPress/マルチサイト
  1. ホーム
  2. WordPress
  3. WordPressでマルチサイトを強制的にサブディレクトリで作ってみた

備忘録:

まる2日かかってなんとか形になったっぽいのでメモしておく。

サブディレクトリとして台本サイトなんかを作ってきたのだけれど、色々ログインして切り替えないと行けないのがなんとも非効率。

台本サイトで編集しながらメインサイトを編集したりとか、会員登録してくれているリスナーさんが別サイトでログインする時に(メインサイトで会員登録して、IDとかは台本サイトにも引き継がれる設定にしてある)

実質べつのサイト扱いになるので、IDやらパスワードを再入力しないといけない。

そこで、一度ログインしたらサイト跨いでログイン維持できないのかなぁというところでマルチサイト化して会員プラグインで連動できないかなぁというのが最初。

最終結果:

3年ほど経ったホームページをマルチサイト化。サブドメインでしか作成できないところをwp-configと.htaccessを編集することでサブディレクトリ型で作成することができた。

前提:

tabemonoradio.comではXserverで、Wordpressを使用している。会員システムはPayid Membership Pro。
使用PCはMacbook。

紆余曲折:

当初はtabemonoradio.comのWordPressをマルチサイト化し、サブドメイン(books.tabemonoradio.com等)の型で作成を試みた。

サブドメインによる子サイトはできたが、SSL証明がなぜかtabemonoradio.comではなく*.xserver.jpという謎挙動を修正しきれずサブドメインでの子サイトの作成を断念。

(サブドメインを正確に設定できてからは12時間ほどなのでもう少し待ったらSSL認証は改善されたかもしれない。)

  1. マルチサイト機能をオンにした。(wp-configにmultisiteの項目を追加し、trueに)
  2. マルチサイト機能が動かず、サイトIDの競合があるとの調べだったので、phpAdminでwp_siteの中のidを当初は2だったので、1に変更。無事にインストールできた。(多分普通に作っていればここは1のままのはず)
  3. インストール後、「サイトネットワークの設置」の手順で実行。.htaccessの修正部分はWordpressの内部だけ。
  4. 再度ログインを行い正常稼働。
  5. 新規サイトの追加からbooks.tabemonoradio.com、sounds.ta….のサブドメインを3つ追加。
  6. サブドメインを確認すると表示されない・・・(調べたらXserverでサブドメイン作らないといけなかった)
  7. Xserverにてサブドメイン作成。books.tabemonoradio.comの場合、サブドメイン作成時にフォルダ名がbooksになるか、books.tabemonoradio.comになる。
  8. このままではサブドメインと紐づいているフォルダが上記のフォルダになってしまい、マルチサイトWordPressでは認識できないので、SSHを使い、シンボリックリンクを作成。
  9. サブドメインの参照フォルダをbooks.tabemonoradio.comから/(カレントフォルダ)に変更。
  10. 無事表示される
  11. サイト設定からhttpをhttpsに3サイトとも変更。
  12. 正常に動作はするが、サブドメインのSSL証明がエラーでchromeからだと危険サイト扱い。ただ、メインドメインのSSLは正常。
  13. SSL証明を調べると、サーバーのアドレスが一致しない(tabemonoradio.comになるはずが*.xserver.jp)
  14. SSL証明の再発行、キャッシュやスマートフォンからも接続を試したがすべてエラーのまま。
  15. あれこれ試みるが原因不明。
  16. 諦めて、サブドメインからサブディレクトリ型のマルチサイトを作ることに。
  17. サブドメインで作成したサイトは全て削除。
  18. WordPressのサブディレクトリ型マルチサイトのwp-configと.htacess設定をwordpressの引っ越し記事より見つける。
  19. 差異を見比べて設定。
  20. サブディレクトリ型はwp-configと.htacessのみの編集であっさり動作した。

紆余曲折のなかの追加メモ

8について

SSH接続メモ

Mac(Macbook)からXserverのSSH接続する方法はここ
http://vdeep.net/xserver-ssh

上記を作成後、再度接続する場合はターミナルで、cd ~/.sshに移動後、ssh xsr で接続。

xsrファイルを修正する場合はvi configで開いてiで入力モードに。

:wqで保存(write)して終了(quit)。

シンボリックリンクについて

SSH接続後、Xserverの場合、cdでtabemonoradio.comのpublic_htmlフォルダに移動。

そこで、シンボリックリンクを作成する。

作成方法は下記を参考にした。

https://tecchan.jp/entry/200609-wpmulti

作成コマンドはln -s

ちなみにln -f で変更できる

ln -s /サブドメインリンク先/ /サブドメインリンク元/
↓
ln -s /home/アカウント名/tabemonoradio.com/public_html/ /home/アカウント名/tabemonoradio.com/public_html/books.tabemonoradio.com

の形式で作成できた。(サブディレクトリ型に変更したので必要なくなったから後で消さないと)

▼LINK:lnコマンドの一覧サイト
https://atmarkit.itmedia.co.jp/ait/articles/1605/30/news022.html

20の設定について

以下はマルチサイトのサブディレクトリ型のwp-configの設定
全部を記入したというより、SUDOMEINの項目をtrueからfalseに変えただけ。

define( 'WP_ALLOW_MULTISITE', true );

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'tabemonoradio.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

以下はマルチサイトのサブディレクトリ型の.htaccess設定。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

正直、DBの日付を今日に変更するとかしないといけないとかなぁと思っていたので、拍子抜け。ただ、マルチサイトの構成お知らせ部分はまだサブドメイン型だと思ったままのため、不具合がないか少し不安は残る・・・
上記の内容を参考にした記事はここ。
https://www.vektor-inc.co.jp/post/multisite_iko/

次の作業予定

既存のシングルサイトからデータを抽出して、マルチサイトの子サイトとして統合していこうと思います。

参考にする予定のページは下記の記事

https://weback.net/wordpress/1587

著者

mlabo

1990年生まれ。小学5年でホームページづくりにハマり、中学で結婚式のスライドショー作りにハマる。その後、趣味の延長で高専(工業高等専門学校)に入学卒業。地域商社でSNS発信や六次化、観光業、通販、広告写真撮影、映像制作などなどを行い、現在は家業の会席料理屋で料理人と経営をしている。ホームページやPR動画、チラシ、名刺などなどはすべて自作。趣味?は農業。2児の父でもある。 最近よく言われる言葉は「本当に料理人?(笑)」

コメントを残す

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