Статьи

Начало работы с платформой eZ на Vagrant

В прошлом году у меня был несколько негативный опыт установки eZ Publish на Vagrant box. С тех пор они значительно улучшили как программное обеспечение, так и дружественность к виртуальным машинам, в общем, упрямо удаляя устаревший стек . Настройка виртуальной машины, которую мы будем использовать в этом учебном пособии, происходит из лабораторий NetGen и ума @vranac , и сопровождается процедурой установки на нашей собственной Homestead Improved, модифицированной по-настоящему вашим.

eZ Publish Logo

Примечание: новая система eZ, теперь называемая платформой eZ, все еще находится в глубоком альфа-режиме и еще не содержит в себе все функции старой. На самом деле, если вы хотите сделать какой-либо серьезный контент-менеджмент и модификацию, вам нужно добавить устаревший стек в процесс, процесс которого описан здесь .

Настройка Vranac

Vranac определил рецепт Ansible для предоставления необработанного Ubuntu / Trusty-бокса со всеми предпосылками для платформы eZ. Это означает, что, несмотря на то, что ваш raw box может многократно использоваться для других проектов (таким образом экономя место на диске), процедура подготовки может быть очень длительной (более 40 минут). Аналогично, для использования этого подхода вам понадобится Ansible на хост-машине, в отличие от Homestead Improved . Вам решать, какие настройки вам нравятся больше — оба работают просто отлично. Инструкции для Homestead Improved приведены в следующем разделе, но сначала давайте посмотрим на подход Вранака.

Требования

Ваш хост-компьютер должен иметь:

Обратите внимание, что если вы работаете в Windows, Ansible недоступен. Однако конфигурация обеспечит загрузку и установку Ansible внутри гостевой виртуальной машины и выполнит ее изнутри, поэтому не стоит беспокоиться.

Клон и вверх

Чтобы настроить среду, мы клонируем настройку Vagrantfile @vranac и запустим ее.

 git clone https://github.com/netgen/vagrant-ansible-ezpublish.git cd vagrant-ansible-ezpublish vagrant up 

Процедура up должна позаботиться обо всей инициализации автоматически, включая общий доступ к папкам. Это может занять некоторое время, в зависимости от скорости вашего компьютера и вашего интернет-соединения. Он также может попросить вас ввести пароль администратора (или получить диалоговое окно UAC в Windows) на хост-компьютере из-за использования NFS для обмена файлами.

По умолчанию папка, в которой вы находитесь ( vagrant-ansible-ezpublish ), будет связана с var/www/ezpublish внутри виртуальной машины. База данных с именем ezpublish также будет автоматически создана с именем пользователя ez и паролем ez .

Заключительные шаги

Теперь нужно учесть пару предостережений.

