Меню Рубрики

Установка cms modx evolution

Устанавливаем MODx Evo на локальный сервер или собственный хостинг

4 марта 2014 By Сергей Нечипорук Нет комментариев

Здравствуйте дорогие читатели моего блога. Поскольку мне часто приходиться работать с различными CMS, для реализации тех или иных задач, то я решил немного расширить список систем управления сайтом. Этой статье я запускаю новую ветку, которая будет посвящена – MODx Evolution.

В первую очередь – этот движок отлично подходит для создания сайтов визиток.

Из основных преимуществ можно выделить:

  • небольшой объем файлов;
  • быстродействие;
  • гибкость разработки;
  • бесплатность движка.

В каких случаях я бы не советовал использовать MODx Evolution:

  • если вам нужно создать крупный бизнес сайт, с каталогом продукции, для этих целей лучше использовать Joomla + K2.
  • если ваш проект будет насчитывать более 5 тысяч страниц. Эта система, мягко говоря, не рассчитана, на такие объемы информации.
  • также, если вы полный новичок, лучше всего делать первые шаги с более простыми CMS – Joomla, WordPress.

Установка MODx Evolution

Давайте приступим к установке CMS MODx Evolution, на наш сервер. Принцип установки, как и у большинства подобных систем очень похож.

Пошаговое руководство:

1.) Создаем базу данных и пользователя базы данных в панели phpMyAdmin. Детальное описание этого этапа я описывал в статье — «Установка и первоначальная настройка CMS Joomla». Повторяться я не буду, вы сможете с легкостью повторить эти действия, и думаю проблем с этим возникать не должно.

2.) Теперь вам нужно скачать дистрибутив с файлами самого движка. Сделать это можно на официальном русскоязычном сайте CMS MODx по адресу — http://modx.com/download/evolution/. Я работаю именно с версией Evolution. Она более легкая в освоении, и идеально подходит для сайтов визиток.

3.) Закачиваем файлы на сервер в корневую папку нашего сайта. После чего, с помощью Total Commander, изменяем файл — ht.access, и придаем ему вид — .htaccess.

4.) В браузере набираем адрес и попадаем в первое окно установки этой системы. Хоть это окно и выглядит настораживающее, но все так и должно быть. Смело жмем «Install Now».

5.) Выбираем язык установки. В данном случая я выбрал «Русский», вы можете взять тот, который нужен именно вам. После выбора языка нажимаем кнопку «Next».

6.) На этом шаге вам будет предложенный список действий, которые вы можете предпринять. Например, установить систему MODx с нуля, или же произвести ее обновление. Мы ставим эту систему с нуля, поэтому выбираем первый пункт и жмем «Далее».

7.) Подключаем созданную ранее базу данных.

7.1) Для начала появиться только три поля:

  • хост. Обращайте внимание на хост! На Денвере это значение будет — localhost, а на любом из хостингов оно может быть своим. Для получения правильного значения хост можете обратиться в службу поддержки вашего хостинга.
  • имя пользователя. То, которое вы создали в панели phpMyAdmin.
  • пароль. При создании пользователя не забудьте его сохранить!

После ввода этих значений, нажимаем на ссылке – «Нажмите здесь для проверки соединения с вашим сервером базы данных и получения сопоставления кодировки».

Если вы ввели все верно, то перед вами должно появиться сообщение – «Подключение: успех — сопоставление базы данных доступно». Если нет, проверьте введенные значения на их корректность.

7.2) Второй подшаг – это подключение самой базы.

  • Имя базы данных. Это то имя, которые вы вписывали при создании базы в phpMyAdmin.
  • Префикс таблиц. Это значение можно изменить. Должны присутствовать только англоязычные символы! Делается это с целью защиты БД от взлома. Я оставлю значение по умолчанию.
  • Метод сопоставления. Вам нужно из выпадающего списка выбрать значение – «SETNAMES».
  • Сопоставление, или же простыми словами кодировка. Должен быть выставлен параметр – «utf8_general_ci».

