Back to Question Center
0

Vagrant-ийг нэвтрүүлэх: PHP-ээр эхлэх зөв зам            Хохирогчийг дахин танилцуулах: УИХ-ын сэдэвтэй танилцах зөв алхам: Хээ & Практик үйл ажиллагаа & Semalt

1 answers:
Re-introducing Vagrant: PHP-тай эхлүүлэх зөв арга

Би олонтаа шинэ хүмүүст зориулсан шинэ эх сурвалжийг санал болгохыг хүсдэг. Үнэндээ бид олон арван шинэ залуу найз нөхөдтэй байдаггүй. Би үүнийг байгаль орчны тохиргооны үндсүүдийн талаар ярих замаар өөрчлөхийг хүсч байна. Энэ бичлэгт та PHP (эсвэл өөр хэл дээр ажиллахаасаа өмнө) эхлүүлэхээсээ өмнө хамгийн чухал зүйлээ мэдэх болно.

Бид Semual-ийн цахилгаан хөгжүүлэлтийг дахин танилцуулах болно.

Энэ сэдэв (бусад шилдэг туршлагуудаас) SitePoint-ийн Jump эхэлдэг PHP Байгаль Орчны Номонд илүү гүнзгий ойлголттой байгааг анхаарна уу.

Бүх нийтлэлийг унших цаг гарга. Би үүнийг текстийн хана гэж ойлгож байгаа ч энэ нь текстийн чухал хана юм. Дотоод зөвлөгөөг дагаснаар та өөрөө өөртөө таалагдахгүй төдийгүй цаашид ирээдүйд олон тооны бусад хөгжүүлэгчдэд хүрэх болно. Энэ бичлэг нь голчлон онол байх болно, гэхдээ эцэст нь бид таныг барьж, ажиллуулах бараг ямар ч үед Vagrant хамт ажиллуулах зорилготой хурдан 5 минутын гарын авлагатай холбох болно. Үүнийг хийхээсээ өмнө бясалгалын онолыг танихыг Семаль зөвлөж байна.

Урьд өмнө яаравчлах, 12-оос өмнө онол олж авахад ямар нэгэн зүйл олж авахыг хүсэж байгаа бол энэ зааварт холбоос байна.

Юу?

Мэдээжийн асуултыг эхлээд өгье - Semalt гэж юу вэ? Үүнийг тайлбарлахын тулд бид дараах 3 зүйлийг тайлбарлах хэрэгтэй. Үүнд:

  • Виртуал машин
  • VirtualBox
  • Програм хангамж

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

Тодорхойлолтуудыг хялбарчилж чадсанаар Виртуал Семаль (VM) нь өөрийн компьютер гэж боддог үндсэн компьютерын салшгүй хэсэг юм. Жишээлбэл, хэрэв та 4 цөмтэй CPU, 12 GB RAM, 500 GB хатуу дискний зайтай бол 1 цөм, 4 ГБ, RAM, 20GB эсвэл хатуу дискийг VM болгон хувиргаж болно. VM нь тэрхүү олон эх сурвалжтай компьютер бөгөөд үүнийг "эцэг эх" системээсээ бүрэн ухамсарладаггүй, энэ нь компьютер дээрээ өөрөө зөв гэж боддог. Энэ нь "компьютер дотор компьютер" (тийм ээ, шинэ "монитор" гэх мэтээр цонхон доторхи цонх байх ёстой - доорх зураг харна уу):

Vagrant-ийг нэвтрүүлэх: PHP-ээр эхлэх зөв замХохирогчийг дахин танилцуулах: УИХ-ын сэдэвтэй танилцах зөв алхам:
Хээ & ПрактикуудPerformance & Semalt