Из-за некоторых махинаций Apache 2.4, которые команда не смогла обойти, папка на виртуальной машине, которая используется совместно с хост-машиной, является var/www/ezpublish а не традиционной var/www . Таким образом, чтобы включить экземпляр платформы eZ на этой виртуальной машине, вам нужно сделать следующее, как только вы окажетесь в машине с vagrant ssh

 cd /var/www/ezpublish composer create-project ezsystems/ezplatform mv ezplatform/* . 

Мы должны сделать это, потому что команда create project создает проект eZ в папке ezplatform , а ezplatform Apache связан с ezpublish .

Затем установите демонстрационный пакет и очистите кеш:

 php ezpublish/console ezplatform:install --env prod demo php ezpublish/console cache:clear --env prod 

Чтобы посетить 172.21.12.10 интерфейс, перейдите к 172.21.12.10 , а чтобы посетить внутренний, перейдите к 172.21.12.10/shell :

ezPublish shell

Учетные данные для входа — admin / publish .

Важное примечание : из-за этой настройки, если что-то пойдет не так, вы не должны rm -rf содержимое папки ezpublish и предполагать, что все будет хорошо, если вы создадите новый проект. Если вы удаляете папку или ее содержимое, вы фактически удаляете содержимое папки на хосте, которое включает в себя сценарии инициализации и Vagrantfile. Чтобы избежать этих проблем, вы можете:

  • создайте подпроекты внутри /var/www/ezpublish например, так /var/www/ezpublish/project1 и настройте новые виртуальные хосты Apache для этого

или следуйте приведенным ниже инструкциям, применимым к Homestead Improved, но легко применимым ко всем другим системам и средам виртуальных машин.

Настройка eZ на Усадьбе Улучшено

Вышеуказанная настройка предпочитает Apache вместо Nginx и немного неуклюжа с точки зрения многопроектных настроек. Давайте настроим его в среде, с которой мы сейчас знакомы и с которой мы сможем приступить к работе менее чем за 10 минут: Homestead Improved . Следуйте инструкциям и настройте их. Затем vagrant halt его в режиме выключения и создайте новый сайт:

 - map: ez.app to: /home/vagrant/Code/ezplatform/web 

Повторное снабжение vagrant provision .

Теперь, когда наш новый хост Nginx настроен, давайте войдем в виртуальную машину и создадим новую базу данных MySQL:

 mysql -u homestead -psecret -e "create database ezpublish"; 

Обратите внимание, что имя пользователя и пароль являются homestead / secret в соответствии с конфигурацией усадьбы по умолчанию.

Нам также нужно установить несколько расширений PHP:

 sudo apt-get update sudo apt-get install php5-intl php5-xsl 

Теперь перейдем в папку Code внутри виртуальной машины и создадим проект.

 cd ~/Code composer create-project ezsystems/ezplatform 

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

 cd ezplatform php ezpublish/console ezplatform:install --env prod demo php ezpublish/console cache:clear --env prod 

Не забудьте добавить ez.app (или ez.app имя сайта) в файл /etc/hosts на хост-компьютере, как ez.app Homestead Improved .

Теперь перейдите по URL-адресу http://ez.app/ (конечный слеш важен, поскольку он заставляет ваш браузер искать сайт напрямую, а не использовать Google для его поиска, если DNS-серверы его не разрешают) и наслаждаться!

Снимок экрана 2015-05-07 16.53.18

Погружение в EZPublish и Symfony на PHPSummerCamp

Завершив установку, мы наконец можем погрузиться и создать удивительно сложные системы, которые даже самые требовательные веб-сайты не могут переоценить. Важно быть терпеливым с системой — будучи в альфа-режиме, она все еще невероятно нестабильна и очень медленная, но добирается до нее. Продолжайте тестирование и помогайте команде с предложениями — давайте удостоверимся, что они скоро будут выпущены, предоставляя как можно больше отзывов. Используйте его с открытыми инструментами разработчика и просматривайте ошибки, обсуждайте их на форумах , пишите в Твиттере или дайте нам знать в комментариях ниже.

Чтобы погрузиться в изучение платформы, вы можете пойти и прочитать документацию или присоединиться к нам в качестве PHPSummerCamp — того же мероприятия, которое мы посетили в прошлом году . На этот раз прилетают еще более громкие ораторы, в том числе:

… и многое другое, с такими темами, как:

  • Углубленное понимание объектно-ориентированного программирования с Symfony
  • Управление активами с помощью Puli
  • HTTP-кеширование с помощью Varnish
  • Быстрая разработка API с Lionframe
  • Моделирование на примере
  • Профилирование PHP-приложений (Blackfire)
  • Миграция на Symfony 3.0

Не только три полных дня практических семинаров (а не традиционная теоретическая бомбардировка, которую вы обычно получаете на конференциях), но также морские прогулки, обеды и опыт хорватского побережья (что-то, что вы не должны пропустить — поверьте мне), это ежу понятно.

Rovinj Coast

На мероприятии только что были объявлены супер-ранние цены и билеты, доступные для покупки, поэтому обязательно ознакомьтесь с объявлением .

Слишком дорогой? Просто убедите своего босса ! Убедитесь, что они знают, что ваше образование и профессиональная подготовка принесут компании гораздо больше пользы в долгосрочной перспективе, чем вы останетесь на работе в течение этих трех дополнительных дней.

Вывод

Как видите, установка прошла долгий путь с прошлого года. Система была значительно обновлена, DX-программа Symfony помогла с мультиплатформенным аспектом и проблемами с symlink , а отличная работа NetGen и @vranac значительно улучшила поток. Идите и установите eZ сейчас, поиграйте с ним, расскажите нам, что вы думаете. Используйте его для загрузки CMS, которая нуждается не только в блоге, и дайте нам знать, как вы к этому относитесь. Если вы сделаете что-нибудь интересное с этим, свяжитесь, я хотел бы больше уроков eZ!

Обратная связь? Комментарии? Оставьте их ниже или скажите мне в прямом эфире в PHP Summer Camp !