2012-04-26 10 views
1

1つのFuelPHPインストールから複数のサイトを実行したいと思います。この背後にある主要な要因は、モデルとデータベース構成を共有する能力です。1つのFuelPHPインストールの複数のサイト

私は、FuelPHPディレクトリ構造の変更やモジュールの使用を必要とするいくつかの提案を見てきました。

  • 私は本当にディレクトリ構造を混乱させたくありません。

  • モジュールが私を助ける方法を完全に理解しているとは思えませんが、結果の構成が必要以上に複雑になると思います。

私が作ってみた解決策は、/公共にあるの.htaccessファイルへの簡単な変更を必要とします。これにより、ホスト名に基づいて書き換えルールが変更されます。各サイトのコントローラとビューは、メイン構造のサブディレクトリにあります。

オリジナルの.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

複数のサイトでは、これは実行可能なソリューションである、

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{HTTP_HOST} main.loc 
    RewriteRule ^(.*)$ index.php/main/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{HTTP_HOST} admin.loc 
    RewriteRule ^(.*)$ index.php/admin/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{HTTP_HOST} api.loc 
    RewriteRule ^(.*)$ index.php/api/$1 [L] 
</IfModule> 

私の質問がある.htaccessファイル?あなたは私がラインを遭遇する可能性のある落とし穴を予見していますか?

+0

これには、コントローラがapp/classes/controllerのサブフォルダに存在する必要があります。この設定では、main、admin、およびapiをモジュールにする方がよいでしょう。したがって、名前空間の分離があります。 – WanWizard

+0

すべてのアプリケーション構成と公開されているすべてのアセットを共有することを検討する必要があります。 複数のサイトを提供することはできますが、複数のfuelphpアプリケーションを提供することはできません。 – WanWizard

答えて

0

私の実際の解決策は、コア、いくつかのパッケージ、明らかにモデルディレクトリのようなsymlinkキーディレクトリを並べて3つのFuelPHPアプリケーションを作成することでした。

私のFTPクライアントはシンボリックリンクを無視していたので、ステージングサーバーで再作成する必要がありました。 SSHを使用したデプロイメントの自動化に夢中になっても、これは問題にはなりません。

関連する問題