我为我的Web应用程序安装了正确的Symfony2环境,该环境连接到某个mysql数据库。
我正在尝试设置一个物理上分离的测试环境,将其用作生产前测试环境,作为生产的“镜像”,在“www”的子文件夹中找到整个项目的副本。
类似的东西:
www
|app
|config
|parameters.ini
|src
|vendor
|web
(...)
|testing_environment
|app
|config
|parameters.ini
|src
|vendor
|web
(...)
查看parameters.ini
个文件。在上层(生产环境中的那个)中,我已经将生产数据库的连接设置为其主机名,数据库名称,用户和密码。
在第二个parameters.ini
(test_environment / app / config下的那个)中,我设置了一个不同的数据库连接,指向它将成为测试数据库。
我的计划是访问生产环境,只需将www.myproject.com/web/main
和测试环境放到www.myproject.com/testing_environment/web/main
即可。一个人分别访问每个数据库。
实际上,我确实可以访问测试环境,看到我项目的测试版本,其中包含不同的目录,子目录和文件。但是,由于某种原因,正在使用www.myproject.com/web/main
和www.myproject.com/testing_environment/web/main
的数据库属性是在生产parameters.ini
文件中设置的数据库属性,导致访问和修改的唯一数据是生产环境一,无论我在浏览器中访问什么环境。
为什么会这样?是不是所有相对引用?测试环境是否必须指向具有不同数据库连接属性的自己的parameters.ini?
我已阅读有关使用不同配置,捆绑包和/或工具栏设置不同环境的Symfony2文档。但这不允许使用不同的数据库和目录/文件集。
我错过了什么?如果不为我的预生产测试工作雇用不同的托管,我如何得到我需要的东西?
答案 0 :(得分:0)
我很遗憾地说出来,但你这样做是错误的。阅读有关Symfony2环境和前端控制器的信息。通过在app/config
中使用不同的配置文件来完成不同的配置。并且不同的前控制器放在web
。
要阅读的内容:
答案 1 :(得分:0)
好的,我明白了!
这是缓存目录的问题。
当我复制整个Symfony文件夹时,它内部包含整个app / logs和app / cache文件夹。
删除这两个文件夹后,使用第一个http请求重新生成缓存,并存储新的连接数据库。
所以问题是我不知道Symfony2在缓存中以某种方式连接到数据库。顺便说一句,可能是与学说有关。