Symfony应用程序的重复实例可以使用相同的共享源代码吗?



3个实例的同一个Symfony应用程序,位于同一个服务器上:

  • 使用的数据库>应用程序本地路径>
  • URL
  • https://app1.myapp.com>/var/www/app1> app1 数据库
  • https://app2.myapp.com>/var/www/app2> app2 数据库
  • https://app3.myapp.com>/var/www/app3> app3 数据库

3 个目录/var/www/appX/是完全复制的,但 app/config/parameters.yml 文件(数据库配置(和 var 目录(缓存、日志、会话以及与实例相关的其他文件(。

目的是使用相同的共享代码源创建许多应用程序实例,以优化安装,维护,php缓存,磁盘空间...
要得到这样的东西:

  • https://app1.myapp.com>/var/www/app> app1 数据库
  • https://app2.myapp.com>/var/www/app> app2 数据库
  • https://app3.myapp.com>/var/www/app> app3 数据库

一个解决方案可能是"仅"共享bin,src,tests,供应商和Web目录,使用指向唯一共享目录的符号链接?坏点:应用程序目录保持重复。

但也许有一种更官方或更可靠的方法可以做到这一点?我求你。

使用 Symfony v3.4, MySQL v5.7, php 7.2, Debian OS.

您可以创建不同的环境。而不是像开发或测试这样的已知版本,而是使用 app1、app2、app3 创建其他的。然后在您的 .htaccess 文件中检测主机:

SetEnvIf Host ^app1. APP=app1
SetEnvIf Host ^app2. APP=app2
SetEnvIf Host ^app3. APP=app3

并在重写部分使用您的 APP 变量

RewriteRule .? %{ENV:BASE}/%{ENV:APP}.php [L]

您可以为每个环境加载不同的参数。

最新更新