dmk / typo3-composer-webroot
TYPO3 项目 webroot
0.1.0
2015-06-19 14:52 UTC
Requires
- caretaker/caretaker_instance: dev-master
- digedag/rn-base: *
- dmk/mklib: *
- dmk/mklog: *
- dmk/mkphpids: *
- dmk/mksanitizedparameters: *
- dmk/mktools: *
- dmk/phpunit: dev-master-6.2
- typo3-ter/be-secure-pw: ~6.2@stable
- typo3-ter/devlog: @stable
- typo3-ter/phpmyadmin: @stable
- typo3-ter/realurl: ~1@stable
- typo3/cms: ~6.2@stable
This package is auto-updated.
Last update: 2024-09-22 12:47:51 UTC
README
使用 Composers 创建基于文件的 TYPO3 安装。
用法
项目创建
使用 Composer 创建新的 TYPO3 项目
$ composer create-project dmk/typo3-composer-webroot my-project-webroot 12.4.x-dev
这将为 TYPO3 创建所需的文件夹,例如 fileadmin、typo3conf 等。
安装过程应如下所示
Created project in my-project-webroot
Loading composer repositories with package information
Installing dependencies
- Installing typo3/cms-composer-installers
- Installing typo3/cms-core (v12.4.0)
Writing lock file
Generating autoload files
Generating class alias map files
然后您将被询问是否要删除 Git 历史。我们应该这样做!
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? Y
现在让我们进入项目目录
$ cd my-project-webroot
然后我们应该初始化一个新的仓库
$ git init
在完成自定义(见下文)后,我们进行初始提交
$ git add --all
$ git commit -m "initial commit"
添加新的项目远程仓库
$ git remote add origin [PATH_TO_PROJECT_REPOSITORY]
并将项目推送到仓库
$ git push --set-upstream origin main
特定的 DocRoot
在许多情况下,为项目定义一个 DocRoot 将非常有用。因此,公共文件将存储在那里,而所有其他文件(如 vendor)都位于外部。
该功能自 CmsComposerInstaller 1.2.2 版本以来新增,默认启用。
添加扩展
要从TER 安装扩展(例如 static_info_tables),可以简单地执行以下命令
composer require sjbr/static-info-tables:^6.9
请注意,如果您使用 typo3-ter 仓库,则必须将扩展密钥中的下划线 "_" 替换为破折号 "-"。
要从您的自己的仓库附加扩展,您必须首先将仓库添加到 composer.json 中。要添加功能强大的 MKSEARCH 扩展,您必须执行以下命令
$ composer config repositories.mksearch vcs https://github.com/DMKEBUSINESSGMBH/typo3-mksearch.git
请确保仓库中有一个如下的 composer.json 文件
{
"name" : "dmk/mksearch",
"type" : "typo3-cms-extension",
"keywords" : ["TYPO3 CMS", "search", "Lucene", "Zend Lucene", "Apache Solr", "Solr", "Elasticsearch"],
"homepage" : "http://www.dmk-ebusiness.de/",
"license" : "GPL-2.0+",
"replace": {
"typo3-ter/mksearch": "*"
}
}
现在您可以使用 require 命令安装扩展
composer require dmk/mksearch
最后,在 TYPO3 后端使用 TYPO3 扩展管理器安装扩展,将 composer.json、composer.lock、config/system/settings.php 添加到 git 并提交和推送更改。
自定义
- 在 settings.php 中的
BE
部分替换warning_email_addr
的example@example.com
。- 别忘了创建地址
- 最佳实践是在一个邮件列表中添加所有参与项目的成员
- 替换 rn_base 扩展配置中的
fromEmail
的noreply@domain.de
。 - 在 settings.php 中替换 $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress'] 的
noreply@tld.de
。 - 在 settings.php 中替换 $GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = 'XXX.XXX.XXX.XXX'。
- 在 .htaccess* 文件中将
XXX.XXX.XXX.XXX
替换为可以访问维护模式的系统的 IP。 - 使用 .htaccess_* 作为您环境中的 .htaccess 文件。如果需要,请添加身份验证。
- 使用所有安全关键数据(如数据库凭据)创建
config/system/credentials.php
。
在 repo 根目录中的 Credentials.php.inst 中提供了一个示例。 - 创建加密密钥并将密钥插入 Credentials.php(不要在 git 中存储安全关键数据)。
- 可选地,在 MKTOOLS 扩展配置中启用一些改进。
- 安装 gridelements 或类似扩展
- 如果需要,安装 static_info_tables。当前版本 6.4.3 存在问题,因为静态导入失败,一旦安装了增强静态_countries 数据库表的扩展(如 mklib 所做的那样),它就会失败(见 https://forge.typo3.org/issues/82132)。作为解决方案,暂时卸载 mklib 以插入 static_info_tables 的静态数据。
- 为mklog DevLog WatchDog设置调度任务(建议:每5分钟检查错误和更严重的问题,每天检查两次通知和更严重的问题)
- 设置维护任务,如mklib任务以检测失败和冻结的任务,对数据库中的IP进行匿名化,对表和缓存框架进行垃圾回收,删除 typo3temp/rn_base/ 和 typo3temp/mktools/locks 目录中的旧文件。
- 使用caretaker_instance扩展设置监控
- 调整fehler.html的内容(用作5xx错误的ErrorDocument,以及在TYPO3处理页面不可用时)
- 在TYPO3中提供以下页面:404.html(用作htaccess中的ErrorDocument和默认页面未找到处理时的404页面)以及/fehler(用作htaccess中的ErrorDocuments)
- 当使用Let's Encrypt时,切换 .htaccess 中知名文件夹的 deny RewriteRule
- 将 .htaccess_typo3 复制到您的typo3文件夹中,以便对安装工具进行访问限制(您需要在htaccess文件中配置白名单IP、htpasswd等,如您所愿)
- 不要忘记为CLI设置应用程序上下文。这包括为调度cron命令设置它:
TYPO3_CONTEXT="Production/Staging" ! test -e $pathToHtdocs/MAINTENACE_MODE && $pathToHtdocs/typo3/sysext/core/bin/typo3 scheduler:run
。另外,您需要按照描述这里全局设置它。两者都是确保在任何情况下都拥有正确上下文的必要条件。- WEB中的上下文通过环境的 .htaccess 文件设置
- 默认为Production。因此,通常您只需要在Production/Staging环境中设置CLI上下文。所有其他环境应该都很好。
- 当网站托管在Mittwald服务器上时,可能需要从settings.php中删除$GLOBALS['TYPO3_CONF_VARS']['BE']['fileCreateMask']和$GLOBALS['TYPO3_CONF_VARS']['BE']['folderCreateMask'],并使用默认值。
- 考虑使用Redis作为缓存后端
- htaccess文件包含CSP(内容安全策略)头部。有BE和FE的单独头部。还有一个针对所有资产文件夹的单独策略,这些通常是文件存储的根文件夹。请将此文件放入必要的文件夹中。FE的策略可能需要调整。您可能首先希望切换到仅报告模式,并跟踪策略违规。