5
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

baserCMSでマルチサイトを実装する

はじめに

baserCMS4では、サブサイト機能が追加され、複数のWebサイトを一つのCMSで管理できるようになりました。
ただし、標準の機能では、追加されたWebサイトは、サブフォルダに配置されたようなURLになってしまうので、マルチサイトとは言い難いのが現状なんですね。

実は!baserCMS4では、複数ドメイン、サブドメインを見越した設計がされており、テスト段階として表向きには機能提供されていませんが、ちょっとした設定を行う事で、本当の意味でのマルチサイトに対応する事ができるのです。

あくまでテスト段階の機能という事で、利用する場合は自己責任でお願いします。(そもそもオープンソースなので利用は自己責任前提ですが)

前提条件

利用できる前提条件としては、サブドメインや、別のドメインについて、同じディレクトリをドキュメントルートとして設定できる環境である必要があります。
VirtualHost を自由に設定できる環境であれば、特に問題ありません。

サブドメインでのマルチサイト

マルチサイトを設計する

マルチサイトの構成を検討します。例えば以下のようなドメインをマルチサイトとして定義する事を前提とします。

  • main.com
  • sub.main.com
  • sub2.main.com

メインドメインを定義する

管理システムを配置する前提のメインとなるサイトのドメインをメインドメインと呼ぶ事にします。
app/Config/install.php の、以下の行を探しメインドメインを記述します。

Configure::write('BcEnv.mainDomain', 'メインドメインとなる文字列');

今回の例であれば、以下のようになります。

Configure::write('BcEnv.mainDomain', 'main.com');

管理システムでサブサイトを追加する

サブサイト管理より、サブサイトを追加します。エイリアスに、サブドメイン名を登録します。
例えば、今回の例であれば、sub や、sub2 となります。

データベースの値を調整する

テスト段階という事で、UI がない為、追加したサブサイトのレコードを直接変更します。
phpMyAdmin 等のツールで、mysite_sites というテーブルを探し、対象レコードの以下のフィールドの値を変更します。
※ プレフィックスを変更している場合は、 mysite_ の部分を変更したプレフィックスに読み替えてください。

  • use_subdomain : 1 に変更します
  • domain_type : 1 に変更します

VirtualHost を設定する

サブドメインを VirtualHost で設定する際、ドキュメントルートについて、メインドメインと同じディレクトリを参照するように設定します。

以上で、サブドメインでのマルチサイトの設定は完了です。
後は、サブサイトごとに、テーマを変更したり、トップディレクトリでレイアウトファイルを変更したりするなどして、デザインを切り分けてみてください。

別ドメインでのマルチサイト

基本的に、サブドメインでのマルチサイトと設定手順は同じです。
違う点は以下の2点です。

  • エイリアスにドメイン丸ごとぶっこむ
  • domain_type を 2 に設定する

まとめ

複数のサイトを管理してて、それぞれにbaserCMSをインストールして、それぞれでユーザーを作成して、、、
面倒ですよね。この機能を利用すると一つの baserCMS で複数のWebサイトを管理できます。
あくまでテスト段階の機能という事で自己責任で試してくださいね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
5
Help us understand the problem. What are the problem?