После заполнения полей нажимаем на ссылку – «Нажмите здесь для создания базы данных или для проверки, что такая база существует».

7.3) Если все сделано правильно вы попадете на следующий подшаг. При этом перед вами должно появиться сообщение – «Проверка базы данных: успех — база данных выбрана».

На этом шаге вы должны ввести настройки администратора. А именно: имя, Email, пароль и язык админ панели.

После выполнения этих настроек жмем кнопку «Далее».

8.) Этап настройки «Дополнительных элементов».

Я бы советовал оставить все отмеченные галочки, кроме пункта – «Установить/Переписать Пример веб-сайта». Это вам сейчас не к чему.

9.) Проверка перед установкой. Тут будет проверяться наличие БД, а также папок, которые вы заливали вместе с дистрибутивом MODx Evolution. Если некоторые папки будут выдавать ошибку, проверьте права на эти директории, у них должно быть значение 755 или же 777, в зависимости от хостинга.

Читайте также:  Установка epson l200 без диска

В самом низу необходимо поставить галочку соглашения с условиями лицензии. Жмем кнопку – «Установить».

10.) Перед Вами появится полный отчет об установке. В самом низу будет надпись «Установка успешно завершена!».

Также, необходимо поставить галочку, для того чтобы удалить папку с запуском инсталляции MODx. Если этого не сделать – это чревато большими потерями данных и проведенной вами работы. Жмем кнопку – «Закрыть».

11.) Перед вами появится окно входа в административную панель MODx.

Поздравляю! На этом установка системы завершена.

Подписывайтесь на обновления, а я буду стараться радовать вас новыми техническими моментами онлайн бизнеса.

источник

Урок1 — Установка MODx

Вот мы и подошли к нашему первому и самому важному уроку, поскольку без установки веб-сервера и CMS продолжить, просто не получится.

Как я говорил в прошлом уроке, нам нужно будет скачать denwer, сделать это можно здесь. Инструкцию по установке можно прочитать на том же официальном сайте, на всякий случай я ее приведу.

Инструкция по установке Denwer

1) Запустите скаченный установочный архив. Откроется окно установки.

2) Укажите директорию для установке, а также дополнительные настройки.

3) Если установка закончилась, то на рабочем столе у вас должен появится ярлык denwer. Кликните по ярлыку denwer на рабочем столе.

4) Откройте окно браузера и наберите в строке http://localhost.

Появится следующее окно, это означает, что денвер установился.

Установка CMS Modx Evolution

Теперь перейдем установке Modx.

1) Распаковываем скаченный архив с CMS в папку: ваша_директория:/WebServers/home/сайт/www/. Где «ваша_директория» — директория, которую вы указали при установке денвера, а сайт название вашего сайта.

На изображение видно, что у вас должно получиться в итоге.

2) Откройте окно браузера и впишите в строку браузера название вашего сайта: http://имя_сайта

Должно появиться следующее предупреждение: Modx еще не установлен или конфигурационный файл не найден. Хотите установить сейчас?

Кликаем на «install now». В открывшемся окне будет предложено выбрать язык, выбираем русский и жмем далее.

Далее будет предложено выбрать тип установки, выбираем новую установку modx и жмем далее.

3) Создаем базу данных (БД) и настраиваем ее.

Для того чтобы создать БД набираем в браузере http://localhost/Tools/phpMyAdmin, в открывшемся окне выбираем вкладку «DataBases». Вписываем название БД в поле «Create new database» и выбираем кодировку «utf8_general_ci», жмем кнопку «Create».

Теперь переходим на вкладку «Privileges», нажимаем на кнопку «Add new user», заполняем поля «User», «Host», «Password»

4) Возвращаемся к установке Modx. И на следующей странице установке заполняем данные, для подключения к БД.

