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

时间:2019-07-04 15:02:00

标签: docker typo3 ddev

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

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

1 个答案:

答案 0 :(得分:1)

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

所以这样开始:

  1. 从以下位置安装Docker(可以使用Desktop App) 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 在向导中没有太多选择。您可以设置网络根目录(例如,public_html,因此您具有更高的级别),然后从一些CMS预设中选择。它们之间的变化不大,对于TYPO3,它将管理数据库连接和一些nginx设置。 将创建文件.ddev / config.yaml。在其中您可以找到很多选择。
  5. 将.ddev /添加到gitignore
  6. 添加您的网站(并在必要时运行composer)
  7. 使用ddev start
  8. 运行ddev
  9. 查看是否已安装mkcert,如果未安装,请按照提供的说明进行操作(这将确保至少在firefox中可以使用自签名证书)(mac:brew install mkcert nss; mkcert -install
  10. ddev将输出一些信息,您可以在其中找到您的站点,哪个端口,phpmyadmin在哪里等
  11. ddev help为您提供更多命令
  12. 如果要登录到容器,请使用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 < / li>
  13. 现在,如何连接到Docker容器中的数据库? 运行ddev describe,您将获得登录数据。基本上所有内容都是db
  14. 对于TYPO3,ddev setup命令提供了一个AdditionalConfiguration.php文件可以使用。不过,它缺少两个重要参数,即SystemMaintainers和Installtool密码。这是一个例子。
$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中自动启动。 您也可以手动执行此操作。那么您需要定义db端口以从外部访问它。通过添加(例如)host_db_port: "32778"在.ddev / config.yaml中执行此操作。现在,我们可以像这样设置数据库管理工具(并存储书签):

connect to ddev mysql with sequel pro

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

  1. 好,我们走了。 ddev已经启动,因此请确保您位于本地目录(.ddev /所在的目录)中,然后运行ddev describe再次查看参数。如果您转到https://mysite.ddev.local,则可能会发现您的webroot一切正常。
  2. 完成后,以ddev stop结尾。我还不确定当ddev停止时数据库在哪里持久保存。也许您首先使用ddev snapshot进行了转储。
  3. 使用ddev help探索ddev的更多可能性。