Vagrant құралын LAMP ретінде пайдаланамыз (Xampp, Denwer, WampServer альтернативасы ретінде)

Бір тағдырдың тағлымымен менің интернет дүкен жасауым керек болды. Ары бері cms-терді қарап OpenCart жүйесін таңдап алдым. Басқаларды қайдам, мен бірден продакшнға кете алмаймын )). Сондықтан cms жүйені тексеріп көру керек. Ол үшін не керек? Дұрыс, бірінші кезекте LAMP жүйе. Мен php-мен осыдан 2 жыл алдын кездескен шығармын, сондықтан онымен қайта кездескім келмейді ;).

Байқап қарасақ LAMP жүйелер өте көп: Denwer, Xampp, WampServer… Бірақ, оларды орнатып localhost-ымды қоқысқа толтырғым келмеді. Міне, осы кезде Vagrant деген құрал есіме түсті. Бұл көпшілік қауымға таныс емес шығар, кейін, оны php бағдарламаушылар көп пайдаланбайтын да шығар. Қалай десек те ол менің уақытымды кәдімгідей тежеді десек те болады. Сондықтан бұл құралды LAMP ретінде қалай қолдануға болатынын көрейік.

Vagrant — виртуалды машиналарды құруды жеңілдететін, қолмен жасалатын жұмыстарды азайтатын құрал. Windows, Linux, Mac OS жүйелерінде жұмыс жасай алады. Virtualbox, Vmware виртуализациялау құралдарын пайдаланады, үнсіз келісім бойынша virtualbox. Виртуалды машинаны консольдан басқаруға болады. Оның басты ерекшелігі, операциялық жүйелер үшін арнайы box файлдар пайдаланылады. Көпшілігіңіз virtualbox-та жүйелерді көтеріп көрген боларсыздар, енді салыстырыңыздар:

$ vagrant box add precise32 http://files.vagrantup.com/precise32.box
$ vagrant init precise32
$ vagrant up

Осы командадан соң сізде, ubuntu precise (32 биттік) орнатылған толыққанды (әрине, gui-сіз) жүйе болады. Ол жүйеге сіз vagrant ssh командасы арқылы кіре аласыз. Барлық мәліметтер команда орындалған папкада сақталады, сондықтан алдын ала виртуалды машина үшін папка құрып алған жөн. Кішігірім демонстрация:


Мен мұнда vagrant-тың ікір-шікірін қарастырғым жоқ, тек пайдалы жағын ғана көрсеткім келеді, сондықтан, ары қарай кеттік. Vagrant виртуалды машинаны құру үшін Vagrantfile деген арнайы файл пайдаланады. Егер команда орындалып жатқан папкада ол файл болмаса vagrant init командасынан соң үнсіз келісім бойынша файл құрылады. Vagrantfile мысалы:

Vagrant.configure("2") do |config|

  config.vm.box = "hashicorp/precise32"

  config.vm.provider :virtualbox do |vb|
      # gui орнат деп бұйрық береміз
      vb.gui = true
      
      # ОЗУ 1024 МБ болады
      vb.customize ["modifyvm", :id, "--memory", "1024"]
  end
end


Интернетте Vagrantfile-ның көптеген дайын нұсқалары бар, тек ерінбей іздеп көрсеңіз болды.

«Lamp-тан бастап неге виртуалды машина жайлы айтып жатыр мынау» деген боларсыздар. Қызық енді басталады. Vagrant ол жай ғана виртуалды машинаны құру/өшіру ғана емес, ол puppet, chef деген секілді құралдарды пайдалана алады. Ол құралдар ОЖ типінен тәуелсіз бағдарламаларды орнатуға арналған. Енді көп сөздің түйіні, қалай ойлайсыздар, lamp керек болған мен ғана ма? Әрине, жоқ, мақаланың мақсаты енді ашылады, негізінде интернетте бапталып қойған box-файлдар оған қоса Vagrantfile-лар толып жатыр. Сізге керегі сол файлдарды аласыз да «vagrant up» дейсіз басқа ештеңе қажет емес. Енді төменде осымен айналысамыз.

Іздеуден бірінші қолға түскені міне мына Vagrantfile. Онда vagrant up командасынан соң мына бағдарламалар орнатылған болады:
  • Apache
  • MySQL
  • php
  • phpMyAdmin
  • Xdebug with Webgrind
  • zsh with oh-my-zsh
  • git, subversion
  • mc, vim, screen, tmux, curl
  • MailCatcher
  • Composer
  • Phing
  • Drupal utils: Drush
  • Wordpress utils: WP-Cli, wp2github.py
  • Magento utils: n98-magerun, modman, modgit
  • Node.js

Lamp емес, бүкіл бір арсенал деуге де болады. Сонымен келесі командаларды ретімен орындау керек:

git clone https://github.com/r8/vagrant-lamp.git
vagrant box add precise32 http://files.vagrantup.com/precise32.box
vagrant up

Болды )). Сәл күтсеңіз сізде жоғарыдағы тізілген бағдарламалармен жүйелер болады. Егер олардың кейбіреулері қажет болмаса оларды chief-тан алып тастауға болады. Бірақ, өз басым ештеңеге тиіспедім, ең басты нәрселер бар. Демонстрация:


Осы үш команданы жеке папкада орындаған дұрыс. Сол папкада vagrant жұмысын бітірген соң public папкасы пайда болады. Оның ішіндегі local.dev папкасына өз сайтымызды сала аламыз.

Ескертулер
1. «vagrant box add» командасын бірінші рет орындағанда, біраз күту керек, өйткені ол интернеттен box файлды жүктеп алады. Бұл команданы бір рет орындау жеткілікті.

2. Vagrant ruby тілінде жазылған, сондықтан оны орнатқан кезде ruby-да қоса орнатылады.

3. Vagrant документациясы

4. Chef документациясы

5. Мақалада құрал өте қысқаша қарастырылған, жай ғана мүмкіндіктерін көрсету үшін, егер қызығушылық болса, ол туралы басқа да мақалалар жазуға болады.

  • +4
2 пікір
kamyrov
Бұл LAMP емес, LAMPXZGSMVSTCMCPDWMN ғой :)
raimbek
Иә, керек емес нәрселер көп, бірақ ештеңеге жағаласпайды, тұра берсе де ештеңе етпейд, негізі оларды Chef-тан алып тастауға болады. Сонда виртуалка құрылған кезде бағдарламалар орнатылмайды.
Тек тіркелген қолданушылар ғана пікір қалдыра алады.