Виртуализация

Өзіңіздік бағдарламаны дайындау мен өндіру жаттығу кезінде көптеген сола жатпайтын бұғаттарға жол ашуы мүмкін. Сондай-ақ, көмекшілер команда жұмысы жасау кезінде қолданылатын кітапханалардың барлық нұсқасы үшін әрі қалыпты өндіретін байланыстарды сақтау келгенде, рақметтеулер өнімін қолдау ету үйіндерінде күрделіді.

Егер сіз Windows бойынша дайындау жасау және Linux-ге (немесе Windows қолжетімсіз) дайындау жасау үшін немесе көмекшілер командасымен жұмыс істеген болсаңыз, сіз виртуал машина пайдалану керек. Бұл қиын көндігі, бірақ VMware не VirtualBox сияқты байланыстарды көмекшілігі бар болмайтындар үшін, бірнеше қосымша құралдар сізге бірнеше оқиға ішінде виртуал аумақты орнатуға көмек көрсете алады.

Vagrant

Vagrant сізге танымал виртуал аумақтар бойынша сіздің жасау үшін көмек көрсетеді және бұл аумақтарды тек қажетті бір баптау файлы бойынша басқарады. Бұл аумақтарды қолданба жасау немесе Puppet немесе Chef сияқты “тауландыру” қамтымайды. Бастапқы аумақты тауландыру өмір сүргендіретін көмекші тәсілдерді мейліншеу барысында бірдей аумақтарды салуды жасау жолымен үйлесімдігін қамтамайды жаттылап алу мен қиындымалы “орнату” командаларды сақтау қажеттілігін азайтып жаттылап алуға мүмкіндік береді. Сіз де аумақты “жою” және өзгеріссіз көмекші өнімдермен жаңартулай аласыз, сондай-ақ “жаңа” орнатуды қайта құрау арқылы.

Vagrant кодыңызды сіздің хост машинаңыз мен сіздің виртуал машинаңыз арасында кодты бөлісу мүмкіндігі бар папкаларды жасайды, бұл оларды өзіңіздің хост машинаңызда файлдарды жасау және өзіңіздің виртуал машинаңызда кодты іске қосу мүмкін.

Docker

Docker - толық виртуал машинаға алтернатива болып, бұл “тесе” туралы бар барлық несізге айтатын дайын берілген. Контейнер - бұл, ең үлкен түрде, бір-біріне қарай атқаратын бірден бір дайын жұмыс істейтін блок, мәселен, веб-серверді іске қосу. “Сурет” - бұл контейнерді жасау үшін пайдалану жасау жаттылап алу әдісі - Докерде олармен толынады.

Типті LAMP өнімдері біріне веб-сервер, бірі PHP-FPM процессі мен MySQL арқылы үш контейнерге ие болады. Vagrant папкаларында бірінші санында қалау жасауы болдыңыз жаттылап алсаңыз, дайын фаилдарын көтармау жаттылап алсаңыз жаттылап алуы мүмкін. Дайын айналдырып қайтымыс боларымыз жаттылап алу әдісі бойынша контейнерді құрау үшін docker-compose.yml файлын өзіңіздің жобаңызды қалыптастырып алуы мүмкін, олардың бір-бірімен қалыптастыруы менін білуі болады.

Докер несізге бірнеше веб-сайтты дайын бір-бірінен алдымен орнату көмек көрсетсе де, өзгерістерді көптеген барлық жасау үшін көмек көрсетуден бас тартса, ол диск жаттылап алу үшін немесе барлық несізге жасау үшін көмек көрсетсе, сізге көмек көрсету мүмкін. Ол эффективді: орнату және жүктеу жылдам, сіз өзіңіздің суреттерді тауландыра аласыздарды, барлығын көмек көрсетіп жасау үшін тек бір суретті сақтасаңыздар, контейнердердің көмек көрсетуді таңдап алу қажеті жоғары болмайды, бөтен серверлерді тегін іске қосу мүмкін жаттылап алу үшін секундтар бойынша күту қажет емес, оларды стоп жасау мен бастау үшін толтыру қажет емес.

Мысал: PHP Қолданбаларын Docker құрамында іске қосу

Сіздің компьютеріңізге docker орнатылғаннан кейін, сіз бір команда арқылы веб-серверді іске қоса аласыз. Келесі жағдайда барлық PHP-кодты толықтыру жасау жаңа Apache орнатпасыз, /path/to/your/php/files көшірмесін документтік жанымдыққа салу үшін PHP-версияларын көре аласыз, оны http://localhost:8080 сайтында көре аласыз:

docker run -d --name my-php-webserver -p 8080:80 -v /path/to/your/php/files:/var/www/html/ php:apache

Бұл контейнерін іске қосу және іске қосу үшін басқа параметрлерге міндетті емес, просто жалғасып қоймыз. -d оны өңдеу арқылы арка планда іске қосар. Оны тоқтатып, қайта іске қосу үшін тек docker stop my-php-webserver және docker start my-php-webserver командаларын орындаңыз (басқа параметрлер көмек көрсету мүмкін емес).

Docker туралы толық ақпарат алыңыз

Жоғарыда берілген команда тек негізгі серверді іске қосу мәселесін көрсетеді. Сіз қосу мүмкіндіктері туралы қосымша ақпарат алу үшін (және Docker Hub -де мысалдарды қамтып алу үшін) тізімдірілген басқа да бірдей іске қоса аласыз. Максатты қолдану табу үшін терминологияны сақтау үшін Docker пайдаланушы нұсқаулығын оқуыңызды сұрау қыламыз, және сізді қамтып алуы мүмкін болар. Жаттығу кодты тексермес болмасаңыз, оны қолданбадың соңғы қауіпсіздік жамбасы жоқ болуы мүмкін. Егер ережелі таңдау қалпына білмейдінізді деп алсаңыз, рақметті репозиторийлерге тіркесу.

PHPDocker.io сайты толық функцоналды LAMP/LEMP стекі үшін әр түрлі файлдарды автоматты түрде құрау үшін барлық файлдарды автоматты түрде құрау үшін PHP нұсқасы мен кеңейтілгенінізді таңдауға мүмкіндік береді.