elasticsearch,Mysql,Symfony,elasticsearch" /> elasticsearch,Mysql,Symfony,elasticsearch" />

Mysql 设置条令和弹性搜索的环境变量

Mysql 设置条令和弹性搜索的环境变量,mysql,symfony,elasticsearch,Mysql,Symfony,elasticsearch,如何为symfony设置环境变量 比如说,如果我运行我的项目,它就应该消除环境影响,并采取行动--- 因此,如果我在本地主机上运行mysql请求,它应该在 http: //localhost:8000 http: //production.com:9200 --- elasticsearch http: //production.com:8000 --- doctrine/mysql 如果我请求elasticsearch,它应该在 http: //localhost:9200 如果它在生

如何为symfony设置环境变量

比如说,如果我运行我的项目,它就应该消除环境影响,并采取行动---

因此,如果我在本地主机上运行mysql请求,它应该在

http: //localhost:8000 
http: //production.com:9200 --- elasticsearch
http: //production.com:8000 --- doctrine/mysql
如果我请求elasticsearch,它应该在

http: //localhost:9200
如果它在生产环境中运行,它应该在

http: //localhost:8000 
http: //production.com:9200 --- elasticsearch
http: //production.com:8000 --- doctrine/mysql
我认为它可以在
parameters.yml
上完成,但我真的不知道如何完成

有人能帮我解决这个问题吗。
非常感谢advanced。

我不确定这里有什么问题,所以我会给你一个更一般的答案

Symfony提供了一种非常好的方法来为不同的情况(或环境)配置项目。你应该看一看这本书,它深入地解释了事情

默认情况下,Symfony为不同的环境提供了3种配置:

  • app/config/config_dev.yml
    用于开发
  • app/config/config_prod.yml
    用于生产
  • app/config/config_test.yml
    用于(单元)测试
  • 这些配置文件中的每一个都可以覆盖基本配置文件中的设置,基本配置文件是
    app/config/config.yml
    。您可以将常规/常用设置存储在那里。每当您需要为特定环境重写某些内容时,只需转到环境配置并对其进行更改

    假设您在
    app/config/config.yml
    中有以下基本配置:

    # Doctrine Configuration
    doctrine:
        dbal:
            driver:   pdo_mysql
            host:     "%prod_database_host%"
            port:     "%prod_database_port%"
            dbname:   "%prod_database_name%"
            user:     "%prod_database_user%"
            password: "%prod_database_password%"
            charset:  UTF8
    
    # Doctrine Configuration
    doctrine:
        dbal:
            driver:   pdo_mysql
            host:     "%dev_database_host%"
            port:     "%dev_database_port%"
            dbname:   "%dev_database_name%"
            user:     "%dev_database_user%"
            password: "%dev_database_password%"
            charset:  UTF8
    
    现在,假设每个环境有3个不同的数据库-
    prod
    dev
    test
    。实现这一点的方法是覆盖环境配置文件中的配置(比如
    app/config/config\u dev.yml

    # Doctrine Configuration
    doctrine:
        dbal:
            driver:   pdo_mysql
            host:     "%prod_database_host%"
            port:     "%prod_database_port%"
            dbname:   "%prod_database_name%"
            user:     "%prod_database_user%"
            password: "%prod_database_password%"
            charset:  UTF8
    
    # Doctrine Configuration
    doctrine:
        dbal:
            driver:   pdo_mysql
            host:     "%dev_database_host%"
            port:     "%dev_database_port%"
            dbname:   "%dev_database_name%"
            user:     "%dev_database_user%"
            password: "%dev_database_password%"
            charset:  UTF8
    
    将必要的
    %dev.*%
    参数添加到
    app/config/parameters.yml.dist
    app/config/parameters.yml
    。现在,无论何时使用
    dev
    环境打开应用程序,它都将连接到参数中指定的数据库(
    %dev.\u数据库…%


    基本上就是这样。在特定环境中,您可以对需要更改的任何配置执行相同的操作。您一定要查看文档。文档中有直接的示例说明。

    很高兴我能提供帮助!:)