Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Локальний сервер для WordPress за 5 хвилин з VVV, VirtualBox і Vagrant

  1. Мені потрібен локальний сервер
  2. Міні-сервер
  3. Grunt і Gulp. статичні файли
  4. Сервер всередині PHP
  5. Старі інструменти. Denwer, Open Server, MAMP Pro
  6. Сучасні інструменти. Знайомство з VVV
  7. VVV. Що таке і як працює
  8. VirtualBox. Віртуальні машини
  9. Vagrant. Менеджер віртуальних машин
  10. Деякі технічні деталі
  11. Практика. запускаємо сервер
  12. Як запустити XDebug?
  13. Як додати інші сайти?
  14. Монтування папок. Для розробників плагінів і тим
  15. Збереження конфігурації сервера
  16. оновлення VVV
  17. Як підключитися до сервера?
  18. висновок

Наша взаимовыгодная связь https://banwar.org/

Створення робочого простору для PHP-розробника - довга і копітка робота. Як правило, це сотні «побитих» дій стосуються налаштування веб-сервера, баз даних, PHP і його компонентів, кешування, поштових серверів ... - список можна вважати нескінченним і двома-трьома додатками точно не обійтися.

Завдяки кільком додатковим інструментів можна швидко і просто управляти цим потоком дій, збираючи локальний сервер (оточення) для розробки і тестування за пару хвилин. Це буде корисно для всіх тих, хто стикається з WordPress на будь-якому рівні складності.

Ця стаття стала ідеєю для виступу на WordCamp Moscow 2016. Ви можете подивитися відеозапис виступу або презентацію .

Мені потрібен локальний сервер

Уявіть, що вам належить створити або протестувати вже готову тему для WordPress. Буде здорово запустити локальний сайт, чи не так? Але зробити робочу «станцію» своїми руками за пару хвилин неможливо - перспектива установки величезної купи додатків і їх налаштування зупинять будь-яке бажання цим зайнятися.

Крім просто великого обсягу роботи потрібні і просто великі знання про те, як зробити все це правильно.

Міні-сервер

У цій статті ми розглядаємо додатки (сайти), яким потрібні складні рішення - PHP, MySQL або Redis. Але в деяких випадках швейцарський ніж зовсім не обов'язковий.

Grunt і Gulp. статичні файли

Наприклад, фронтенд-розробникам, зазвичай, вистачає веб-сервера, що віддає лише статичний контент (html, js і css). Grunt Connect і Gulp Webserver дозволяють запустити такий сервер в 1 команду з терміналу без необхідності вручну завантажувати, розпаковувати чи правити файли-конфігурації.

Сервер всередині PHP

Усередині PHP теж є веб-сервер. Крім статичних файлів він, очікувано, вміє працювати і з PHP-файлами. Для цього достатньо перейти в кореневу папку проекту і виконати команду php. І можна запустити Symfony - не так і складно для самого складного фреймворка.

І можна запустити Symfony - не так і складно для самого складного фреймворка

Запуск Symfony на вбудованому в PHP сервері

Старі інструменти. Denwer, Open Server, MAMP Pro

Багатьом з нас напевно знайомі такі додатки як Denwer, Open Server, MAMP Pro - чесно кажучи я і сам колись намагався використовувати їх. З тих чи інших успіхом всі ці програми намагаються запустити той самий оточення, необхідне для роботи WordPress або інших CMS. Але всі вони мають ряд недоліків з якими рано чи пізно не захочеться миритися нікому.

1. Неможливо легко і швидко переносити конфігурацію оточення з комп'ютера на комп'ютер. Уявіть, що ви змінили робочий комп'ютер або до розробки підключився ваш колега, якому теж знадобиться сервер. Прийдеться витратити тиждень, щоб перенести всі настройки і запустити щось.

2. Всі програми працюють в оточенні Windows або macOS - системах, не особливо потрібних для запуску серверних додатків.

3. Обмеженість в додатках і їх версіях змушує використовувати те, що є. Змінити версію PHP або додати додатковий додаток, необхідне саме вам, навряд чи вийде. Деякі додатки і зовсім недоступні на Windows і macOS (наприклад, серверні утиліти для компресії зображень).

4. Відсутність конфігурації сайтів. Як і у випадку з настройками програм, самі сайти і їх контент теж необхідно переносити вручну. Наприклад, такий знайомий і улюблений усіма експорт-імпорт бази даних через phpMyAdmin може рано чи пізно розчарувати.

Сучасні інструменти. Знайомство з VVV

Проблеми, про які ми говорили вище, вже вирішені в Varying Vagrant Vagrants або скорочено VVV - це хороші новини!

