10

我有一个 Symfony2 核心,用于域 A 和域 B。但是,如果我更新核心,我需要更新两次,因为我不知道如何只配置一个核心,多个域及其配置/数据库。

建议?

4

2 回答 2

8

将“web”目录复制到每个域上的“public_html”文件夹中(假设您在 Linux 上运行 Apache)

这个“web”目录包含您网站的前端控制器(app.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';

这很灵活,可以随意组织,但要确保这两行有正确的路径

请记住,您包含在 HTML 中的所有资产(JS、CSS、图像...)都是相对于前端控制器位置的,因此您需要使用它们所在或复制的域名的完整 URL 来链接它们他们也到 B 域使用资产

最后你会得到类似的东西:

/
.. 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 和图像,以赋予它们不同的方面。

于 2012-08-08T18:16:50.097 回答
3

也许您可以尝试使用Capifonyruby ,它是为应用程序编写的部署脚本Symfony。我没有像您想要实现的那样进行任何设置,但我使用它来部署登台和生产服务器。它可以设置为将应用程序的不同实例部署到一台服务器(例如:不同的目录)或多台服务器。

正确设置后,只需键入以下内容即可进行部署:

cap server1 deploy
cap server2 deploy

每次运行命令时,capifony都会从存储库中提取最新代码(例如:git),并进行部署。作为奖励,如果您需要返回到以前的状态,旧版本的应用程序也会保存在服务器上。

这是示例 capifony 配置脚本,只是为了给您一个概述:

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

于 2012-08-12T14:50:01.757 回答