آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش ماشین مجازی Homestead لاراول

دوره های مرتبط با این مقاله

آموزش ماشین مجازی Homestead لاراول

فهرست محتوا

  1. مقدمه
  2. نصب و راه اندازی
    • گام های اولیه
    • تنظیم و پیکربندی ماشین مجازی Homestead
    • تنظیم و راه اندازی vagrant box
    • نصب و پیکرنبدی یک نمونه ی Homestead به ازای هر پروژه
    • نصب پایگاه داده ی MariaDB
  3. استفاده های معمولی و روزانه
    • دسترسی به Homestead به صورت سراسری از هر جایی در سیستم
    • اتصال به ماشین مجازی از طریق SSH
    • اتصال به ماشین مجازی از طریق SSH
    • افزودن چند سایت دیگر برای اپلیکیشن لاراول
    • پیکربندی و زمان بندی اجرای عملیات Cron
    • پرت ها
  4. رابط های (interface) شبکه

مقدمه

تمام سعی Laravel بر این است که تجربه ی برنامه نویس با زبان PHP را لذت بخش تر کند که محیط برنامه نویسی و توسعه محلی اپلیکیشن از آن مستثنا نیست. Vagrant یک روش ساده در عین حال کارآمد برای مدیریت و فراهم آوردن شرایط لازم برای ماشین های مجازی ارائه می دهد.
vagrant یک ابزار برای ایجاد محیط برنامه نویسی بر اساس ماشین مجازی می باشد.
حال Laravel Homestead یک vagrant box از پیش بسته بندی شده است که محیط برنامه نویسی را در اختیار شما قرار می دهد که برای توسعه ی اپلیکیشن در آن دیگر نیازی به نصب PHP، HHVM، سرور مجازی (web server) و غیره ... نیست. دیگر از نگرانی ایجاد اختلال در سیستم عامل خبری نیست. Vagrant box ها به راحتی قابل حذف و دور انداختی هستند، بنابراین در صورت برخورد با کوچکترین مشکل می توانید به آسانی و در کوتاه ترین زمان ممکن box را کاملا حذف کرده و دوباره ایجاد نمایید.
Homestead بر روی تمامی نسخه های سیستم عامل همچون Windows، Mac یا Linux اجرا شده و امکانات و ابزاری نظیر سرور مجازی Nginx،PHP 7.0، MySQL، Postgres، Redis، Memcached، Node و تمامی دیگر مزایا و قابلیت های مورد نیاز برای نوشتن برنامه های تحت وب در چارچوب کاری Laravel را شامل می شود.
توجه: در صورت استفاده از سیستم عامل Windows، لازم است امکان VT-x (مجازی سازی سخت افزار) را فعال نمایید. برای فعال سازی آن کافی است به BIOS رایانه ی خود مراجعه نمایید. در صورت استفاده از Hyper-V در سیستم عامل UEFI ممکن است همچنین لازم باشد Hyper-V را برای دسترسی به VT-x غیر فعال کنید.
Homestead تمامی نرم افزارهای زیر را شامل می شود:

  • Ubuntu 14.04
  • Git
  • PHP 7.0
  • HHVM
  • Nginx
  • MySQL
  • MariaDB
  • Sqlite3
  • Postgres
  • Composer
  • Node (With PM2, Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd

نصب و راه اندازی

گام های اولیه

پیش از راه اندازی محیط، بایستی علاوه بر Vagrant برنامه ی VirtualBox 5.x یا VMWare را نصب کنید. تمامی این بسته های نرم افزاری برنامه های نصب آسان و ویژوال را برای کلیه ی سیستم عامل های پرطرفدار ارائه می کنند.
جهت استفاده از VMware provider، می بایست VMware Fusion / Workstation و VMware Vagrant plug-in را نصب کنید. اگرچه برای استفاده از آن می بایست مبلغی را پرداخت کنید، اما از انجایی که به اشتراک گذاری پوشه ها را سریع تر می کند و کارایی را بهبود می بخشد استفاده از آن را اکیدا توصیه می کنیم.

نصب Homestead Vagrant Box

پس از نصب VirtualBox / VMware و Vagrant، می بایست باکس laravel/homestead را با درج دستور زیر در پنجره ی فرمان (cmd) به فایل نصبی Vagrant خود اضافه کنید. دانلود باکس ممکن است چند دقیقه ای زمان شما را بگیرید:

                    vagrant box add laravel/homestead

در صورتی که این دستور با شکست مواجه شد، بدانید که Vagrant نصب شده بروز نیست و باید آن را آپدیت کنید.

نصب Homestead

می توانید Homestead را به آسانی و با clone کردن (ایجاد نمونه ی عینی از) repository (مخزن) نصب کنید. repository را در پوشه یHomestead و در دایرکتوری "home" کلون کنید. این کار را به دلیل اینکه باکس Homestead به عنوان میزبان برای تمامی پروژه هایLaravel ایفای نقش می کند، انجام می دهیم.

cd ~
 
git clone https://github.com/laravel/homestead.git Homestead

پس از کلون کردن مخزن Homestead، دستور bash init.sh را از دایکتوری Homestead اجرا کرده تا فایل پیکرنبدی Homestead.yamlایجاد شود. فایل Homestead.yaml در دایرکتوری مخفی ~/.homestead جایگذاری می شود.

                    bash init.sh

پیکربندی Homestead

تنظیم کلید Provider

کلید provider مقیم در فایل ~/.homestead/Homestead.yaml تعیین می کند کدام provider بایستی مورد استفاده قرار گیرد:virtualbox، vmware fusion یا vmware workstation. می توانید این کلید را با provider مورد نظر مقداردهی کنید:

                    provider: virtualbox

تنظیم و پیکربندی پوشه های به اشتراک گذاشته شده

folders که یک property متعلق به فایل Homestead.yaml می باشد، در واقع تمامی پوشه هایی که شما مایل به اشتراک گذاری آن ها با محیط برنامه نویسی Homestead هستید را لیست می کند. لازم به ذکر است که همین که این پوشه ها ویرایش می شوند، این تغییرات بین ماشین محلی یا رایانه ی شما و محیط Homestead (ماشین مجازی) سینک می شوند (همانگ خواهند شد). تعداد پوشه های به اشتراک گذاشته شده که پیکربندی می کنید می توانید بنا به نیاز بی نهایت باشد:

folders:
   - map: ~/Code
     to: /home/vagrant/Code

(در این کد المان map از پراپرتی folders محل قرارگیری فایل های پروژه ی لاراول را مشخص می کند. همان طور که می بینید مقدار پیش فرضcode است که دایرکتوری پروژه ی شما را مشخص می کند. المان to مسیر پوشه یا دایرکتوری در ماشین مجازی را نشان می دهد.)
به منظور فعال سازی NFS کافی است یک flag ساده به پیکربندی و تنظیمات پوشه ی سینک شده اضافه کنید:

folders:
   - map: ~/Code
     to: /home/vagrant/Code
     type: "nfs"

پیکربندی سایت های Nginx

با سرور مجازی Nginx آشنایی ندارید؟ مسئله ای نیست. پراپرتی Sites به شما اجازه می دهد به راحتی "domain" را به یک پوشه در محیطHomestead نگاشت (map) کنید. یک نمونه از پیکربندی site در فایل Homestead.yaml قرار داده شده است. به همین ترتیب می توانید هر تعداد سایت که مایلید به محیط Homestead اضافه کنید. Homestead می تواند به عنوان یک محیط کارآمد شبیه سازی برای تمامی پروژه هایLaravel که با آن ها کار می کنید، ایفای نقش کند:

sites:
   - map: homestead.app
     to: /home/vagrant/Code/Laravel/public

خصیصه ی map متعلق به پراپرتی Site اسم domain برای دستیابی به سایت شما از مرورگر را تعیین می کند، خصیصه ی to نیز root پوشه ی لاراول را مشخص می کند.
تنظیم مقدار گزینه ی hhvm بر روی true باعث می شود تمامی سایت های Homestead از HHVM استفاده کنند:

sites:
   - map: homestead.app
     to: /home/vagrant/Code/Laravel/public
     hhvm: true

اگر مقدار پراپرتی Sites را پس از provision (تنظیم و نصب) محیط برنامه نویسی Homestead (Homestead box) تغییر دهید، در آن صورت لازم است دستور vagrant reload --provision را مجددا اجرا کنید تا پیکربندی سرور مجازی Nginx بر روی ماشین مجازی بروز رسانی شود.

فایل Hosts

می بایست "domains" سایت های Nginx خود را به فایل hosts بر روی ماشین اضافه کنید. فایل hosts درخواست های مشاهده ی سایت هایHomestead را به ماشین مجازی Homestead تغییر مسیر (redirect) می کند. در سیستم عامل های Mac و Linux، این فایل در مسیر/etc/hosts قرار می گیرد. در سیستم عامل ویندوز، همین فایل را بایستی در C:\Windows\System32\drivers\etc\hosts پیدا کنید. کدهایی که به این فایل اضافه می کنید به صورت زیر خواهد بود:

                    192.168.10.10 homestead.app

اطمینان حاصل نمایید آدرس IP لیست شده با آدرس IP موجود در فایل ~/.homestead/Homestead.yaml یکی باشد. پس از افزودنdomain به فایل hosts خود، می توانید از طریق مرورگر به سایت دسترسی داشته باشید:

http://homestead.app

راه اندازی Vagrant Box

پس از ویرایشHomestead.yaml با توجه به نیاز خود، دستور vagrant up را از پوشه ی Homstead اجرا کنید. Vagrant ماشین مجازی را راه اندازی (بوت) کرده و تمامی پوشه های به اشتراک گذاشته ی شما و سایت های Nginx را به صورت خودکار پیکربندی می کند.
حال به منظور از کار انداختن یا به اصطلاح نابود کردن ماشین، کافی است دستور vagrant destroy –force را اجرا کنید.

نصب و پیکرنبدی یک نمونه ی Homestead به ازای هر پروژه

بجای نصب Homestead به صورت سراسری و به اشتراک گذاری Homestead box برای تمامی پروژه ها، می توانید یک نمونه از Homesteadرا به ازای هر پروژه ای که روی آن کار می کنید، پیکربندی نمایید. در صورتی که بخواهید همراه با پروژه ی خود یک Vagrantfile عرضه کنید، استفاده از استراتژی ذکر شده بسیار کارآمد تلقی می شود. این کار به برنامه نویسان دیگری که بر روی همین پروژه کار می کنند امکان می دهد به راحتی با اجرای دستور vagrant up ماشین مجازی را پیکربندی و راه اندازی کنند.
جهت نصب Homestead به طور مستقیم در پروژه، از دستور زیر استفاده کنید:

                    composer require laravel/homestead --dev

پس از پایان نصب Homestead، دستور make را برای تولید فایل های Vagrantfile و Homestead.yaml در root پروژه فراخوانی کنید. دستور make به صورت خودکار directive های sites و folders را در فایل Homestead.yaml تنظیم می کند.

Mac / Linux:

php vendor/bin/homestead make

Windows:

vendor\bin\homestead make

حال دستور vagrant up را در پنجره ی فرمان خود اجرا کرده و به پروژه ی خود مقیم در آدرس سایتhttp://homestead.app از طریق مرورگر خود دسترسی پیدا کنید. به خاطر داشته باشید که اضافه کردن ورودی فایل /etc/hosts برای دامنه یhomestead.app و یا domain دلخواه الزامی بوده و نباید فراموش شود.

نصب پایگاه داده ی MariaDB

اگر تمایل دارید بجای پایگاه داده ی MySQL از MariaDB استفاده کنید، در آن صورت می بایست آپشن mariadb را به فایلHomestead.yaml خود اضافه کنید. با افزودن این گزینه به فایل مزبور، MySQL حذف شده و پایگاه داده ی MariaDB جایگزین آن گشته و نصب می گردد. لازم است توجه داشته باشید که اگرچه MariaDB به عنوان جایگزین مناسبی که نیاز به هیچ تنظیمی ندارد برای پایگاه داده یMySQL ایفای نقش می کند، با این وجود بایستی درایور پایگاه داده ی mysql را در فایل پیکربندی پایگاه داده ی برنامه ی تحت وب خود داشته باشید:

box: laravel/homestead
ip: "192.168.20.20"
memory: 2048
cpus: 4
provider: virtualbox
mariadb: true

کاربردها و استفاده های روزانه

دسترسی به Homestead به صورت سراسری از هر جایی در سیستم

گاهی لازم است ماشین مجازی Homestead را از هر جایی در filesystem با دستور vagrant up راه اندازی کنید. این کار را می توان به راحتی با افزودن یک نام مستعار (alias) Bash به پروفایل Bash خود ترتیب داد. این alias به شما امکان می دهد دستور Vagrant را از هر جایی در سیستم که مایلید صدا زده و نیز دستور ذکر شده را به صورت خودکار به فایل نصبی Homestead ارجاع دهید:

                    alias homestead='function __homestead() { (cd ~/Homestead &&vagrant $*);unset -f __homestead;};__homestead'

به یاد داشته باشید که بایستی مسیر ~/Homestead در alias را به مکان قرارگیری اصلی فایل های نصب شده ی Homestead تغییر دهید. پس از اینکه alias نصب شد، می توانید دستوراتی نظیر homestead up یا homestead ssh را از هر جایی در سیستم اجرا کنید.

اتصال به ماشین مجازی از طریق SSH

می توانید از طریق پروتکل اتصال از راه دور SSH به ماشین مجازی خود متصل شوید. برای این منظور بایستی دستور vagrant ssh را در پنجره ی فرمان (terminal) از پوشه ی Homestead اجرا کنید.
اما از آنجایی که مدام نیاز پیدا می کنید با پروتکل SSH به ماشین مجازی Homestead خود متصل شوید، توصیه می کنیم یک alias، همان طور که در بالا تشریح شد، به ماشین میزبان خود اضافه کنید تا بدین وسیله با سرعت بالا بتوانید به Homestead box خود از طریق SSH متصل شده و دسترسی داشته باشید.

اتصال به پایگاه داده

یک پایگاه داده ی homestead برای هر دو بانک های اطلاعاتی MySQL و Postgres به صورت یک امکان اضافی بر سازمان تنظیم (config) می شود. علاوه بر این، فایل.env لاراول، framework را گونه ای تنظیم می کند که بتواند از این پایگاه داده به عنوان ویژگی اضافی بر سازمان به راحتی استفاده کند.
به منظور اتصال به پایگاه داده ی MySQL یا Postgres از ماشین میزبان و از طریق نرم افزارهای مدیریت پایگاه داده ی Navicat یا Sequel Pro، می بایست به آدرس IP محلی 127.0.0.1 و پرت های 33060 ویژه ی MySQL یا 54320 ویژه ی Postgres متصل شوید. نام کاربری و گذرواژه ی لازم برای دسترسی به هر دو پایگاه داده به ترتیب homestead / secret می باشد.

توجه:

دقت داشته باشید که تنها برای اتصال از ماشین میزبان (host machine) به پایگاه داده های مورد نظر، می توان از این پرت های غیر استاندارد استفاده کرد. در فایل config پایگاه داده ی لاراول فقط و فقط باید از پرت های پیش فرض 3306 و 5432 استفاده کنید زیراکه لاراول داخل خود محیط ماشین مجازی اجرا می شود.

افزودن چند سایت دیگر برای اپلیکیشن لاراول

پس از تنظیم و راه اندازی محیط برنامه نویسی Homestead، می خواهیم چندین سایت دیگر برای اپلیکیشن لاراول خود ایجاد کنیم. این اختیار را داریم که چندین نسخه ی نصبی از لاراول بر روی محیط Homestead خود اجرا کنیم. جهت افزودن سایت جدید به برنامه، کافی است آن را به فایل~/.homestead/Homestead.yaml اضافه کرده و سپس دستور vagrant provision را در پنجره ی فرمان، از پوشه ی Homestead اجرا کنید.

پیکربندی، زمان بندی اجرای Cron job (عملیات کران)

کرون جاب وظیفه ی اجرای برنامه در زمان بندی‌های مشخص را بر عهده دارد.
لاراول یک روش آسان برای زمان بندی (اجرای عملیات) و job های Cron فراهم می آورد. این روش عبارت است از تنظیم (زمان بندی) تنها یک دستور آرتیزان schedule:run به گونه ای که هر دقیقه یکبار اجرا شود. این دستور job یا عملیات تعریف شده ی زمان بندی شده را درون کلاسApp\Console\Kernel بررسی کرده تا پی ببرد کدام عملیات (با توجه به زمان بندی انجام شده) باید اجرا شود.
اگر می خواهید دستور schedule:runبرای سایت Homestead اجرا شود، در آن صورت باید به هنگام تعریف سایت، آپشن schedule را باtrue مقدار دهی کنید:

sites:
   - map: homestead.app
     to: /home/vagrant/Code/Laravel/public
     schedule: true

عملیات cron برای سایت در پوشه ی/etc/cron.d ماشین مجازی تعریف می شود.

پرت ها (درگاه ها)

به صورت پیش فرض، پرت های زیر به محیط برنامه نویسی Homestead ارسال می شوند:

  • SSH: 2222 → Forwards To 22
  • HTTP: 8000 → Forwards To 80
  • HTTPS: 44300 → Forwards To 443
  • MySQL: 33060 → Forwards To 3306
  • Postgres: 54320 → Forwards To 5432

ارسال پرت هایی علاوه بر پرت های پیش فرض به Vagrant box

در صورت تمایل می توانید پرت هایی علاوه بر پرت های پیش فرض به محیط Vagrant اضافه کرده و در این حین پروتکل آن ها را نیز مشخص کنید:

ports:
   - send: 93000
     to: 9300
   - send: 7777
     to: 777
     protocol: udp

تنظیم رابط (interface) شبکه

پراپرتی network از فایل Homestead.yaml اینترفیس های شبکه را برای محیط Homestead پیکربندی می کند. تعداد رابط هایی که برای محیط Homestead تنظیم می کنید می تواند بسته به نیاز شما تغییر کند:

networks:
   - type: "private_network"
     ip: "192.168.10.20"

جهت فعال سازی رابط bridged، یک مشخصه ی bridge در فایل Homestead.yaml تنظیم کرده و سپس مقدار خصیصه ی –type را بر رویpublic_network تنظیم نمایید:

networks:
   - type: "public_network"
     ip: "192.168.10.20"
     bridge: "en1: Wi-Fi (AirPort)"

حال به منظور فعال سازی DHCP، کافی است خصیصه ی ip را از تنظیمات فایل خود حذف کنید:

networks:
   - type: "public_network"
     bridge: "en1: Wi-Fi (AirPort)"
  • 2275
  •    1156
  • تاریخ ارسال :   1395/02/09

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .