我有一个 Symfony2 核心,用于域 A 和域 B。但是,如果我更新核心,我需要更新两次,因为我不知道如何只配置一个核心,多个域及其配置/数据库。
建议?
将“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 和图像,以赋予它们不同的方面。
也许您可以尝试使用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
.