将typo3conf中的配置拆分为托管,手动和服务器特定部分

时间:2013-09-16 14:47:02

标签: typo3

在TYPO3版本6.1.5中,我想在typo3conf中将我的配置分为三部分:

  1. 由版本控制下的安装工具生成的一部分。
  2. 一个手动管理的部分,受版本控制。
  3. 一个手动管理的部分,包含服务器特定的内容,在版本控制下。包含例如数据库凭证。
  4. 我试过这样做:

    1. 使用LocalConfiguration.php完成,
    2. 使用AdditionalConfiguration.php
    3. 完成
    4. 由AdditionalConfiguration.php。
    5. 包含的附加文件完成

      这不起作用,因为它接缝按以下顺序评估文件:

      1. LocalConfiguration.php
      2. AddtitionalConfiguration.php
      3. LocalConfiguration.php
      4. 因此,来自我的服务器特定文件(和AdditionalConfiguration.php)的更改很容易被LocalConfiguration.php中的内容覆盖。

        知道如何绕过这样的事情吗?

2 个答案:

答案 0 :(得分:1)

首先:不要在您的LocalConfiguration.php文件中应用任何手动更改,因为它会在安装工具,Extension Manager等中的每个操作后被删除。

要添加自定义配置,您应该使用未更改的AddtitionalConfiguration.php文件(您可能在使用它时知道)。在这个额外的配置中,您需要使用“旧”语法来覆盖值,即:

<?php
$GLOBALS['TYPO3_CONF_VARS']['DB']['database']='some_db_loc';
$GLOBALS['TYPO3_CONF_VARS']['DB']['host']='localhost';
$GLOBALS['TYPO3_CONF_VARS']['DB']['username']='jost';
$GLOBALS['TYPO3_CONF_VARS']['DB']['password']='yourpass';

最后在附加conf的末尾使用common include()来包含下一个PHP文件,您可以在其中再次覆盖这些值:

@include('jost_localconf_dont_commit.php');

至少在TYPO3版本中。 6.1.1这种情况就像一个魅力。

编辑:根据访问附加配置中的属性,还可以查看Viktor's answer

BTW:我不确定你为什么需要提交AdditionalConfiguration.php,恕我直言,它应该在git中被忽略,并且在每个环境中都应该让这个文件填充本env的典型本地数据。 Main(生产)实例应将其配置保持在LocalConfiguration.php

答案 1 :(得分:1)

只有一件事要添加到biesior的回答中:

出于安全原因,最好不要在AdditionalConfiguration.php中拥有数据库凭据。最好使用来自主机文档根目录之外的路径的凭据来包含PHP文件。因此,如果PHP无法正常运行,则无法下载该文件,并且不会公开数据库凭据。