我是 docker 新手,有人告诉我 ddev是设置本地容器来运行 TYPO3 项目的简单方法。
但是我很困惑。我还不熟悉所有这些容器。我应该如何继续掌握?
最佳答案
本教程基于 https://docs.typo3.org/m/typo3/guide-contributionworkflow/master/en-us/Appendix/SettingUpTypo3Ddev.html,但请注意 – 如果您想为 TYPO3 核心做出贡献,那么这是一份分步手册。如果您想运行自己的网站,则“克隆 TYPO3”部分不适用。
所以开始这样:
- 从以下位置安装 Docker(桌面应用程序即可) https://www.docker.com/products/docker-desktop
- 安装 ddev:https://ddev.readthedocs.io/en/latest/#installation(Mac:
brew tap drud/ddev && brew install ddev
) - 创建一个要运行站点的目录:
mkdir mysite; cd 我的网站
- 配置 ddev:运行
ddev config
向导中没有太多可供选择的内容。您可以设置 Web 根目录(例如 public_html,这样您的级别就更高)并从一些 CMS 预设中进行选择。它们不会改变太多,在 TYPO3 的情况下,它将管理数据库连接和一些 nginx 设置。 将创建文件 .ddev/config.yaml。在其中您可以找到很多选项。 - 添加您的网站(如有必要,运行 Composer)
- 使用
ddev start
运行 ddev - 查看 mkcert 是否已安装,如果没有,请按照提供的说明进行操作(这将确保您可以使用自签名证书,至少在 Firefox 中)(mac:
brew install mkcert nss; mkcert -install
) - ddev会输出一些信息,你可以在哪里找到你的站点,哪个端口,phpmyadmin在哪里等等
ddev help
为您提供更多命令- 如果您想登录容器,请使用
ddev ssh
。这不用于更改文件等。文件会自动镜像到容器中!但您可以登录来安装二进制文件等。让我们尝试一下。 您可能需要一些命令:我们正在运行什么系统?uname -a
-> linuxkit//更新可用的软件包:sudo apt-get update
//搜索软件包apt-cache search packagename
//安装 Pdftools (pdftotext, pdfinfo..):sudo apt-get install poppler-utils
//获取 imagemagick 的路径(如果已安装):whereis Convert
(请记住,imagemagick 是一个集合,convert 是工具之一)//从容器中注销,返回到您的系统:exit
- 现在,如何连接到 docker 容器内的数据库?
运行
ddevdescribe
,您将获得登录数据。基本上一切都是db
。 - 对于 TYPO3,
ddev setup
命令提供了一个可以使用的AdditionalConfiguration.php
文件。但它缺少两个重要参数:SystemMaintainers 和 Installtool Password。这是一个例子。
$GLOBALS['TYPO3_CONF_VARS']['SYS']['trustedHostsPattern'] = '.*';
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default'] = array_merge($GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default'], [
'dbname' => 'db',
'host' => 'db',
'password' => 'db',
'port' => '3306',
'user' => 'db',
]);
// This mail configuration sends all emails to mailhog
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport'] = 'smtp';
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport_smtp_server'] = 'localhost:1025';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = '*';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['displayErrors'] = 1;
// add these
$GLOBALS['TYPO3_CONF_VARS']['SYS']['systemMaintainers'] = [123,456];
$GLOBALS['TYPO3_CONF_VARS']['BE']['lockSSL'] = 1; // optional
$GLOBALS['TYPO3_CONF_VARS']['BE']['installToolPassword'] = '123';
- 但是如果您想使用单独的工具而不是预配置的 phpMyAdmin 访问数据库怎么办?如果您使用sequel pro,只需运行
ddev Sequelpro
,您的数据库就会在sequel pro中自动启动。 您也可以手动执行此操作;然后您需要定义数据库端口以从外部访问它。在 .ddev/config.yaml 中执行此操作,方法是添加(例如)host_db_port: "32778"
现在我们可以设置这样的数据库管理工具(并存储书签):
记住:PHP 仍将使用默认端口 3306!
- 好的,我们开始吧。 ddev 已经启动,因此请确保您位于本地目录(其中 .ddev/所在)并运行 ddev describe 以再次查看参数。也许,如果您访问 https://mysite.ddev.local ,您会发现 Webroot 中的所有内容都正常工作。
- 完成后,使用
ddev stop
结束。我还不确定当 ddev 停止时数据库会保存在哪里。也许您首先使用ddev snapshot
获得转储。 - 使用
ddev help
探索 ddev 的更多可能性。
关于docker - 如何使用 docker 和 ddev 设置 TYPO3 站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56890563/