Не вдаючись в технічні подробиці з самого початку, VVV можна описати як набір інструкцій (конфігурацій) для автоматичного створення сервера, які безкоштовно доступні на Github.

VVV розроблений, щоб максимально повністю закрити потреби WordPress-розробників. Сервер, створений за допомогою VVV, це набагато більше ніж просто звичайний HTTP і MySQL сервер. Крім самих основних додатків на зразок Nginx і MySQL всередині сервера вже є кілька заздалегідь розгорнутих сайтів з різними версіями WordPress, а також безліч приголомшливих інструментів, наприклад, WP CLI, Composer, XDebug , Повністю готових до робочих буднів без будь-якої настройки (повний список можна подивитися в Readme проекту).

VVV. Що таке і як працює

VVV насправді всього лише набір інструкцій (як і говорилося вище) і не є сам по собі самостійною програмою на відміну від Denwer або Open Server. Якщо спробувати знайти аналогію, то VVV-конфігурації це як MP3 файл для музичного плеєра. І для запуску сервера потрібно ще кілька популярних додатків, про які ви могли чути раніше - це VirtualBox і Vagrant.

VirtualBox. Віртуальні машини

VirtualBox - програма для запуску віртуальних машин на базі вашого комп'ютера. Цією віртуальною машиною з VirtualBox, як раз і буде наш сервер з безліччю встановлених програм та інструментів.

Цією віртуальною машиною з VirtualBox, як раз і буде наш сервер з безліччю встановлених програм та інструментів

Менеджер віртуальних машин VirtualBox

Нова віртуальна машина в VirtualBox - комп'ютер, що використовує ресурси вашого фізичного комп'ютера, на якому спочатку немає нічого, навіть операційної системи. Такий віртуальний комп'ютер, сам по собі, має ряд важливих особливостей.

По-перше, все, що ви запускаєте усередині нього - ізольовано від вашого фізичного комп'ютера. Це добре для безпеки і просто тому що можна не хвилюватися про стан сервера. Якщо щось піде не так, можна просто видалити сервер як звичайний файл і створити заново. Словом, відмінна можливість для експериментів.

По-друге, працюючи на macOS або Windows ми отримуємо можливість працювати з справжнім Linux без будь-яких обмежень.

По-третє, віртуальна машина ніяк не прив'язана до системи, з якої вона запускається і може використовуватися на macOS, Linux або Windows - на будь-якій платформі, для якої написаний VirtualBox.

Vagrant. Менеджер віртуальних машин

Для того щоб зібрати, налаштувати і запустити віртуальну машину нам потрібен хтось, хто займеться всім цим.

Vagrant був задуманий, як програма, яка управляє віртуальними машинами і їх вмістом в автоматичному режимі. І для Vagrant якраз і потрібні інструкції VVV. Т. е., Повертаючись до аналогій, Vagrant - це наш музичний плеєр.

Офіційний сайт Vagrant

За допомогою інструкцій зі сховищ VVV, Vagrant автоматично завантажує образ вже створеної, порожній віртуальної машини з Ubuntu всередині, а потім робить ряд інших приготувань, щоб отримати нашу ідеальну систему для WordPress-розробника.

Деякі технічні деталі

Якщо ви хочете більш детально розібратися з тим, що таке Vagrant, то слід зазначити кілька важливих моментів.

По-перше, Vagrant не займається установкою операційних систем, а бере вже заздалегідь створені образи віртуальних машин з операційними системами. Образи можна знайти на офіційному сайті або створювати самостійно.

Готові образи віртуальних машин для Vagrant

По-друге, оскільки Vagrant лише менеджер, йому все одно з якою саме системою віртуалізації працювати. Тому можуть використовуватися аналоги VirtualBox і навіть Amazon Web Services. У будь-якому випадку, для всіх платформ вже є досить готових образів.

У документації VVV зазначено, що він призначений для використання з VirtualBox, але всередині файлів помітні і деякі відсилання до Parallels, тому, варто вважати, що на цій системі все теж запрацює.

По-третє, Vagrant написаний на Ruby і в комплекті з досить докладної документацією робить його не найскладнішим і заморочений для вивчення. А деяке знайомство з Ruby може стане в нагоді і в майбутньому, наприклад, для Chef.

Практика. запускаємо сервер

Ми познайомилися з усіма трьома інструментами (VVV, VirtualBox, Vagrant) для створення сервера - тепер спробуємо скористатися ними. Детальна інструкція на англійській мові є в README.md на Github. Нижче я розповім все те ж саме, але російською.

