1

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

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

  • ディレクトリ構造をいじりたくありません。

  • モジュールがどのように役立つかを完全には理解していないと思いますが、結果として得られる構成は必要以上に複雑になると思います。

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

オリジナルの.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on

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

複数のサイト.htaccess

<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>

私の質問は、これは実行可能な解決策ですか?私が将来遭遇するかもしれない落とし穴を予見しますか?

4

1 に答える 1

0

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

1つの落とし穴は、FTPクライアントがシンボリックリンクを無視したため、ステージングサーバーでシンボリックリンクを再作成する必要があったことです。SSHを使用したデプロイメントの自動化にようやく取り掛かったとき、これは問題にはなりません。

于 2012-05-06T10:25:34.260 に答える