2012-08-06 24 views
10

私はドメインAとドメインBに使用されているSymfony2コアを持っています。ただし、コアを更新すると2回更新する必要があります。なぜなら、 configs/databasesで複数のドメインを持つSymfony複数のサイト

提案?

答えて

8

この「ウェブ」ディレクトリ(Linux上のApacheを実行していると仮定)、各ドメインの「public_htmlの」フォルダへ

を「ウェブ」ディレクトリのコピーを作成アプリ(あなたのサイトのフロントコントローラが含まれています。 php、app_dev.php)を見つけて好きなテキストエディタで編集してください。

require_once __DIR__.'/../app/bootstrap.php.cache'; 
require_once __DIR__.'/../app/AppKernel.php'; 

となり、実際の相対パスに変更してください。それはこのようなものが考えられます。

require_once __DIR__.'/../the_core_is_here/app/bootstrap.php.cache'; 
require_once __DIR__.'/../the_core_is_here/app/AppKernel.php'; 

これは柔軟性があり、あなたが好きなように整理することができますが、この2行が正しいパスを持っている

は、すべての資産(JS、ということを忘れないでくださいことを確認してくださいCSS、画像など)は、フロントコントローラーの場所に関連しているため、ドメイン名の完全なURL(または)をBドメインにコピーするか、リンクする必要があります asseticを使用

最後にあなたは私は次のようなものを持っています:

/ 
.. home 
.. .. DOMAINA 
.. .. .. public_html 
.. .. .. .. app.php 
.. .. .. .. img 
.. .. .. .. .. image.png 
.. .. DOMAINB 
.. .. .. public_html 
.. .. .. .. app.php 
.. .. .. .. img 
.. .. .. .. .. image.png 
.. .. the_core_is_here 
.. .. .. app 
.. .. .. src 
.. .. .. bin 
.. .. .. vendor 

あなたのアプリケーションには2つのエントリーポイントが必要です。異なるCSSや画像をそれぞれ別のものにすることもできます。

+0

問題は、複数のデータベースを持ち、各顧客のドメインに基づいて切り替える方法です。 –

+2

複数のエンティティマネージャを追加する必要があります(各DBに1つ)(http://symfony.com/doc/current/cookbook /doctrine/multiple_entity_managers.html)、アクセスしているドメインに応じて適切なものを選んでください(REQUESTオブジェクトのものを探してください)。 – Xocoatzin

3

Capifonyを試してみてください。Symfonyアプリケーション用にrubyで書かれたデプロイメントスクリプトです。あなたが達成しようとしているような設定はしていませんが、私はそれを使って準備サーバ&の両方を運用しています。これは、アプリケーションの異なるインスタンスを1つのサーバー(たとえば、異なるディレクトリ)または複数のサーバーに展開するようにセットアップできます。

、彼らが正しくセットアップされたら、展開は、タイピングだけの問題である:あなたがコマンドを実行し

cap server1 deploy 
cap server2 deploy 

毎回、capifonyは、リポジトリ(例:gitの)から最新のコードを引っ張ってくるし、それを展開。また、以前の状態に戻す必要がある場合は、古いバージョンのアプリケーションもサーバーに保存されます。

# deploy.rb 
set :application, "My App" 
set :deploy_to,  "/var/www/my-app.com" 
set :domain,  "my-app.com" 

set :scm,   :git 
set :repository, "ssh-gitrepo-domain.com:/path/to/repo.git" 

role :web,   domain 
role :app,   domain 
role :db,   domain, :primary => true 

set :use_sudo,  false 
set :keep_releases, 3 

そして、あなたはcapifonyためmultistage extensionを使用して、異なるドメインのそれぞれを異なる設定スクリプトを持つことができます:ここでは

はサンプルcapifony設定スクリプトは、ちょうどあなたの概要を与えることです。

関連する問題