4

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

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

4

1 回答 1

1

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

所以开始这样:

  1. 从https://www.docker.com/products/docker-desktop安装 Docker(桌面应用程序很好)
  2. 安装 ddev: https://ddev.readthedocs.io/en/latest/#installation (Mac: brew tap drud/ddev && brew install ddev)
  3. 创建要在其中运行站点的目录:mkdir mysite; cd mysite
  4. 配置 ddev:运行ddev config 向导中没有太多选择。您可以设置 web-root(例如 public_html,因此您有更高的级别)并从一些 CMS 预设中进行选择。它们不会改变太多,在 TYPO3 的情况下,它将管理数据库连接和一些 nginx 设置。将创建文件 .ddev/config.yaml。在其中你可以找到很多选择。
  5. 添加您的网站(如有必要,运行 composer)
  6. 运行 ddevddev start
  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 是一个集合,转换是工具之一)//从容器中注销,回到您的系统:exit
  11. 现在,如何连接到位于 docker 容器内的数据库?运行ddev describe,您将获得登录数据。它基本上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';
  1. 但是,如果您想使用单独的工具而不是预配置的 phpMyAdmin 来访问数据库怎么办?如果您使用 sequel pro,只需运行ddev sequelpro,您的数据库将在 sequel pro 中自动启动。您也可以手动执行此操作;那么您需要定义数据库端口以从外部访问它。在 .ddev/config.yaml 中执行此操作,通过添加(例如)host_db_port: "32778"现在我们可以设置一个数据库管理工具(并存储书签):

使用 sequel pro 连接到 ddev mysql

请记住:PHP 仍将使用默认端口 3306!

  1. 好的,我们开始吧。ddev 已经启动,因此请确保您位于本地目录(.ddev/ 所在的位置)并运行 ddev describe 以再次查看参数。可能,如果您访问https://mysite.ddev.local,您会发现您的 webroot 中的所有内容都在工作。
  2. 完成后,以ddev stop. 不过,当 ddev 停止时,我还不确定数据库的持久化位置。也许你先用ddev snapshot.
  3. 探索更多 ddev 的可能性ddev help
于 2019-07-04T15:02:00.293 回答