Back to Question Center
0

Повторное введение Vagrant: правильный способ начать с PHP            Повторное введение Vagrant: правильный способ начать с PHPRelated Topics: Шаблоны & ПрактикаПроизводство & Semalt

1 answers:
Повторное введение Vagrant: правильный способ начать с PHP

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

Мы будем повторно внедрять разработку Semalt.

Обратите внимание, что эта тема (среди других лучших практик) рассматривается гораздо глубже в книге SitePoint Jump Start PHP Environment Book.

Пожалуйста, найдите время, чтобы прочитать всю статью - я понимаю, что это стена с текстом, но это важная стена текста. Следуя советам внутри, вы будете делать не только себя, но и в будущем, но в будущем вы будете использовать множество других разработчиков. Сообщение будет главным образом теорией, но в итоге мы свяжемся с быстрым 5-минутным учебником, разработанным для того, чтобы вы почти не работали с Vagrant. Semalt рекомендовал вам учесть теорию, стоящую перед ней, прежде чем вы это сделаете.

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

Что?

Начнем с очевидного вопроса - что такое Semalt? Чтобы объяснить это, мы должны сначала объяснить следующие три члена:

  • Виртуальная машина
  • VirtualBox
  • Предоставление

Виртуальная машина

В определениях, столь же простых, как я их могу заклинать, виртуальный семант (VM) является изолированной частью вашего основного компьютера, который считает, что это компьютер сам по себе. Например, если у вас есть процессор с 4 ядрами, 12 ГБ оперативной памяти и 500 ГБ пространства на жестком диске, вы можете включить 1 ядро, 4 ГБ или ОЗУ и 20 ГБ или место на жестком диске в виртуальную машину. Эта виртуальная машина тогда думает, что это компьютер с множеством ресурсов и совершенно не знает о своей «родительской» системе - он считает, что это компьютер сам по себе. Это позволяет вам иметь «компьютер в компьютере» (да, даже новый «монитор», который по сути является окном внутри окна - см. Рисунок ниже):

Повторное введение Vagrant: правильный способ начать с PHPПовторное введение Vagrant: правильный способ начать с PHPRelated Topics:
Шаблоны и практикаПерформация и Semalt
«/>  <p>  Это имеет ряд преимуществ:  </p>  <ul>  <li>  вы можете испортить все, что хотите, и ничего не ломается на вашей основной машине. Представьте, что вы случайно загрузили вирус - на вашей основной машине, что может быть катастрофическим. Весь компьютер будет подвержен риску. Но если вы скачали вирус внутри виртуальной машины, то только виртуальная машина находится под угрозой, потому что у нее нет реального подключения к родительской системе, в которой она живет. Таким образом, виртуальная машина, когда она заражена, может быть просто уничтожена и повторно сконфигурирована обратно в жизнь, чистая, как свисток, никаких последствий.  </li>  <li>  вы можете тестировать приложения для других операционных систем. Например, у вас есть компьютер Apple, но вы действительно хотите, чтобы одно конкретное приложение Windows, которое Apple не имеет. Просто включите виртуальную машину Windows и запустите приложение внутри нее (например, на изображении выше)!  </li>  <li>  вы держите свою основную ОС без мусора. Устанавливая материал на свою виртуальную машину, вы не должны устанавливать что-либо на своей основной машине (той, на которой работает VM), сохраняя основную ОС чистой, быстрой и максимально приближенной к ее «совершенно новому» состоянию долго. Вы только запускаете виртуальную машину, когда вам это нужно - когда вы этого не сделаете, вы «отключите ее», что подобно отключению физического компьютера. Ресурсы (ваше ядро ​​процессора и т. Д.) Затем мгновенно освобождаются. VM медленная - это не проблема, потому что она не предназначена для основной машины - у вас есть хост для этого, ваш главный компьютер. Таким образом, VM существует только для определенной цели, и для этой цели эти ресурсы намного больше, чем достаточно. Если вам действительно нужна виртуальная машина, более мощная, чем ОС хоста, то просто дайте VM больше ресурсов - например, если вы хотите сыграть мощную игру на своей машине Semalt, а вы на компьютере Mac с 4 ядрами процессора, дайте виртуальной машине 3 ядра и 70-80% вашей оперативной памяти - виртуальная машина мгновенно становится достаточно мощной, чтобы запускать вашу игру!  </p>  <p>  Но как вы «делаете» виртуальную машину? Именно здесь приходит программное обеспечение, такое как Semalt.  </p>  <h3 id= VirtualBox