1. Завантажити VirtualBox з офіційного сайту і встановимо. Під час установки необхідно переконатися, що галочка «Install Command Line Tools» встановлена, інакше Vagrant не зможе керувати віртуальними машинами.

2. Завантажити та встановити Vagrant - звичайна і знайома всім установка. Vagrant, як і VirtualBox, доступний для безлічі платформ.

3. Встановимо кілька плагінів для Vagrant. Для цього необхідно запустити пару команд і почекати - все інше Vagrant зробить самостійно.

vagrant plugin install vagrant-hostsupdater

Плагін Hosts Updater управляє доменами на вашому локальному комп'ютері. Щоб сайти всередині сервера відкривалися по красивих доменних імен на кшталт local.wordpress.dev. Говорячи технічною мовою цей плагін автоматично оновлює вміст hosts файлу на вашому основному комп'ютері.

vagrant plugin install vagrant-triggers

Плагін Triggers спрацьовує при включенні і виключенні сервера. Vagrant автоматично зробить експорт баз даних в .sql-файли (в майбутньому можна додати і свої дії).

4. Завантажити репозиторій VVV до себе на комп'ютер. Якщо ви не знаєте, що таке Git, то можна просто завантажити ZIP архів з Github.

Якщо ви не знаєте, що таке Git, то можна просто завантажити ZIP архів з Github

Репозиторій VVV на Github

Для тих, хто знайомий з Git, рекомендую використовувати git clone. Трохи пізніше ми розглянемо, як додавши додатковий віддалений сервер зі своєю власною гілкою, можна буде легко і просто оновлювати свій VVV при виході оновлень в основному репозиторії.

5. Ми повністю підготували комп'ютер для запуску сервера і Vagrant готовий до роботи. Щоб запустити все це необхідно перейти в папку зі скачаними VVV і виконати vagrant up.

cd path / to / vvv / vagrant up

Після цього Vagrant займеться скачуванням образу готової віртуальної машини і її настроюванням. В цей час на екрані буде виводитися інформація про поточні діях. Весь процес займе пристойну кількість часу і потребує постійного підключення до інтернету.

Весь процес займе пристойну кількість часу і потребує постійного підключення до інтернету

Перший запуск VVV за допомогою команди vagrant up

Зауважу, що постійне підключення до інтернету під час початкової установки, один з істотних мінусів. Якщо під час підготовки сервера пропаде доступ до Github, швидше за все, частина функціоналу сервера не працюватиме. Повторний запуск vagrant up або vagrant provision, швидше за все, не допоможе.

Справа в тому, що в багатьох місцях алгоритм підготовки сервера лише дивиться на наявність папки на диску і якщо вона є, вважає, що все встановлено успішно. Якщо ви зіткнулися з такою проблемою, то найшвидшим і простим рішенням буде - видалити всю папку VVV і почати заново зі скачування сховища (крок 4). Якщо ви добре знайомі з Bash, то можна вручну спробувати виправити ситуацію вивчаючи provision / provision.sh.

У самому кінці, якщо все пройшло успішно, ви побачите, що машина запущена і готова до роботи. Прямо зараз вже можна спробувати відкрити один із сайтів. Наприклад для того, щоб відкрити PhpMyAdmin достатньо клікнути його посилання на стартовій сторінці.

Головна сторінка VVV сервера і посилання на доступні сайти та сервіси

Як запустити XDebug?

Зазвичай XDebug не використовують, тому що його складно встановлювати і налаштовувати. Але в VVV досить підключитися до сервера (див. Вище) і виконати команду xdebug_on.

# Підключаємося до сервера vagrant ssh # включаємо XDebug xdebug_on # Для виключення команда xdebug_off # Підключаємося до сервера vagrant ssh # включаємо XDebug xdebug_on # Для виключення команда xdebug_off

Налагодження PHP коду за допомогою XDebug

Більш докладно про можливості дебаггінга і профілювання коду зібраний розділ довідкової інформації Code Debugging . А почати знайомитися з XDebug можна по раннім статей на WPMag.

  1. Профілювання коду в WordPress
  2. Профілювання фільтрів і подій в WordPress
  3. 13 корисних інструментів для WordPress-розробників

До речі, використання XDebug зовсім не обов'язково. Цілком нормально, що кому-то може подобається використовувати звичайний var_export () і var_dump () замість томного очікування запуску багатьма улюбленої IDE написаної на Java.

Як додати інші сайти?

Зазвичай додавання нових сайтів на сервер не найцікавіший процес - завантажити і розпакувати WordPress, створити нового користувача і базу даних, конфігурувати веб-сервер, пройти кілька етапів установки WordPress ...

Усередині VVV сайт можна описати у вигляді файлів з конфігураціями і зберегти їх. Для швидкого і автоматичного додавання сайтів зроблений спеціальний менеджер під назвою VV. З його допомогою встановити сотню-іншу різних версій WordPress справа кількох хвилин.

Для створення сайту досить запустити vv create і відповісти на кілька запитань про те, як назвати сайт або чи потрібно включити режим WP_DEBUG. більш детальна документація і установка .

більш детальна   документація і установка

Створення нового сайту за допомогою утиліти VV

Монтування папок. Для розробників плагінів і тим

Беручи участь в розробці плагінів або тим, репозиторій з продуктом, як правило, зберігається десь окремо на комп'ютері. Але також ця папка і її вміст має бути присутнім на сервері всередині wp-content. Постійно копіювати вміст папки вручну - не найкраща ідея. Використовувати посилання (ярлики) для папки не завжди доречно (тільки якщо ваш веб-сервер запущений прямо у вашій операційній системі).

З мого досвіду, у випадку з «симлінк» (посиланнями, ярликами) PHP некоректно «розраховує» шляху файлів і папок, якщо використовувати щось на зразок __FILE__ (тестувалося на вбудованому в macOS PHP). В результаті цього, як мінімум, перестають працювати функції активації-видалення плагінів.

Монтування папок вирішує цю проблему. Причому змонтувати одну папку можна в десяток шляхів на сервері - це зручно, якщо необхідно перевіряти сумісність плагіна з безліччю версій WordPress.

Для монтування в корені папки з VVV необхідно створити файл Customfile (без розширення), де вказати папки та шляхи для їх монтування. Таким чином вміст директорій з вашого основного комп'ютера з'явиться всередині віртуальної машини.

# Вміст Customfile config.vm.synced_folder "~ / Documents / Repositories / setka-editor / plugin /", "/ srv / www / wordpress-default / htdocs / wp-content / plugins / setka-editor",: owner => "www-data",: mount_options => [ "dmode = 775", "fmode = 774"]

Слід зазначити, що зберігати файли плагіна всередині папки plugin, як я показував на WordCamp Moscow 2016, не найкраще рішення, якщо ви замислюєтеся про можливість установки свого плагіна через Composer і Git.

Підтримка подібної системи установки плагіна також вимагає зберігання «скомпільованих» CSS і JS файлів прямо в репозиторії, тому що Composer не виробляє збірку проекту. Так що зберігати головний (bootstrap) файл плагіна варто прямо в корені сховища. І ідеальна структура файлів виглядає приблизно наступним чином.

І ідеальна структура файлів виглядає приблизно наступним чином

Приклад оптимальної структури файлів і папок в WordPress плагін

Збереження конфігурації сервера

Одного разу клонувати репозиторій VVV вам захочеться зробити зміни і зберегти їх. Для цього в репозиторій можна додати окремий віддалений Git-сервер. В окрему гілку на цьому сервері і можна складати коммітов зі змінами.

В окрему гілку на цьому сервері і можна складати коммітов зі змінами

Збереження конфігурації сервера в Git

оновлення VVV

Для зручних оновлень VVV можна також використовувати репозиторій. Якщо ви зберігаєте зміни в репозиторії на окремій гілці, то для поновлення достатньо «смерджіть» master з origin в свою власну гілку, вирішити конфлікти, якщо вони будуть, а потім запустити vagrant provision.

Як підключитися до сервера?

Для підключення можна використовувати будь-який SFTP клієнт або звичайну консоль. Щоб підключитися до віртуальної машини з консолі досить набрати vagrant ssh з папки VVV і Vagrant автоматично встановить з'єднання використовуючи SSH-ключ (він знаходиться в прихованій папці .vagrant).

cd path / to / vvv / vagrant ssh

А для підключень через SFTP-клієнти слід використовувати такі реквізити:

Адреса (хост): vvv
Користувач: vagrant
Пароль: vagrant

Ці дані як і багато інших, наприклад, для підключення до MySQL-сервера, можна знайти в файлі README.md в корені сховища.

висновок

Отриманий сервер ідеально підійде для розробки і тестування продуктів будь-якої складності. Це оточення можна використовувати і не тільки для WordPress розробки - сервер універсальний.

Наостанок слід зауважити що VVV не єдина «сборка» для Vagrant - можна зробити свій «форк» або пошукати інші готові рішення. Наприклад, можна зустріти популярні Vagrant-конфігурації для фреймворків на кшталт Symfony і Laravel.

Як додати інші сайти?
Буде здорово запустити локальний сайт, чи не так?
Як додати інші сайти?
Як підключитися до сервера?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: