freoの複数設置について

概要

freoを同じサーバーに複数設置したい場合、フォルダごとに分ければいくつでも設置することができます。また、一部のファイルを共通のものとして扱うこともできます。

詳細

以下は、公開フォルダ内に freo1 フォルダと freo2 フォルダを作成し、その中に設置した例です。

public_html /
     |
     +--  freo1 / index.php
     |      |     config.php
     |      |
     |      +-- configs / ~略~
     |      |
     |      +-- css / ~略~
     |      |
     |      +-- database / ~略~
     |      |
     |      +-- files / ~略~
     |      |
     |      +-- images / ~略~
     |      |
     |      +-- js / ~略~
     |      |
     |      +-- libs / ~略~
     |      |
     |      +-- mails / ~略~
     |      |
     |      +-- templates / ~略~
     |      |
     |      +-- templates_c / ~略~
     |      |
     |      +-- tiny_mce / ~略~
     |
     +--  freo2 / index.php
            |     config.php
            |
            +-- configs / ~略~
            |
            +-- css / ~略~
            |
            +-- database / ~略~
            |
            +-- files / ~略~
            |
            +-- images / ~略~
            |
            +-- js / ~略~
            |
            +-- libs / ~略~
            |
            +-- mails / ~略~
            |
            +-- templates / ~略~
            |
            +-- templates_c / ~略~
            |
            +-- tiny_mce / ~略~

また、データベースにMySQLを使用している場合、データベースの設定も変更しておかないと、複数のfreoが同じデータベースを参照してしまいます。

この場合、freo/config.php の「データベースの設定」にある「データベース名」を異なるデータベースに設定します。(データベースはあらかじめ作成しておきます。)

データベースを複数作成できない環境の場合、「テーブル名のプレフィックス」を変更してください。freoはデータベース内のデータを扱う際、プレフィックスを付加した状態で扱うので、この値を異なるものにしておけば、同じデータベースで複数のfreoのデータを管理できます。

ファイルの共有

freoを複数設置する際、一部のファイルを共通のものとして扱うことができます。これにより、サーバースペースを節約したりメンテナンスを容易にしたりすることができます。

一部のファイルを共通のものとして扱う場合、config.php をエディタで開き、「パスの設定」を変更します。例えばfreo1のプログラムをfreo2からも利用したい場合、freo2/config.php をエディタで開き、「メインプログラムファイル格納ディレクトリ」を

//メインプログラムファイル格納ディレクトリ
define('FREO_MAIN_DIR', '../freo1/libs/');

このように設定すると、プログラムを共通のものとして扱うことができます。(freo2/index.php からの相対パスを設定します。)また、freo1のテンプレートをfreo2からも利用したい場合、freo2/config.php をエディタで開き、「テンプレート格納ディレクトリ」を

//テンプレート格納ディレクトリ
define('FREO_TEMPLATE_DIR', '../freo1/templates/');

このように設定します。

libs/ 内の一部のファイルのみ共通のものとして扱いたい場合、例えばSmartyのみを共通のものとして扱いたい場合、上の方法では対応できません。この場合、libs/freo/freo.php を編集することで対応できます。

libs/freo/freo.php をエディタで開くと、はじめの方に

require_once FREO_MAIN_DIR . 'smarty/Smarty.class.php';

という部分があります。FREO_MAIN_DIR は初期状態では libs/ と定義されているので、libs/smarty/Smarty.class.php を読み込みます。この部分を例えば

require_once '../freo1/libs/smarty/Smarty.class.php';

このように設定すると、Smartyは freo1 内のものが読み込まれます。(freo2/index.php からの相対パスを設定します。)