hn / typo3-environment
此包已被废弃,不再维护。未建议替代包。
为typo3安装生成基础环境
v1.0.0-RC12
2018-04-03 17:25 UTC
Requires
- php: ^7.0
- composer-plugin-api: ^1.1
- helhum/typo3-console: ^5.0
- symfony/options-resolver: ^2.6 || ^3.0 || ^4.0
- symfony/yaml: ^2.8 || ^3.0 || ^4.0
- typo3/cms-core: ~8.7.10
- webmozart/path-util: ^2.3
Requires (Dev)
- composer/composer: ^1.3
Suggests
- dmitryd/typo3-realurl: Must have
- lochmueller/staticfilecache: Must have
- typo3/cms-belog: Optional
- typo3/cms-beuser: Must have
- typo3/cms-form: Optional
- typo3/cms-info: Optional
- typo3/cms-info-pagetsconfig: Development
- typo3/cms-lowlevel: Development
- typo3/cms-recycler: Optional
- typo3/cms-reports: Development
- typo3/cms-rte-ckeditor: Must have
- typo3/cms-tstemplate: Development
- typo3/cms-wizard-crpages: Development
Conflicts
- typo3/cms: *
This package is auto-updated.
Last update: 2022-02-01 13:12:00 UTC
README
- docker 17.06.0-ce 或更高版本
- docker-compose(能够读取 v2 docker-compose 文件)
- GNU make
- rsync(用于部署或推送/拉取用户数据)
创建一个项目
创建一个类似的项目
composer init --no-interaction --name="$(basename $PWD)"
composer config platform.php 7.1.6
(或任何其他 >= 7.0 的 PHP 版本)composer config extra.typo3/cms.web-dir web
(或除 "." 之外的任何其他 web 目录)composer require hn/typo3-environment typo3/cms-core:8.7.*
并回答所有问题- 运行
make serve
,你应该会进入一个正在运行的 typo3 项目 - 如果你在后台,你可能想用生成的模板扩展中的 typoscript 替换 typo3 控制台的 typoscript
- 此外,你可能会选择一个后台布局 ~ 模板扩展为你生成了一个
你可能想使用的 Make 命令
make serve
将启动项目,打开默认浏览器并带你进入项目make start
仅启动服务器,没有浏览器部分make stop
停止本地服务器make cc
清除所有 typo3 缓存并将数据库更新到所有扩展所需的当前模式make clean
将本地安装重置为零。make pull
从远程安装克隆所有用户数据make deploy
安装项目并将所有非用户文件移动到DEPLOY_HOST
和DEPLOY_PATH
。
一件好事是你可以轻松地将 make 命令链接起来,如 make clean pull serve
,以清理您的设置,重新安装所有依赖项,启动 web 服务器,从您的实时服务器拉取所有用户数据,并在您的网络浏览器中打开它。
配置部署
在 composer.json 中有一个名为 deployments
的选项。只需添加以下配置
{
"deployments": {
"master": {
"path": "html/master",
"php_cli": "php_cli",
"branch": "master",
"host": "p000000@p000000.mittwaldserver.info"
}
}
}
第一个部署将是默认目标。目前还没有实现多个部署目标。默认部署将添加到您的 Makefile。
在您的目标服务器上,您可能想定义一些环境变量。对于大多数主机,如 mittwald,最简单的方法是使用 php 定义环境。如果您的部署路径是 html/master
,请添加一个名为 html/master/shared/config/AdditionalConfiguration.php
的文件。
<?php
putenv('MYSQL_HOST=localhost');
putenv('MYSQL_USERNAME=username');
putenv('MYSQL_PASSWORD=password');
putenv('MYSQL_DATABASE=database');
putenv('IMAGE_PROCESSOR=ImageMagick');
putenv('IMAGE_PROCESSOR_COLORSPACE=sRGB');
putenv('IMAGE_PROCESSOR_PATH=/usr/bin/');
它做什么
- 创建一个 docker 环境
- 准备一个带有 mod php 的 apache 容器,具有可配置的版本(尽管没有用低于 7.0 的 php 进行测试)
- 准备一个带有可配置版本的 mysql 容器(5.5 - 5.7)
- 将 typo3temp 放入 tmpfs,以解决 docker for mac 上弱文件系统性能的问题
- 使用以下内容创建一个 AdditionalConfiguration
- 允许使用环境定义 mysql 访问
- 允许通过环境定义邮件发送器配置
- 基于环境定义图像处理
- 将 mysql 时区设置为 php 时区
- 配置一些具有不良默认配置的扩展
- 在开发环境中启用调试配置
- 使用 apcu(如果可用)和文件系统(如果不适用)进行更节省的缓存配置
- 在开发环境中禁用大量缓存,以便不需要频繁清除缓存
- 创建一个 .gitignore 文件
- 忽略默认的 typo3 文件夹
- 根据您安装的 composer 库忽略 typo3conf 中的扩展
- 创建一个 .htaccess(用于 apache 2.4+)
- 为大多数基本文本文件提供有用的 deflate 配置
- 针对非PHP生成的任何内容,使用有用的缓存头
- 设置安全头X-Content-Type-Options和X-Xss-Protection
- 设置X-Frame-Options SAMEORIGIN以防止点击劫持攻击
- 设置X-UA-Compatible头,用于旧版IE浏览器
- 根据请求使用的域名设置TYPO3_CONTEXT
- 将index.php配置为FallbackResource,允许使用realurl(虽然很糟糕,但在typo3 9.3之前是必要的)
- 创建一个makefile以方便使用
- 包括安装、启动和停止命令,以简化本地开发环境的启动和停止
- 包括cc(缓存清除)命令,以避免在安装工具中令人烦恼的遍历
- 包括部署命令,以轻松创建带有版本号的远程版本
- 创建日期版本的部署,以便于回滚
- 从所有composer库中排除所有测试资源
- 配置rsync重用上次部署的文件,以实现非常快的部署
- 根据composer.json中的配置创建共享目录(该配置也反映在gitignore中)
- 更新数据库架构并运行升级向导
- 清理旧版本
- 包括一个pull命令,以同步远程userdata与本地版本
- 同步所有共享文件
- 同步数据库,但排除一些特定的表,如缓存表或会话表
- 创建phpstorm元信息~以使extbase开发不那么令人烦恼
- 创建一个基础扩展,直接开始编码,其中包含
- 一个基本的typoscript模板
- 配置typolink使用绝对URL,并设置外部链接的目标为"_blank"
- 配置rel="noopener"属性到所有链接以防止hyjacking并提高Chrome性能
- 默认启用realurl(如果可用)
- 配置typo3缓存在午夜过期以保持网站一致性
- 将默认语言设置为英语,并启用所有覆盖选项,以便快速跳转到多语言typo3实例
- 当typo3上下文为开发时禁用所有缓存
- 当typo3上下文为生产时启用所有缓存和CSS/JS压缩
- 创建一个页面对象,它使用后端布局来找到正确的FluidTemplate
- 创建tsconfig
- 带有基本的后端布局
- 禁用大多数基本内容元素,以便在需要时启用
- 创建一个主页面模板,以便立即开始模板设计
- 一个基本的typoscript模板
- 使用makefile添加部署
- 生产就绪的依赖项安装
- 排除测试文件
- 优化rsync以实现快速传输且不触发opcache
- 在版本之间共享用户文件(如fileadmin)(可以使用生成器配置额外的文件夹)
- 将bower添加到项目中(可选)
- 配置.bowerrc以指向web目录
- 配置.htaccess以缓存bower组件一段时间
我也想补充说,大多数功能都是可配置的。您不需要模板扩展?没问题。要了解哪些是可配置的,请在要求环境后检查composer.json文件。在第一次安装期间也会询问一些问题。
初始设置后的操作
是的,此插件将监视您的依赖项,并在初始设置后提供一些技巧来帮助您。
- 如果您安装任何扩展,它将询问您是否想要一个本地修改扩展(例如,对于新闻,它将询问您是否应该生成hn_news扩展),这将已经配置为覆盖原始扩展的模板。
- 如果您安装它,请调整gitignore和realurl的扩展配置
- 将库和扩展添加到gitignore中,以便您可以与它们共享typo3conf/ext文件夹
- 持续支持,因为此插件可以更新您的配置文件,所以您的typo3配置可以通过简单的
composer update
随着时间的推移而改进。
以后要添加的其他事项
- 允许在项目中或其他扩展中添加自己的生成器(如插件内的生成器)
- 直接支持使用共享的l10n文件夹支持翻译-locallang扩展
- 生成bitbucket流水线以实现自动部署 ~ 但如果需要可以手动添加
- 如果安装了新闻扩展,则创建本地新闻扩展
- 如果安装了solr扩展,则创建本地solr扩展
- 为静态文件缓存创建服务器配置
- 如果需要,添加https重定向配置
- 添加服务器配置以阻止对像favicon.ico这样的文件进行php访问,以提升性能
- 使用make命令轻松创建更多本地扩展
- 生成lint命令以强制执行良好的编程习惯 ~ 与bitbucket流水线配合使用很棒
- 甚至可能自动生成基本测试框架