docker - 如何使用 docker 和 ddev 设置 TYPO3 站点?

标签 docker typo3 ddev

我是 docker 新手,有人告诉我 ddev是设置本地容器来运行 TYPO3 项目的简单方法。

但是我很困惑。我还不熟悉所有这些容器。我应该如何继续掌握?

最佳答案

本教程基于 https://docs.typo3.org/m/typo3/guide-contributionworkflow/master/en-us/Appendix/SettingUpTypo3Ddev.html,但请注意 – 如果您想为 TYPO3 核心做出贡献,那么这是一份分步手册。如果您想运行自己的网站,则“克隆 TYPO3”部分不适用。

所以开始这样:

  1. 从以下位置安装 Docker(桌面应用程序即可) https://www.docker.com/products/docker-desktop
  2. 安装 ddev:https://ddev.readthedocs.io/en/latest/#installation(Mac:brew tap drud/ddev && brew install ddev)
  3. 创建一个要运行站点的目录:mkdir mysite; cd 我的网站
  4. 配置 ddev:运行ddev config 向导中没有太多可供选择的内容。您可以设置 Web 根目录(例如 public_html,这样您的级别就更高)并从一些 CMS 预设中进行选择。它们不会改变太多,在 TYPO3 的情况下,它将管理数据库连接和一些 nginx 设置。 将创建文件 .ddev/config.yaml。在其中您可以找到很多选项。
  5. 添加您的网站(如有必要,运行 Composer)
  6. 使用 ddev start 运行 ddev
  7. 查看 mkcert 是否已安装,如果没有,请按照提供的说明进行操作(这将确保您可以使用自签名证书,至少在 Firefox 中)(mac:brew install mkcert nss; mkcert -install)
  8. ddev会输出一些信息,你可以在哪里找到你的站点,哪个端口,phpmyadmin在哪里等等
  9. ddev help 为您提供更多命令
  10. 如果您想登录容器,请使用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
  11. 现在,如何连接到 docker 容器内的数据库? 运行ddevdescribe,您将获得登录数据。基本上一切都是 db
  12. 对于 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" 现在我们可以设置这样的数据库管理工具(并存储书签):
  • connect to ddev mysql with sequel pro

    记住: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/

    相关文章:

    docker - grafana 5.1.0 docker 镜像权限问题

    TYPO3 9.5.x 创建指向 xml 站点地图的链接

    docker - docker compose + image elasticsearch :6. 8.0 的问题

    ddev - 我在发出 ddev 命令时看到段错误(pi-hole?)

    controller - TYPO3 调度任务与 Extbase 命令 Controller

    ddev - 安装 ddev 后未找到 `mkcert` 命令

    bash - 是否可以将Dockerfile中的ENV变量与正则表达式或包含之类的类似内容进行比较?

    mysql - Nodejs mysql.createConnection 不接受密码

    php - Docker连接到本地主机

    typo3 - 从 TYPO3 v9 升级到 v10 后 : Show Pages no longer work (Cannot access protected property)