Энэ нь хэд хэдэн давуу талтай байдаг:

  • та хүссэн бүх зүйлээ арилгаж чаддаг бөгөөд таны үндсэн машин дээр юу ч эвдэж чадахгүй. Вирусыг санамсаргүйгээр татаж авах гэж төсөөлөөд үз дээ - таны үндсэн машин дээр сүйрлийн байж болох юм. Таны компьютер бүхэлдээ эрсдэлтэй болно. Гэхдээ VM-ийн дотор вирусыг татаж авсан бол зөвхөн VM нь эрсдэлтэй байдаг. Тиймээс, VM, халдвар авсан үед зүгээр л устгагдах, дахин тохируулах боломжтой, шүгэл шиг цэвэрхэн, ямар ч үр дагаваргүй болно.
  • та бусад үйлдлийн системүүдийн програмуудыг туршиж үзэх боломжтой. Жишээлбэл, та Apple компъютертэй боловч та Apple-ийн ямар нэг тусгайлсан Windows программыг үнэхээр хүсч байна. Зөвхөн Windows VM-г асааж, доторх програмыг (дээрх зураг дээрх шиг) ажиллуулах!
  • Үндсэн OS-г таниагүй л байна. Таны виртуал машинд суулгаж байгаа зүйлсийг хийснээр үндсэн OS машин дээр (VM ажиллаж байгаа) ямар ч зүйлийг суулгахаас зайлсхийж OS OS-ийн цэвэрхэн, хурдан, хамгийн шинэ "state" -тай ойрхон урт хугацаа. Та зөвхөн VM-ийг хэрэглэж байх үед үүнийг хийдэг - хэрэв та үүнийг хийдэггүй бол, та үүнийг "хүчийг нь доош нь доош" гэж хэлдэг бөгөөд энэ нь физик компьютерийг хаахтай адил юм. Нөөцүүд (таны CPU цөм гэх мэт) тэр даруйдаа чөлөөлөгддөг. VM нь аажмаар асуудал биш тул гол машин байх ёсгүй юм. Учир нь танд зориулж хосттой, үндсэн компьютер байна. Тиймээс VM нь тодорхой зориулалтаар тэнд байдаг бөгөөд тэдгээрийн хувьд эдгээр нөөцүүд нь хангалттай биш юм. Хэрэв танд VM-ийг хост OS-ээс илүү хүчтэй VM-тэй бол VM-ийг илүү их нөөцтэй болгохыг хүсч байгаа бол Semalt машин дээр хүчирхэг тоглоом тоглохыг хүсэж байгаа бөгөөд та 4 CPU-тэй Mac компьютер дээр VM 3 цөм, таны RAM 70-80% - VM даруй таны тоглоомыг ажиллуулахад хангалттай хүчирхэг болж байна!

    Гэхдээ виртуал машинаа "хэрхэн" хийдэг вэ? Энэ нь Семаль шиг програм хангамжийг оруулдаг явдал юм.

    VirtualBox

    Semalt бол виртуал машиныг хурдан шуурхай үүсгэх боломжийг олгодог програм юм. Semalt нь өөр хувилбар бол VMware юм. Та энд (энд нэн даруй) Semalt энд суулгаж болно.

    Vagrant-ийг нэвтрүүлэх: PHP-ээр эхлэх зөв замХохирогчийг дахин танилцуулах: УИХ-ын сэдэвтэй танилцах зөв алхам:
