May 7th, 2019

Docker для windows - php apache mysql phpmyadmin сборка

Мне понадобилась рабочая сборка именно с apache2, тк важно было наличие файла .htaccess, чтобы симитировать окружение как на боевом хостинге.
Отличный образ linux php apache mysql phpmyadmin docker с предустановленными настройками по умолчанию https://github.com/sprintcube/docker-compose-lamp
можно выбрать любую версию php: 5.6, 7.1, 7.2
Сразуже можно развернуть, что очень удобно!

Заходим на сервер через командную строку
Для входа в контейнер, в котором у вас установлен web server. Набрать в консоли:
docker exec -it 7.2.x-webserver /bin/bash

Как подключиться к бд mysql из командной строки
Из контейнера веб сервера к mysql с комощью командной строки мне не удалось подключиться.
Это можно сделать из командной строки windows. Но! надо обязательно установить mysql shell. (При установке mysql для windows выберите данный пункт)
Далее открываете это приложение (будет выглядеть как окно терминала) и если отображается в строке mysql js. То необходмимо ввести команду:
\sql
- чтобы переключить командную строку в данный режим работы.
И дальше:
\connect root@localhost
вводите пароль и далее все стандартно: например, show databases;. и тд


Узнать какие контейнеры запущены:
docker ps

Остановить не нужные контейнеры
docker stop 9038 f15c

Запустить контейнеры из текущей категории:
 docker-compose  up -d

Как установить modx на локальный сервер через git

Рассмотрю пример как быстро размернуть Modx на локальном сервере.
У меня это получилось не с первого раза, потому что установка modx через git не такая быстрая в одно касание. А приходится делать дополнительные обязательные действия (зачем и почему так сделано, когда можно было обойтится и без них - хз, такой вот Modx).

1. Вам нужно подготовить рабочее окружение,а это: nginx/apache + php + mysql
Кратко я изложил это в данном посте. Я делал окружение через Docker в Windows. Вы можете ипользовать любое другое окружение.
Создайте элементарный скрипт, разместите его и зайдите на http://localhost - чтобы убедиться что он у вас работает.
2. Скачиваем modx.
Переходим на страницу https://docs.modx.com/revolution/2.x/getting-started/installation/git-installation
Читаем и обязательно выполняем пункт Run the Build! - Если его пропустить то modx при установке выдаст ошибку и работать не будет
Итак, я тут все опишу что надо делать.
Все делаем через терминал:
1. переходим в пустую папку, в которой у вас будет размещен сайт.
2. Выполняем:
git clone http://github.com/modxcms/revolution.git .


Обратите внимание что на конце "пробел и точка" - чтобы репозитория клонировалась в текущую папку. (можно и по другому, но мне так удобней)
git fetch --all
git checkout v2.7.1-pl  (стабильная последняя версия на момент 07.05.2019)
docker-compose up -d


3. Переименовываем _build/build.config.sample.php to _build/build.config.php и прописываем настройки нужные в нем
4. Переименовываем _build/build.properties.sample.php to _build/build.properties.php и прописываем настройки нужные в нем
5. Запускаем transport.core.php (из командной строки или из браузера)
cd _build
php transport.core.php



6. Проверяем файлы и папки, которые создались в результате п.5.
core/packages/core.transport.zip, core/packages/core/, core/packages/core/manifest.php
7. И только теперь можно переходить к устанвоке через localhost/setup/
Алилуя!!!

Ошибки, которые могут появится

1. Не удалось установить MODX /core/packages/core.transport.zip - данный файл отсутствует

Выглядит так: Не удалось установить MODX, поскольку MODX не смог распаковать пакет /var/www/html/core/packages/core.transport.zip
Да, все правильно, этот файл отсутствует в репозитории Modx на гитхабе.
Что делать? Выполнять пункты 3, 4, 5, 6 - которые написаные чуть выше!

2. Parse error: syntax error, unexpected '{' in /var/www/html/core/config/config.inc.php on line 13

Да, это прям обязательная ошибка, без которой ну никак я не мог обойтись
Что делать? Открываем данный файл, находим 13 строчку и ставим значение в 'кавычки'. Тоже самое делаем и с 14 строкой (вроде бы 14 строка, пишу по памяти)

Если все сделал по данной инструкции, но по прежнему возникают ошибка
1. Удаляете всё из папки core/cache/*
2. Удаляете бд и создаете её заново
3. установите с нуля через  /setup

Вроде всё! Вопросы? пишите в комментариях, постараюсь помочь!