Нажимает на «Test database» для проверки с соединением с БД, далее заполняем информацию о кодировке и префиксах нашей БД:

Жмем на «Test selection of yout database» для того, чтобы проверить подключение к БД.

5) Далее указываем настройки панели администратора и язык по умолчанию.

Жмем «Далее», установка закончена.

В этом уроке мы ознакомились с пошаговой инструкцией установке Modx Evolution, а в следующем я расскажу о настройках Modx. После чего мы наконец сможем приступить к практическим урокам.

источник

Evolution CMS (2.0 alpha) на компонентах Laravel

MODX Evolution is dead long live Evolution CMS on Laravel components

Что такое Evolution CMS 2.0?Этот все тот же MODX Evolution, вот только под капотом будет уже не просто набор каких-то разрозненных функций, объединенных в класс под названием DocumentParser, а целый ряд компонентов, тех самых на которых собран и фреймворк Laravel. Это позволяет нам не писать кучу новой документации и примеров про кешер, события, логирование, файловую систему, кофиги, консоль, миграции, сиды, шаблонизатор Blade, модели Eloquent, Observers, ServiceProvider…


Немного истории — Разработчики Рэймонд Ирвинг (англ. Raymond Irving) и Райан Траш (англ. Ryan Thrash) представили первый релиз MODX CMS в 2004 году.
— С 2012 Года после выхода MODX Revolution, версия Evolution командой разработки MODX LLC больше не поддерживается, но при этом активно развивается силами сообщества MODX Evolution, не уступая в развитии новой ветке.
— В марте 2013 выходит релиз 1.0.9 ( habr.com/post/173667/ ), который создан исключительно силами сообщества, под руководством Дмитрия Лукьяненко и Евгения Борисова (продолжающих работать над Evo и по сей день). Но релизы все еще выходят под эгидой MODX LCC (с публикацией на modx.com).
— В апреле 2017 MODX LCC приняли решение полностью отказаться от продвижения MODX Evolution ( modx.com/blog/evolution-cms-has-a-new-home ). И с этих пор нашей командой был выбран свой собственный курс развития, не ставящий целью гонку за MODX REVO, как это было ранее.
— В июле 2017 выходит первый релиз Evolution CMS 1.3.0 github.com/evolution-cms/evolution/releases/tag/1.3.0 с полностью переработанным дизайном и целым рядом новых возможностей, воплотивших пожелания сообщества.
— В ноябре на конференции MODXpo 2017 Лукьяненко Дмитрий успешно выступает с докладом о делах в Evolution CMS (https://modcasts.video/videos/evo-cms-life-after-modx).
— Январь 2018. Выход второго крупного релиза Evolution CMS 1.4.0 ( github.com/evolution-cms/evolution/releases/tag/1.4.0 ), кардинально изменившим ряд подходов в разработке.
— Июнь 2018. Принято решение о том чтобы переписать Evolution CMS с использованием компонентов Laravel, но с обязательным условием сохранения полной обратной совместимости.
— Декабрь 2018. Состоялся первый релиз Evolution CMS 2.0.

Читайте также:  Установка магнитолы для пежо 407

Очень важным моментом было условие обратной совместимости со старыми версиями системы и у нас это получилось! Можно смело обновить сайт с версии 0.9.6 выпущенной в 2005 году до новой 2.0. Поправить придется только тот код который был написан без учета API системы. Все стандартные дополнения также обновляются и функционируют на новой версии.

Почему именно Laravel?Обширная документация. Активная поддержка. Множество готовых пакетов, которые можно будет использовать и на Evolution 2.0 Изначально мы видели лишь два пути: работать и дальше с устаревшим кодом Evolution, пока это пипл хавает, а сообщество не разбежалось, либо же начать писать новый проект стараясь максимально сохранить старую парадигму разработки с деревом ресурсов, чанками, сниппетами, ТВ параметрами и т.д. Но мы нашли третий вариант в котором понемногу адаптируем устаревший код, сохраняя при этом обратную совместимость.

В ветке 2.0 можно будет работать по старому?Да, можно. Старые конструкции будут и дальше работать, но всю гибкость нововведений вряд ли раскроют. Банальный переход от массива $modx->config к методу $modx->getConfig() уже позволит манипулировать системными настройками движка, которые берутся из базы. А совершить такой переход в сниппетах можно уже сейчас, не обновляясь до версии 2.0, т.к. метод getConfig() есть и в версии 1.4. Плагины на события можно вешать как раньше через админку или через файлы. Все это совершенствует командную разработку, упрощает ведение проекта через git. Разработчики оценят удобство, для остальных внешние изменения не будут столь значительными.

Под EVO мало готовых решений. Не лучше ли было потратить время на их разработку вместо нового релиза?Разработчиков, которые способны написать более или менее вменяемое дополнение в сообществе осталось довольно неммного. Многим просто надоело говнокодить и изобретать велосипеды чтобы поддерживать проблемы старых версий.

Даже если рассматривать на примере файловой системы, то есть целый ряд проблем: нет возможности работать с файлами (копировать, перемещать, удалять) и все это рекурсивно с правильной расстановкой прав которые выставлены в настройках движка. При работе с базой мы вынуждены постоянно заботиться об sql-injection, т.к. зачастую работа происходит с сырыми данными. При работе с шаблонами мы вообще ничего не можем — даже стандартный метод parseChunk по умолчанию не понимает плейсхолдеров. Таким образом, вместо того, чтобы разработчик мог сосредоточиться на бизнес логике приложения, он тратит кучу времени на то, чтобы реализовать одни и те же вещи. А потом этот разработчик выпускает еще одно решение и там опять нужно сделать эти же вещи. Так появляется копипаст, который приводится к использованию однотипных классов/функций/методов в разных компонентах — яркий пример phx.

В общем не для 2018 года такие методы разработки. Таким образом, в Evo очень мало людей, которые бы могли что-то толковое написать и поделиться решением. Поэтому прежде чем писать какие-то компоненты, мы хотим решить все эти проблемы и дать больше свободы разработчикам.

Зачем мне изучать что то новое а не оставаться на 1.4 ?На версии 1.4 мы не можем установить целый сайт 1 кнопкой. Не можем работать в дев-прод версии адекватно, не можем, полноценно использовать шаблоны в файлах. Нет миграций и т. д. В версии 2.0 это все есть. Это как переход от нативных sql запросов на модели.Те, кто работает с моделями в разных фреймворках прекрасно понимают в чем преимущество. Те, кто не умеют работать делают SELECT/INSERT/UPDATE прямо в базу и считают это нормой.

Читайте также:  Установка колонок сандеро 2014

Понять принципы работы в EVO можно за пару вечеров, а все остальные знания которые нужны для работы с EVO нужны также и для работы с Laravel. Теперь не нужно отдельно учить что то, что пригодиться только при использованиии EVO. Это даст универсальную возможность легко работать с EVO зная Laravel и легко переходить к Laravel, работая с EVO.

А так ли все просто и можно ли использовать готовые компоненты от Laravel?Вот есть пакет для генерации схемы таблиц в базе (https://github.com/beyondcode/laravel-er-diagram-generator) Установка это composer require, и создание файла провайдера(core/custom/config/app/providers/Diagram_Generator.php) из 1 строчки:

Ближе к делу:
Новые настройки и первые плюсы — Вся папка core/config и core/custom/config уже работает с конфигами в стиле Laravel. Для задействования .env файла необходимо установить пакет vlucas/phpdotenv

— Работа с Composer: добавление зависимостей в core/custom/composer.json и выполнение composer upd из папки core

— Для удобства работы включим инструменты для отладки: Debug и debugbar Tracy
— Debug: cоздаем файл core/custom/config/app/debug.php с содержимым:

— Функция dump которая показывает информацию в красивом виде:

— Папка с логами ошибок core/storege/logs
— Tracy: cоздаем файл core/custom/config/tracy/active.php с содержимым:

Работа с Шаблонами и Чанками с использованием шаблонизатора BLADE из файлов без использования админки

Привязка шаблонов к документу без необходимости заходить в админку EVOДля работы нам потребуется создать папку views в корне сайта, в которой у нас будут располагаться шаблоны. Собственно и все, никаких дополнительных действий в виде установки чего-либо не требуется.

Evo будет искать шаблоны в следующем порядке:
— tpl-3_doc-5.blade.php — используется для ресурса с id 5 и шаблоном 3;
— doc-5.blade.php — используется для ресурса с id 5;
— tpl-3.blade.php — используется для всех ресурсов с шаблоном 3.

Работа со стандартными элементами посредством шаблонизатора BLADEПрежде чем приступать к работе с BLADE настоятельно рекомендуем ознакомиться с документацией BLADE: laravel.com/docs/5.7/blade

Пример готового шаблона с использованием BLADE можно глянуть тут: github.com/dmi3yy/Evo-demosite-on-blade

Работа со сниппетами и плагинами из файлов без использования админки, а также использование событий LaravelВ Evolution 2.0 вводим новую сущность package. Это пакет дополнений который может включать в себя сниппеты, плагины, чанки, модули. Модули пока требуют прописывать себя через админку, но в будущем переделаем, чтобы автоматически подтягивались, также как и все остальные элементы.

1. Создадим наш пакет(example):
Создадим файл: core/custom/packages/example/src/ExampleServiceProvider.php

И так мы добавили наш пакет в котором указали пространство имен для сниппета, что дает нам возможность использовать одинаковые сниппеты из разных пакетов, не переживая за то что они будут конфликтовать. Тут же прописываем прослушку событий (плагины) и указываем папку для чанков.

2. Зарегистрируем наш пакет в EVO:Создадим файл: core/custom/config/app/providers/Package_Example.php

3. Добавим чанк:
Создадим файл: core/custom/packages/example/chunks/subdir/test.html

Содержимое этого файла обрабатывается парсером MODX, соответственно в нем можно использовать обычные плейсхолдеры MODX (пример с поддержкой чанков с BLADE будет позже).

4. Добавим сниппет:
Создадим файл: core/custom/packages/example/snippet/subdir/test.php

Вызывать сниппет в текущем примере нужно вот так:

Но если не указывать неймспейс для пакета и не вкладывать сниппет в подпапку, то получим всем привычный вариант

Таким образом мы видим, что теперь можно полноценно работать с дополнениями Evo без необходимости хранить код в Базе данных. При этом оставив полную обратную совместимость с предыдущими версиями.

Работа с DB, MODELSВсе согласно документации Laravel laravel.com/docs/5.7/database, laravel.com/docs/5.7/eloquent Модели в папке core/src/Models с namespace EvolutionCMS\Models. Пример:

Из ближайших планов:
— Закончить работы по рефакторингу шаблонов админки с полным переносом их на BLADE
— Больше удобства для работы с DEV PROD: миграции, cиды, работа через консоль(artisan), решение проблемы с тем что на DEV и PROD разные id у документов.

— Отделение ядра от дополнений и перенос выбора что установить по умолчанию в момент установки (все что выбрали загрузится и установиться, а остальное не будет загружено).
— Доработка виджета для контроля устаревших дополнений и своевременном уведомлении о том, что рекомендуется обновить, с различным уровнем приоритетов.
— А так же больше документации и примеров.

Как помочь с тестированием?Присылайте ваши пожелания и багрепорты на github: github.com/evolution-cms/evolution/issues
Обязательно указывайте:
— Версию EVO
— Версию PHP
— Версию Mysql
— Скрин с ошибкой
— Как воспроизвести

Это поможет больше времени потратить на код, а не на выяснения что же не работает

источник

Добавить комментарий