b13 / environment
为TYPO3配置多个环境
Replaces
- environment: 1.0.8
This package is auto-updated.
Last update: 2024-08-25 16:01:05 UTC
README
由 Benjamin Mack,b:dreizehn GmbH 创建于 2013 年。在 MIT 许可下发布。
它做什么?
TYPO3 扩展 "Environment",兼容从 TYPO3 CMS 4.5 到 TYPO3 CMS 7.99.99,允许进行上下文特定的设置,这意味着 TYPO3 安装对每个上下文都有不同的选项。这意味着可以为开发环境开启所有日志和调试设置。
当然,如果您有多个服务器场景和本地开发环境,这个扩展最有意义。
安装
-
安装扩展。
-
在 .htaccess 文件中 RewriteBase 语句之后或添加以下重写语句到您的 Apache 服务器配置中。
确保每个 HTTP 请求都设置了上下文变量
RewriteCond %{HTTP_HOST} ^(.*)staging-system.org$ RewriteRule .? - [E=TYPO3_CONTEXT:Production/Staging]
RewriteCond %{HTTP_HOST} ^(.*)development-system.org$ RewriteRule .? - [E=TYPO3_CONTEXT:Development]
-
将以下代码添加到 typo3conf/AdditionalConfiguration.php 中,对于 TYPO3 CMS >= 6.0
// 加载此安装的环境/上下文配置,如果 (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('environment')) { include('ext/environment/Includes/Bootstrap/InitializeContext.php'); }
3a) 对于 6.0 之前的安装,请将以下内容添加到 localconf.php 的底部
// load the environment / context configuration for this installation
if (t3lib_extMgm::isLoaded('environment')) {
include('ext/environment/Includes/Bootstrap/InitializeContext.php');
}
3b) 对于使用 TYPO3 CMS 6.2+ 的安装,只需将其添加到 typo3conf/AdditionalConfiguration.php 中
// load the environment / context configuration for this installation
include('ext/environment/Includes/Bootstrap/InitializeContext.php');
之后,您将有一个名为 "TYPO3_CONTEXT" 的 PHP 常量,该常量设置为在服务器设置中放置的环境变量。
- 现在您可以定义上下文特定的配置,并创建如下文件
- typo3conf/AdditionalConfiguration.Development.php
- typo3conf/AdditionalConfiguration.Production.php
并添加不同的 DB 设置和调试设置等配置选项,这些选项将根据您在服务器设置中设置的上下文进行包含。示例请参阅 Resources/Public/Examples。
请确保 PHP 文件始终以以下行开头
<?php
if (!defined('TYPO3_MODE')) {
die('Access denied.');
}
最佳实践
开发环境 "Development"
- 邮件应仅发送到本地
- 所有调试模式均设置为完整日志记录
- 默认禁用缓存
集成环境 "Testing/Integration"
- 单元测试等的测试环境
"Production/Staging" 环境
- 用于(客户)验收测试的 "Live" 服务器的克隆
"Production" 环境
- "Live" 服务器
顶级上下文必须是 "Testing"、"Development" 或 "Production" 之一。当然,可以选择任何其他子上下文名称。
设置调度任务的环境
通常,TYPO3 调度程序是这样调用的
/usr/bin/php5 /path/to/my/typo3/installation/typo3/cli_dispatch.phpsh scheduler
这应该始终修改为设置环境变量
/usr/bin/php5 /path/to/my/typo3/installation/typo3/cli_dispatch.phpsh scheduler --context=Production
环境相关 TypoScript
您可以使用以下 TypoScript 条件检查环境。
# disable tracking for Production/Staging environment
[globalString = ENV:TYPO3_CONTEXT = Production/Staging]
page.20 >
[GLOBAL]
在 TYPO3 CMS 6.2 中,您可以使用新定义的 "applicationContext" TypoScript 条件。
环境相关电子邮件重定向
您可以通过设置以下 TYPO3_CONF_VARS 选项将任何发出的电子邮件重定向到特定的电子邮件地址
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['environment']['redirectEmails'] = 'benni@typo3.org';
您可以通过逗号分隔添加多个地址,或者在一个简单的数组中。
如果您将其放置在环境相关的安装中,如 typo3conf/AdditionalConfiguration.Development.php,并在生产环境设置中移除,这通常是最有意义的。
谢谢
特别感谢
- b13专家们的智慧和创新,找到了最佳的开箱即用解决方案,
- 耶稣基督,他拯救了我的生命。