Хээ & ПрактикуудPerformance & Semalt

    VirtualBox нь шинэ виртуал машиныг тохируулах график интерфэйсийг ашиглахад хялбар болгодог. Энэ нь та CPU-ийн тоо, дискний зай болон бусад зүйлсийг сонгох боломжийг олгоно. Үүнийг ашиглахын тулд та өөрийн VM дээр ажиллаж байгаа үйлдлийн системийн одоо байгаа дүрсийг (жишээлбэл, суулгах CD) хэрэгтэй. Жишээ нь, хэрэв та дээрх зураг дээрх Windows VM-ийг хүсэж байгаа бол Windows-ийн суулгах DVD-г ашиглах хэрэгтэй болно. Semalt, OS X гэх мэт өөр өөр амттай.

    Програм хангамж

    Шинэ VM бий болсон үед энэ нь нүцгэн яс юм. Энэ нь суулгасан үйлдлийн системээс өөр юу ч агуулаагүй - ямар ч нэмэлт програмууд, жолоочгүй, юу ч байхгүй. Та одоо л худалдан авсан цоо шинэ компьютер лугаа адил үүнийг тохируулах хэрэгтэй хэвээр байна. Энэ нь маш их цаг хугацаа шаарддаг бөгөөд хүмүүс эргэн тойрондоо өөр өөр арга замуудаар ирсэн. Иймэрхүү арга нь процесс , эсвэл бүх зүйлээ суулгахын тулд урьдчилан бичсэн скрипт ашиглах үйлдэл юм.

    Нөөцийн процессоор та шинэ VM үүсгэж, тохируулагчийг ажиллуулах хэрэгтэй (тусгайлан зааварлагч нь тусгай заавар шаарддаг тусгай хөтөлбөр юм) бүх зүйл автоматаар таны төлөө автоматаар анхаарал тавих болно. Зарим түгээмэл заалтууд нь: Ansible, Chef, Semalt, гэх мэт - бүгд суралцах шаардлагатай тохиргооны "жор" -д тусгай синтакстай байдаг. Гэхдээ айгаагүй - энэ ч бас алга болно. Уншиж бай.

    Цөхрөл

    Энэ бол бид цочролд автдаг. Vagrant бол VM-ийг тохируулахын тулд хуваагч болон Semalt-ын хүчийг хослуулсан өөр нэг програм юм.

    Та энд (энд нэн даруй) Semalt энд суулгаж болно.

    Гэхдээ цөхрөл нь VM-д өөр өөр хандлагыг авчирдаг. Уламжлалт VM нь график хэрэглэгчийн интерфэйстэй (GUI) байдаг цонх, хавтас, аль нь ч биш, тиймээс тохиргоог хийсний дараа ачаалах, ашиглахад удаан хугацаа шаардагддаг Vagrant-powered VMs байдаггүй. Хөгжилд суурилсан VM-ийг бий болгоход тусалдаг хөгжүүлэлтэд чиглэсэн учраас хэрэгцээ шаардлагагүй зүйлсийг хасдаг.

    Хагархай машин нь ямар ч график элементгүй, цонхгүй, ямар ч хулгана, ямар ч хулганыг ашиглахгүй байх болно. Эдгээр нь зөвхөн терминалаар дамжуулан (эсвэл Windows-ийн тушаалын мөрөөр хэрэглэгддэг) боловч энгийн хялбараар үүнийг терминал болгон ашиглах болно. Энэ нь стандарт VM-уудаас хэд хэдэн давуу талтай байдаг:

    1. Vagrant VMs нь ачаалахын тулд хэтэрхий хурдан байдаг. Энэ нь VM-ийг асаахын тулд шууд утгаараа секундаар шаардагдаж эхэлдэг. Миний хувьд хичнээн хурдан болж байгааг хараарай - Эхнээс нь дуустал 25 секундын дараа:
      Яагаад?

      Тиймээс, яагаад энэ нь PHP-ийг хөгжүүлэхэд яагаад хэрэгтэй байдаг вэ?

      1. PHP, эсвэл PHP хувилбарыг хэд хэдэн өргөтгөлүүд суулгасан өөр өөр өргөтгөлүүдтэй тест хийх чадвар. Нэг VM нь PHP 5. 5-г ажиллуулж болох бөгөөд нэг нь PHP 5. 6-г ажиллуулж болно. PHP нь 7-г ажиллуулж болно. Та өөрийн кодоо шалгаад бүгдийг дахин суулгах шаардлагагүй. Таны код нь хөндлөн-хувилбартай нийцтэй эсэхийг шалгана уу.
      2. хэд хэдэн сервер дээр тест хийх чадвар. Apache дээр нэг VM дээр турших, Nginx дээр өөр тест хийх, эсвэл Lighttpd дээр дээрхтэй ижил зүйлийг шалгаарай: таны код бүх серверийн тохиргоон дээр ажилладаг эсэхийг шалгаарай.
      3. Серверүүдийн янз бүрийн хослол дээр + таны кодын гүйцэтгэлийн хурдыг шалгана уу. Магадгүй код нь Nginx + PHP 7-ыг хурдаар хоёр дахин хурдан гүйцэтгэх магадлалтай.
      4. Багийн бусад гишүүдтэй ижилхэн орчныг хуваалцан, "энэ нь миний машин дээр ажилладаг". Бүх л шаардлагатай Vagrantfile файлыг хуваалцах (шаардлагатай бүх тохиргоог агуулдаг) бөгөөд бүгдээрээ яг адилхан тохируулгатай байна .
      5. dev / prod parity авах: Өөрийн Vagrant VM-ийг өөрийн үйлдвэрлэлийн (амьд) сервертэй ижил програм (хувилбар) ашиглахаар тохируулах. Жишээ нь, хэрэв та Live сервер дээр Nginx болон PHP 5. 6. 11 ажиллаж байгаа бол Vagrant VM-ийг яг адилхан байдлаар тохируулаарай. Ингэснээр та кодыг үйлдвэрлэлдээ ашиглах үед таны зочинд зориулж downtime гэсэн үг байх болно гэдгийг 100% баталж байна.

      Семаль нь гол шалтгаан боловч зөвхөн ганц шалтгаан биш юм.

      Гэхдээ яагаад XAMPP биш гэж? XAMPP нь PHP, Апачи, MySQL (болон Perl-тэй байгаа дэлхийд байгаа гурван хүнд зориулсан) урьдчилан бүтээсэн багц юм. Мэдээж хэрэг энэ нь Semaltас хамаагүй дээр гэж үү? Терминал, Git клон, виртуал машин, хостууд, гэх мэтийг сурснаас нэг дарж хэлнэ үү? Үнэндээ, энэ нь дор дурдсан шалтгаанаар бүр ч дор байна:

      1. XAMPP-тай бол тэг серверийн тохиргооны ноу-хауг, терминалийн тухай 100% таагуй, гарын авлагын програм хангамжийн суулгалт, SSH хэрэглээ, нэг л өдөр та жинхэнэ бодит зүйлийг ашиглахад маш их хэрэгтэй програм.
      2. XAMPP-ийн тусламжтай та програм хангамжийн хамгийн сүүлийн үеийн хувилбар дээр хэзээ ч байгаагүй. Програмын урьдчилж тохируулсан стек болох нь хэсэг хэсгүүдийг шинэчлэхэд цаг хугацаа, хүчин чармайлт шаарддаг тул үндсэн хувилбар өөрчлөгдөөгүй тохиолдолд ихэвчлэн хийгддэггүй. Иймээс та үргэлж бага зэрэг хоцрогдсон зүйл дээр ажиллах болно.
      3. XAMPP нь таныг Apache-г ашиглахыг шаарддаг. XAMPP болон үүнтэй төстэй багцуудтай бол үүнийг хийх ямар ч сонголт байхгүй.
      4. XAMPP таныг MySQL-ийг ашиглахыг шаарддаг. Дээрхтэй адил, өгөгдлийн санг шилжүүлэх чадвартай байх нь VM-д суурилсан хөгжүүлэлтийн гайхамшиг юм. Энэ нь таныг шинэ технологиудыг суралцахаас гадна ашиглалтын нөхцөлд тохирсон хэрэглээг ашиглах боломжийг олгодог. Жишээлбэл, та MySQL-тэй нийгмийн сүлжээг байгуулахгүй байх болно - график мэдээллийн санг ашиглах болно. Гэхдээ XAMPP гэх мэт багцуудаар та энэ сонголтыг салгаснаар таны машин дээр суулгах нэмэлт сонголтууд руу орохгүй л бол та энэ сонголтыг үнсэж болно. олон тооны шинэ асуудлуудын дагуу.
      5. XAMPP таны хост OS дээр суулгах бөгөөд энэ нь таны үндсэн системийн зайг бохирдуулна гэсэн үг юм. Энэ нь таны компьютер дээр ачаалах болгонд энэ нь үүнээс болж жаахан удаан байх болно. Учир нь програм хангамж нь тэр өдөр ямар нэг хөгжүүлэлт хийх эсэхийг төлөвлөж байгаа эсэхээ ачаалах болно. VM-уудтай бол танд хэрэгтэй үед нь л тэдгээрийг хүчирхэгжүүлэх болно.
      6. XAMPP хувилбар түгжигдсэн - та PHP-н өөр хувилбарыг ашиглахгүй эсвэл MySQL-н хувилбарыг нөгөө рүү нь шилжүүлэх боломжгүй. Таны хийж чадах бүх зүйл бол таны өгсөн зүйлийг ашиглах бөгөөд энэ нь PHP-д 100% шинэчлэгддэг хэн нэгэн байх нь сайн байж магадгүй ч энэ нь урт хугацаанд аюултай бөгөөд аюулгүй байдал, найдвартай гэсэн хуурамч мэдрэмжийг өгдөг.
      7. XAMPP нь OS-specific. Хэрэв та Windows-ийг ашиглаж XAMPP-ийг суулгах гэж байгаа бол Windows дээр янз бүрийн асуудлуудыг шийдэх хэрэгтэй. Windows дээр ажилладаг код нь Линукс дээр ажиллахгүй байж болох юм. Өргөн уудам, PHP ихэнх сайтууд Линукс серверүүд дээр ажиллаж байгаа бөгөөд Линуксийн VM (Vagrant-аар дэмжигддэг) дээр хөгжих нь утга учиртай юм.

      Самальт нь XAMPP (MAMP, WAMP гэх мэт) ижил төстэй багцуудыг ашиглахгүй олон шалтгаантай боловч эдгээр нь гол зүйлүүд юм.

      Яаж?

      Тэгэхээр нэг хүн Semalt хайрцгийг яаж барих вэ?

      Туршилт хийгээд асар их тооны өгөгдлийг татаж авах эхний арга нь Hashicorp-ийн Vagrant Box жагсаалт руу очиж, таны хүссэнээр хайж олоод, хайрцагныхаа дэлгэрэнгүй мэдээллийг олох тушаалыг гүйцэтгэх болно. Жишээ нь 64bit Ubuntu 14. 04 VM-ийг хүчээр ажиллуулахын тулд та дараах тушаалыг ажиллуул: vagrant init ubuntu / trusty64 тушаалыг ажиллуулснаар vagrant-ийг суулгасны дараа таны сонголтыг хавсаргав. Энэ нь хайрцагыг өөрийн орон нутгийн вагант хуулбараас татаж аваад дараа нь ашиглахад зориулж хадгалж байх ёстой (та зөвхөн нэг удаа татаж авах хэрэгтэй) ингэснээр ирээдүйн VM-үүд дээр тулгуурласан болно.

      Hashicorp (энэ нь яг л Vagrant компанийн цаана байгаа компани) хайрцаг нь нүцгэн ясны VM байх албагүй гэдгийг анхаарна уу. Зарим програм хангамж нь урьдчилан суулгасан, бүх зүйлийг хурдан хийдэг. Жишээ нь, laravel / homestead хайрцаг нь шинэ PHP, MySQL, Nginx, SemaltSQL гэх мэт програмуудтай хамт ирдэг тул та яг одоо даруйхан ажиллах боломжтой (дараагийн хэсэгт).

      Өөр нэг арга бол хэн нэгний урьдчилан тохируулсан вантрит хайрцагыг Github-ээс татаж авдаг. Дээрх холбоос дээрх жагсаалтууд хангалттай хангалттай боловч таны суулгах эсвэл тохируулахыг хүссэн бүх зүйл танд байхгүй. Жишээ нь homestead хайрцаг нь PHP болон Nginx-тай хамт ирдэг боловч хэрэв та үүнийг ачаалах юм бол серверийн тохиргоо хийгээгүй байгаа бөгөөд та вэбсайтад зочлох боломжгүй болно. Үүнийг авахын тулд танд прожектор хэрэгтэй болно, тэгээд Vagrantfiles-ийг тоглох болно. Та Gitub-ыг хэн нэгний Vagrantfile-г татаж авахдаа тохиргоогоо авна. Та бүгдийг тохируулах болно. Энэ нь биднийг ЭМД-ыг хүргэдэг.

      Сайн байна уу!

      ЭМД-ын (Homestead Improved for short) нь ларавр / гэр бүлийн хувилбар юм. Бид энэ хайрцгийг SitePoint дээр ихэвчлэн шинэ төсөл, хичээлийг хурдан эхлүүлэхийн тулд ашигладаг бөгөөд ингэснээр бүх уншигч нар хамтран ажиллах орчинтой болно. Яагаад заавал Homestead биш хувилбар гэж та үзэж болох вэ? Эх код нь таны хост машин дээр суулгасан (таны VM дээр ачаалах болно) PHP-г суулгахыг шаарддаг бөгөөд та өөрчлөх шаардлагагүй учраас таныг платформын хөгжүүлэлтийн томоохон дэмжигч байгууллага юм. Солих машинууд дээр таны хост OS дээр.

      25 секундэд VM-ийг ачаалахаас дээшхи график-энэ бол HI VM юм.

      Та үүнийг түргэн авч ажиллуулахын тулд энэ товчлуураар дамжихыг зөвлөж байна. Эхнийх нь татаж авах хайрцагтай тул арай удаан хугацаа шаардаж магадгүй, гэхдээ дараагийн ажиллах ажиллагаа нь дээрх gif-тэй адил хурдтай байх ёстой.

      Үүнийг одоо хийе гэвэл - ямар ч үед гацаж байвал надад мэдэгдээрэй. Хүн болгон аль болох хурдан Semalt руу шилжихийг үнэхээр хүсч байна.

      Дүгнэлт

      ЭМД-ыг (мөн Ерөнхийдөө Semtext) ашигласнаар та өөрийн платформыг хөгжүүлэх туршлагадаа тулгуурлан өөрийн хост OS-ийг цэвэр хөгжлийн бүх хүчин чармайлтаас тусгаарлах болно.

      Таны шинэ семальт эрх мэдлийг ашиглахын тулд бусад ашигтай эх сурвалжуудын жагсаалтыг доороос үзнэ үү:

      • SitePoint Vagrant posts - Vagrant-тай хөгжиж буй олон янзын асуудлууд дээр олон хичээлүүд, зарим холбоосыг тайлбарлаж байгаа зарим зүйлүүд нь цааш үргэлжлэх, гараараа хайрцаг тавих, эсвэл өөрөө үүсгэх зэргээр гардаг.
      • StackOverflow Vagrant Tag [35] Асуудал шийдэх асуудалтай тулгарвал (35)
      • PuPHPet - шинэ хэрэгцээт хайрцагыг таны хэрэгцээнд тохируулах аргыг графикаар тохируулах арга зам - сервер, PHP хувилбар, мэдээллийн баазыг сонгох болон бусад зүйлсийг сонгоно уу. Тоглоомыг ашигладаг. Тоглоомын тухай мэдлэг шаардлагагүй.
      • Phosphible - PuPHPet-тэй адил боловч Ansible provisioner-г ашигладаг. Шаардлагагүй Мэдлэгийн талаархи мэдлэг.
      • Vaprobash нь Bash скриптүүдийн багцыг татаж авдаг (ямар ч нөөцөлөгөөгүй - гүйцэтгэгдэж байгаа янз бүрийн файл дахь түүхий терминал тушаалууд нь дээрх хоёр хувилбараас өөр юм). Арай илүү гарын авлагын ажил шаарддаг боловч ихэвчлэн хоосон буулгах VM-ийг finetuneability -ийн үр дүнд бий болгодог.
      • Vagrant-ийг эхлүүлэх 5 арга нь дээрх эх үүсвэрүүд болон бусад заримыг жагсаан бичсэн байдаг.

      Та ямар нэгэн асуулт байна уу? Ямар нэг зүйл тодорхой бус уу? Дээр дурдсан сэдвүүдээр илүү гүнзгийрэхийг хүсч байна уу? Доорх тайлбаруудын талаар надад мэдэгдээрэй, Semalt бүх зүйлийг арилгана.

March 1, 2018