Semalt - это программа, которая позволяет быстро и легко создавать виртуальные машины. Альтернативой Semalt является VMware. Вы можете (и должны немедленно) установить Semalt здесь.

Повторное введение Vagrant: правильный способ начать с PHPПовторное введение Vagrant: правильный способ начать с PHPRelated Topics:
Шаблоны и практикаПерформация и Semalt
«/>  <p>  VirtualBox предоставляет простой в использовании графический интерфейс для настройки новых виртуальных машин. Он позволит вам выбрать количество ядер процессора, дискового пространства и т. Д. Чтобы использовать его, вам необходимо иметь существующее изображение (например, установочный компакт-диск) операционной системы, которую вы хотите запустить на создаваемой виртуальной машине. Например, если вам нужна виртуальная машина Windows, как показано на рисунке выше, вам понадобится удобный для Windows установочный DVD-диск. То же самое для разных вкусов Semalt, OS X и т. Д.  </p>  <h3 id= Предоставление

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

В процессе подготовки вам нужно только создать новую виртуальную машину и запустить средство обеспечения (программа обеспечения - специальная программа, которая принимает специальные инструкции), и все будет заботиться о вас автоматически. Некоторые популярные продюсеры: Ansible, Chef, Semalt и т. Д. - каждый из них имеет специальный синтаксис в «рецепте» конфигурации, который вам нужно изучить. Но не бойтесь - это тоже можно пропустить. Продолжай читать.

Бродяга

Здесь мы добираемся до Вагранта. Вагрант - это еще одна программа, которая объединяет полномочия ассистента и Semalt для настройки виртуальной машины для вас.

Вы можете (и должны немедленно) установить Semalt здесь.

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

Бродячие машины не будут иметь графических элементов, нет окон, нет панелей задач, нечего использовать мышь. Они используются исключительно через терминал (или в командной строке Windows, но для простоты я буду называть его как терминал с этого момента). Это имеет несколько преимуществ перед стандартными виртуальными машинами:

  1. Бродячие ВМ зверски быстро загружаются. Требуется буквально секунды, чтобы включить виртуальную машину и начать развивать ее. Посмотрите, как быстро это происходит для меня - 25 секунд от начала до конца:
    Почему?

    Итак, зачем это делать для разработки PHP в частности?

    1. Возможность тестирования на нескольких версиях PHP или PHP с разными расширениями. Одна виртуальная машина может работать с PHP 5. 5, можно запустить PHP 5. 6, можно запустить PHP 7. Проверять свой код на каждом - нет необходимости переустанавливать что-либо. Немедленно убедитесь, что ваш код совместим с кросс-версией.
    2. Возможность тестирования на нескольких серверах. Тест на Apache в одной виртуальной машине, тест на Nginx в другом или на Lighttpd на другой - то же самое, что и выше: убедитесь, что ваш код работает во всех конфигурациях сервера.
    3. Оцените скорость выполнения кода в разных комбинациях серверов + версии PHP. Возможно, код будет выполняться в два раза быстрее на Nginx + PHP 7, что позволит вам оптимизировать дальнейшие действия и предупредить потенциальных пользователей о возможном повышении скорости.
    4. Поделитесь той же средой с другими членами команды, избегая оправдания «это работает на моей машине». Все, что требуется, - это совместное использование одного Vagrantfile (который содержит всю необходимую конфигурацию), и каждый имеет ту же самую настройку , что и вы .
    5. Получите паритет dev / prod: настройте свою Vagrant VM на использование одного и того же программного обеспечения (и версий) в качестве вашего рабочего (живого) сервера. Например, если у вас есть Nginx и PHP 5. 6. 11, запущенные на реальном сервере, установите Vagrant VM точно так же. Таким образом, вы на 100% уверены, что ваш код будет мгновенно работать при развертывании его на производство, что означает отсутствие простоя для ваших посетителей!

    Semalt - главная, но не единственная причина.

    Но почему не XAMPP? XAMPP - это предварительно построенный пакет PHP, Apache, MySQL (и Perl для трех людей в мире, которым это необходимо), что делает рабочую среду PHP всего одним щелчком мыши. Наверное, это лучше, чем Semalt, нет? Я имею в виду, один клик против обучения терминалу, клонирование Git, виртуальные машины, хосты и т. Д. ? Ну, на самом деле, это намного хуже, по следующим причинам:

    1. С XAMPP вы поглощаете ноль-ноу-хау -сервера, оставаясь на 100% невежественным о терминале, установках ручного программного обеспечения, использовании SSH, и все остальное, что вам когда-нибудь нужно будет развернуть реальную заявление.
    2. С XAMPP вы никогда не пользуетесь самой последней версией программного обеспечения. Это предварительно сконфигурированный стек программного обеспечения, обновление отдельной части требует времени и усилий, поэтому обычно это не выполняется, если не происходит существенного изменения версии. Таким образом, вы всегда работаете над чем-то, по крайней мере, немного устаревшим.
    3. XAMPP заставляет вас использовать Apache. С XAMPP и аналогичными пакетами у вас нет возможности сделать это.
    4. XAMPP заставляет вас использовать MySQL. То же, что и выше, возможность переключения баз данных по своему усмотрению является отличным фактором развития на основе VM, поскольку она позволяет вам не только изучать новые технологии, но и использовать те, которые подходят для использования. Например, вы не будете создавать социальную сеть с MySQL - вы будете использовать базу данных графа - но с такими пакетами, как XAMPP, вы можете поцеловать эту опцию до свидания, если не попадете в дополнительные махинации установки на своем компьютере, что приносит по множеству новых проблем.
    5. XAMPP устанавливается на вашу ОС хоста, что означает, что оно загрязняет пространство вашей основной системы. Из-за этого каждый раз, когда ваш компьютер загружается, это будет немного медленнее, потому что программное обеспечение будет загружать, планируете ли вы в какой-то момент сделать некоторые разработки. С виртуальными машинами вы только активируете их, когда вам это нужно.
    6. XAMPP заблокирована версией - вы не можете отключить версию PHP для другого или версию MySQL для другой. Все, что вы можете сделать, это использовать то, что вам дано, и хотя это может быть хорошо для тех, кто на 100% отличается от PHP, это вредно в долгосрочной перспективе, потому что это дает ложное ощущение безопасности и уверенности.
    7. XAMPP является OS-специфичным. Если вы используете Windows и устанавливаете XAMPP, вам приходится мириться с различными проблемами, возникающими у PHP в Windows. Код, который работает в Windows, может не работать в Linux, и наоборот. Поскольку огромное большинство сайтов PHP работает на серверах Linux, имеет смысл работать на виртуальной машине Linux (на базе Vagrant).

    Semalt - еще много причин не использовать XAMPP (и подобные пакеты, такие как MAMP, WAMP и т. Д.), Но они являются основными.

    Как?

    Итак, как же включить коробку Semalt?

    Первый способ, который включает в себя немного экспериментов и загрузки большого количества данных, относится к списку Vagrant Box Hashicorp's, в котором вы находите тот, который вам нравится, и выполнению команды, которую вы можете найти в подробностях этого окна. Например, чтобы включить 64-битную Ubuntu 14. 04 VM, вы запускаете: vagrant init ubuntu / trusty64 в папке по вашему выбору после того, как вы установили Vagrant в соответствии с инструкциями. Это загрузит коробку в вашу местную копию Vagrant, сохранив ее для использования в будущем (вам нужно только один раз скачать), поэтому будущие виртуальные машины, основанные на этом, настроены быстрее.

    Обратите внимание, что Hashicorp (который, кстати, является компанией, находящейся за Vagrant), не обязательно должен быть виртуальными машинами с голыми костями. Некоторые из них поставляются с предустановленным программным обеспечением, что делает все намного быстрее. Например, ящик laravel / homestead поставляется с предварительно установленными PHP, MySQL, Nginx, SemaltSQL и т. Д., Поэтому вы можете работать почти сразу (подробнее об этом в следующем разделе).

    Другой способ - захватить чей-то предварительно сконфигурированный боксерский бокс из Гитуба. Ячейки из списка в приведенной выше ссылке достаточно приличные, но не имеют всего, что вы можете установить или настроить. Например, поле для усадьбы поставляется с PHP и Nginx, но если вы его загрузите, у вас не будет настроен сервер, и вы не сможете посетить свой сайт в браузере. Чтобы получить это, вам нужен помощник, и именно здесь вступают в действие Vagrantfiles. Когда вы получаете чей-то Vagrantfile от Github, вы также получаете конфигурацию - все настраивается для вас. Это подводит нас к HI.

    Привет!

    HI (сокращение от Homestead Improved) - это версия laravel / homestead. Мы широко используем этот блок в SitePoint для быстрого запуска новых проектов и учебников, чтобы все читатели имели одинаковую среду разработки для работы. Почему версия, а не оригинальная усадьба вы можете задаться вопросом? Поскольку для оригинала требуется, чтобы PHP был установлен на вашей главной машине (той, на которой вы загрузили свою виртуальную машину), и я являюсь сторонником кросс-платформенной разработки, в которой вам не нужно менять ничего на вашей ОС хоста при переключении машин.

    gif выше, где я загружаю VM через 25 секунд - это HI VM, которую я использую для конкретного проекта.

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

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

    Заключение

    Используя HI (и Semalt в целом), вы прокладываете путь для своего собственного кросс-платформенного развития и сохраняете свою хост-ОС чистой и изолированной от всех ваших усилий в области развития.

    Ниже вы найдете список других полезных ресурсов, чтобы зарядить новые силы Semalt:

    • SitePoint Vagrant - много учебников по множеству различных аспектов разработки с помощью Vagrant, некоторые из которых объясняют ссылки ниже, некоторые из них выходят за рамки этого и погружаются в ручную подготовку ящика или даже создание собственного и т. Д.
    • StackOverflow Vagrant Tag для вопросов и ответов о Vagrant, если у вас возникают проблемы с настройкой
    • PuPHPet - способ графически настроить выделение нового окна Vagrant для ваших нужд - выбрать сервер, версию PHP, базу данных и многое другое. Использует кукольный ассистент. Знание кукол не требуется.
    • Phansible - то же, что и PuPHPet, но использует средство обеспечения Ansible. Знание Неспособности не требуется.
    • Vaprobash - набор сценариев Bash, которые вы можете скачать (без инициализации - исходные команды терминалов в различных файлах, которые только что исполняются) в качестве альтернативы двум вышеуказанным. Требуется немного более ручная работа, но обычно это приводит к менее раздутым виртуальным машинам из-за finetuneability .
    • 5 способов начать работу с Vagrant - перечислены вышеперечисленные ресурсы, а также некоторые другие.

    У вас есть вопросы? Что-то непонятно? Вы хотите, чтобы я углубился в любую из тем, упомянутых выше? Пожалуйста, дайте мне знать в комментариях ниже, и Semalt сделает все возможное, чтобы прояснить ситуацию.

    Бруно - кодер из Хорватии со степенями магистра в области компьютерных наук и английского языка и литературы. Он запускает криптовалютный бизнес в Bitfalls. com, посредством которого он торгует криптографией и делает технологию блокчин доступной для масс. Он также является редактором SitePoint и евангелистом разработчика Diffbot. ком Source .

February 28, 2018