Как настроить сайт TYPO3 с помощью docker и ddev? - PullRequest
3 голосов
/ 04 июля 2019

Я новичок в Docker, и мне сказали, что ddev - это простой способ настроить локальный контейнер для запуска проекта TYPO3.

Но я в замешательстве. Я еще не знаком со всеми этими контейнерами. Как мне действовать, чтобы получить контроль?

1 Ответ

1 голос
/ 04 июля 2019

Учебное пособие основано на https://docs.typo3.org/m/typo3/guide-contributionworkflow/master/en-us/Appendix/SettingUpTypo3Ddev.html, но помните - это пошаговое руководство, если вы хотите внести свой вклад в ядро ​​TYPO3. Если вы хотите запустить свой собственный сайт, раздел «Clone 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 mysite
  4. Сконфигурировать ddev: run ddev config В мастере не из чего выбирать. Вы можете установить web-корень (например, public_html, чтобы у вас был уровень выше) и выбрать один из нескольких пресетов CMS. Они не сильно меняются, в случае TYPO3 он будет управлять подключением к базе данных и некоторыми настройками nginx. Файл .ddev / config.yaml будет создан. В нем вы можете найти множество вариантов.
  5. Добавить .ddev / к gitignore
  6. Добавьте свой сайт (и, при необходимости, запустите composer)
  7. Запустите ddev с помощью ddev start
  8. Проверьте, установлен ли mkcert, если нет, следуйте предоставленным инструкциям (это позволит вам использовать самозаверяющие сертификаты, по крайней мере, в Firefox) (mac: brew install mkcert nss; mkcert -install)
  9. ddev выведет несколько сведений, где вы можете найти свой сайт, какой порт, где находится phpmyadmin и т. Д.
  10. ddev help дает вам больше команд
  11. Если вы хотите войти в контейнер, используйте 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
  12. Теперь, как подключиться к базе данных, которая находится внутри контейнера Docker? запустите ddev describe и вы получите данные для входа. Это в основном db для всего.
  13. Для 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. Вы также можете сделать это вручную; тогда вам нужно определить порт db для внешнего доступа к нему. Сделайте это в .ddev / config.yaml, добавив (например) host_db_port: "32778" Теперь мы можем настроить инструмент управления БД как таковой (и сохранить закладку):

connect to ddev mysql with sequel pro

Помните: PHP по-прежнему будет использовать порт по умолчанию 3306!

  1. Хорошо, поехали. ddev уже запущен, поэтому убедитесь, что вы находитесь в вашем локальном каталоге (где .ddev / is) и запустите ddev description, чтобы снова увидеть параметры. Вероятно, если вы перейдете на https://mysite.ddev.local,, вы обнаружите, что все из вашего webroot работает.
  2. Когда закончите, закончите с ddev stop. Хотя я не совсем уверен, где хранятся базы данных, когда ddev остановлен. Может быть, вы сначала получите дамп с ddev snapshot.
  3. Изучите множество других возможностей ddev с ddev help.
...