Symfony2の上にSaaSCMSを構築します(Symfony2が間違った方法だと思われる場合は、回答してください)。多くのお客様がいて、次のアーキテクチャでCMSを作成したいと考えています。
200以上の顧客(Webサイト)があり、すべての顧客がグローバルCMSを共有する必要があるとします(すべての顧客が最新バージョンを持っています)。さらに、すべての顧客は、顧客自身のデータを含む独自のデータベースを持っている必要があります。この場合、CMSコアには、顧客データベースなどに関する情報を含むマスターデータベースが必要です。私のアプローチは、すべての顧客がapacheに独自のvHostを持ち、すべての顧客が1つのCMSコアを共有するマルチサイトアーキテクチャを構築することです。
/var/www/cust001/ -> CMS customer 1
/var/www/cust002/ -> CMS customer 2
...
これらのフォルダは、すべての顧客のテンプレート、css、画像などが保存されるパブリックhtml領域です。CMS自体はパブリックエリア内にはあり/var/cms/
ません。たとえば、apache2サーバーにあり、apache2サーバーでは利用できません。お客様の仮想ホストに、CMSコアのフロントコントローラーへのシンボリックリンクが必要ですか?すべての顧客の仮想ホストは、次のようないくつかのドメインを通じて利用可能である必要があります
cust1 -> cust001.mycompany.com, alias www.customerdomain.com ...
cust2 -> cust002.mycompany.com, alias www.customer2domain.com ...
...
さらに、すべての顧客は、仮想ホストでコアCMS(Webショップ、ゲストブックなど)を拡張するためのSymfony2バンドル(プラグイン)を使用できる必要があります。
このアプローチはSymfony2で実装することは可能ですか?vhostドメインをフロントコントローラーにルーティングし、正しいデータベースを選択するための最良の方法は何ですか?Symfony2のダイナミックルート(ウェブサイトページリクエスト)はどのように管理されていますか?いくつかの代替アプローチはありますか?