【问题标题】:How to set up a TYPO3 site with docker and ddev?如何使用 docker 和 ddev 建立 TYPO3 站点?
【发布时间】:2019-11-15 08:24:39
【问题描述】:

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

但我很困惑。我还不熟悉所有这些容器。我应该如何着手?

【问题讨论】:

    标签: docker typo3 ddev


    【解决方案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
    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 的情况下,它将管理 db 连接和一些 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 是一个集合,转换是工具之一)// 从容器注销,回到您的系统: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" 现在我们可以这样设置数据库管理工具(并存储书签):

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多