0

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

  1. 由安装工具生成的一部分,在版本控制下。
  2. 一个手动管理的部分,受版本控制。
  3. 一个手动管理的部分,包含服务器特定的东西,不受版本控制。包含例如数据库凭据。

我试过这样做:

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

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

  1. 本地配置.php
  2. 附加配置.php
  3. 本地配置.php

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

知道如何解决这样的问题吗?

4

2 回答 2

1

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

要添加自定义配置,您应该使用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 的答案。

顺便说一句:我不太确定为什么需要 commit AdditionalConfiguration.php,恕我直言,它应该在 git 中被忽略,并且在每个环境中,它都应该让这个文件充满这个环境的典型本地数据。主要(生产)实例应保留其整个配置LocalConfiguration.php

于 2013-09-16T15:29:20.027 回答
1

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

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

于 2013-09-16T22:55:10.277 回答