以前、CORESERVERにconcrete5をインストールしたわけですが、ちょっと前に、同じサーバー(しかし、ドメインは別)にconcrete5で新しくウェブサイトを作りました。
で、新しいサイトを作るとき、プログラムのファイルを一式まるごとインストールしたんですが、ソースコードを眺めたり色々と触っているうちに、プログラムファイルを使いまわせそうな感じがしたので、もともとインストールした方で試してみました。
ちなみに、この記事は「concrete5.4.1.1.1.ja」について書かれています。
他のバージョンでは違うかもしれません。


やり方は、元あったconcreteディレクトリ以下を削除し、concreteという名前で別のconcreteディレクトリにリンクさせるだけです。
おそらく、httpd.confまたは.htaccessでFollowSymLinksな環境は必要だと思います。

1
2
$ rm -rf concrete/
$ ln -s /path/to/concrete_dir concrete

まだ、簡単な動作確認しかしていませんが、今のところ問題なく動作しているように見えます。
concrete5自体の設定は、完全にインストールした状態で行い、後から上記の操作をしています。
もちろん、データベースの設定はそれぞれ違います。
なお、試してみる場合は自己責任でお願いします。
以下、経緯です。
使い回しができるような気になったのは「concrete/config/base.php」に、

1
2
3
4
# if "concrete/" does NOT exist in DIR_BASE then we set multi_site to on
if (!is_dir(DIR_BASE . '/' . DIRNAME_APP)) {
define("MULTI_SITE", 1);
}

このようなコードがあったからです。
それでググッてみたのですが、マルチサイト運営はできるような記述はありました。

また、 concrete5 は、複数のサイトを運営出来るマルチサイトの機能が備わっております。 Concrete CMS, inc. では、「ホスティングパートナープログラム」に加入していただく事により、マルチサイト運営のためのサーバー設定の情報などを提供しています。また英語のみになりますが、コアー開発チームから、直接サポートを受ける事が出来ます。

まあ、レンタルサーバーでconcrete5を簡単インストールする、というようなサービスをやる場合、マルチサイトで運営できるのは非常に便利ですよね。
閑話休題。
今まで色々見たり聞いたりしている中でconcrete5は、カスタマイズする場合、プログラムは直接触らずに、ルートディレクトリにある各種ディレクトリにプログラムファイルをコピーして、そのファイルを触る、というように、スクリプトの優先順位がつけられているようです。
つまり、プログラム一式は全く変更せずにカスタマイズできる、ということです。
まあ、たぶん。
それと、上記のソースから判断すると、メインとなるプログラム一式が入っているディレクトリがない場合に「MULTI_SITE」が1に設定される。
ということで、(片方は実験サイトなので)思い切ってconcreteディレクトリを消し、index.phpには別のプログラム一式にあるdispatcher.phpへのパスを書いたのです。

1
2
<?php
require('/path/to/concrete_dir/dispatcher.php');

実行してみると、エラーにはならないのですが、ログインしている状態なのにメニューが出ません。
画像ファイルなどを参照する場所もどうもおかしい。
単純に消すだけではなく、何らかの設定をする必要があるのでしょう。
と、ここまでやってから、シンボリックリンクで出来るんじゃないかと思ったのです。
そこで、上記のようにconcreteというシンボリックリンクを作って実行してみると、元の通り実行できました。
concreteディレクトリは、ローカルでサイズを見てみると25MB以上あります。
最近は、レンタルサーバーの容量も大きいので大したことはないですが、ちょっとした節約にはなりますね。