نصب و راه اندازی Homestead 2.0 برای Laravel 5

نصب و راه اندازی Homestead 2.0 برای Laravel 5

PHP یکی از چندین فن آوری است که برای ساخت وب سایت با لاراول به آن نیاز دارید. علاوه بر این شما نیاز به نصب یک وب سرور مثل Apache یا NginX دارید و یک دیتابیس مثل MySQL یا PostgreSQL دارید، و شاید بخواهیم از  فن آوری های مکمل مثل Redis و Grunt و Bower استفاده کنیم. همانطور که شما ممکن است تصور کنید، نصب و پیکربندی تمام این اجزاء، می تواند ما را به چالش بکشد. به خصوص زمانی که شما ترجیج می دهید به جای دست و پنجه نرم کردن با مسائل پیکربندی کد نویسی را انتخاب کنید.

 

در سال های اخیر با ظهور ماشین های مجازی از این مانع به طور چشمگیری کاسته شده است. یک ماشین مجازی یا Virtual Machine یک نرم افزاری از که بر روی یک کامپیوتر پیاده سازی می شود. این پیاده‌سازی به‌گونه‌ای است که تصور می‌شود یک کامپیوتر واقعی در حال اجرای برنامه‌های ماست، که می تواند در داخل محدوده یک کامپیوتر دیگر مانند لپ تاپ اجرا شود یا حتی در داخل یک ماشین مجازی دیگر. این یک تکه فن آوری فوق العاده است، زیرا شما می توانید از یک ماشین مجازی به عنوان اجرای لینوکس Ubuntu در داخل Windows 8 یا بالعکس استفاده کنید. بعلاوه این امکان وجود دارد یک بسته سفارشی ماشین مجازی با یک مجموعه نرم افزار انتخابی داشته باشیم. این بسته ها توسط توسعه دهنده ها عرضه می شوند، که می توان این ماشین مجازی را اجرا و از نرم افزارهای سفارشی پیکربندی شده استفاده کرد. این دقیقا چیزی است که توسعه دهندگان Laravel با Homestead انجام داده اند، یک ماشین مجازی بر پایه Vagrant شامل بسته های نرم افزاری است که با آنها می توانید شروع به ساخت وب سایت خود با لاراول کنید.

 

Homestead در حال حاظر بر اساس اوبونتو نسخه ۱۴.۰۴ می باشد، و شامل تمام چیزهایی است که برای ساخت برنامه لاراول خود به آن احتیاج دارید مثل PostgreSQL، MySQL، Nginx و PHP 5.6 و انواع افزونه های دیگر. که تمام اینها بر روی OS X، Linux و Windows قابل اجرا هستند و همچنین تنظیمات Vagrant بسیار آسان می باشد، به این معنی که در اکثر موارد همه چیز مورد نیاز برای شروع کار با لاراول در کمتر از ۳۰ دقیقه طول می کشد. (البته بستگی به سرعت اینترنت دارد.)

 

نصب بسته واگرانت

 

Homestead نیاز به Vagrant و VirtualBox دارد. نگران نباشید هر دو این ها رایگان هستند بر روی تمام سیستم عامل های متداول قابل اجرا هستند مثل OSX، Linux و Windows. حال اجازه دهید، پس بروید و آخرین نسخه های Vagrant و VirtualBox را دانلود و نصب کند. پیشنهاد می شود اگر از ویندوز استفاده می کنید از Git یا Cmder استفاده کنید.

 

هنگامی که VirtualBox یا VMware و Vagrant را نصب کردید، شما باید بسته laravel/homestead را در واگرانت خود با استفاده از دستور زیر اضافه کنید:

 

 

توجه داشته باشید که حجم بسته Homestead بسیار بالا می باشد (۹۰۰ MB) پس ممکن است به دلیل سرعت پایین اینترنت چندین ساعت منتظر شویم تا نصب شود…

 

 

install-homestead

 

این دستور باعث می شود بسته Homestead نصب شود. این بسته شامل یک سیستم عامل و چندین برنامه مختلف است. توسعه دهندگان Vagrant بسته های مفید مختلفی را با اهداف و برنامه های مختلف عرضه می کنند، بنابراین می توانید لیست کامل این بسته ها را اینجا مشاهده کنید.

 

نصب Homestead

 

شاید دوست داشته باشید به بصورت دستی Homestead را از مخزن github کپی کنید. برای clone کردن مخزن، دستور زیر را در دایرکتوری home یا ~ یا C:\Users\Username تا بسته Homestead به عنوان میزبانی تمام پروژه های لاراول و PHP را به عهده گیرد.

 

 

 

git-clone-homestead

 

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

 

 

فایل Homestead.yaml در دایرکتوری homestead./~ قرار می گیرد.

 

تنظیم کلید SSH

 

در این مرحله، باید فایل Homestead.yaml را ویرایش کنید. در این فایل، می توانید آدرس کلید عمومی SSH و همچنین پوشه هایی که می خواهید بین دستگاه اصلی و ماشین مجازی به اشتراک گذاشته شود پیکربندی کنید.

 

اگر در حال حاضر کلید SSH ندارید، می توانید با استفاده از دستور زیر یک جفت کلید SSH ایجاد کنید:

 

 

توجه داشته باشید که اگر از ویندوز استفاده می کنید دستور بالا را در پوسته Git Bash که هنگام نصب Git نصب می شود اجرا کنید. البته راه جایگزینی نیز وجود دارد و آن استفاده از PuTTY و PuTTYgen است.

 

هنگامی که کلید خود را ایجاد کردید، آدرس کلید را در ویژگی authorize که در فایل Homestead.yaml وجود دارد مشخص کنید.

 

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

 

کلید folders از فایل Homestead.yaml لیست تمام پوشه هایی که دوست دارید با محیط توسعه Homestead به اشتراک بگذارید را نشان می دهد. همانطور که می بینید یک کلید دیگر با نام sites در فایل وجود دارد که بطور پیشفرض به صورت زیر دیده می شود:

 

 

folders و sites کلید هایی هستند که وقتی برای اولین بار با Homestead کار می کنیم باعث گیج شدن ما می شود، به توضیحات زیر را به دقت مطالعه کنید. مشخصه map از  شیء folders محل پروژه لاراول را شناسایی می کند. مقدار پیشفرض Code/~ است، به این معنی است که Homestead انتظار دارد پروژه شما در دایرکتوری با نام Code در دایرکتوری ~ یا C:\Users\Username ساکن شده باشد. البته که شما آزاد هستید هر طوری که دوست دارید این آدرس را تغییر دهید، این را در نظر بگیرید که در این مورد ما می خواهیم این دایرکتوری باید به عنوان دایرکتوری ریشه پروژه لاراول ما باشد. شیء to از خاصیت folders موقعیت دایرکتوری Code را در ماشین مجازی مشخص می کند، در نتیجه محتویات دایرکتوری محلی شما از ماشین مجازی نیز قابل دسترسی است.

 

شیء map از خاصیت sites، نام domain را برای دسترسی به برنامه لاراول از طریق مرورگر را مشخص می کند. شیء to از خاصیت sites ریشه دایرکتوری پروژه Laravel را مشخص می کند، که به طور پیشفرض public/ است. این تنها برخی از این تنظیمات است شما می توانید تنظیمات بیشتری را از مستندات وب سایت Laravel مطالعه کنید.

 

در ادامه می خواهیم برای تست، یک فایل ساده PHP ایجاد کنیم و یک دستور ساده چاپ (echo) به آن اختصاص دهیم. برای این کار ابتدا یک دایرکتوری خالی به نام test در موقعیت Code/~ یــــا C:\Users\Username\Code درست کنید، این کار را می توانید به طور دستی انجام دهید یا آگ دوست دارید می توانید با استفاده از دستورات زیر دیرکتوری و فایل خود را ایجاد کنید:

 

 

ما با استفاده از دستورات بالا دیرکتوری test و public را ایجاد کردیم و فایل index.php را با مقدار زیر مقداردهی کردیم:

 

 

همانطور که می دانید دستور بالا یک متن ساده را قرار است در مرورگر چاپ کنید.

توجه کنید دستور cat index.php باعث می شود محتوای index.php در کنسول نمایش داده شود و دستور nano هم باعث می شود ویرایشگر nano باز شود تا محتوای فایل را وارد کنیم.

 

حال فایل Homestead.yaml را به صورت زیر ویرایش کنید:

 

 

تغییرات را ذخیره کنید و دستور vagrant up را در دایرکتوری Homestead اجرا کنید:

 

 

حال ماشیم مجازی Homestead نصب و راه اندازی شده است! مرورگر خود را باز کنید و به آدرس /http://192.168.10.10 مراجعه کنید و اگر همه چیز به درستی انجام شده باشد باید نوشته !Hello from Homestead را مشاهده کنید. توجه داشته باشید که پورت ها در نسخه Homestead 2 تغییر یافته است. پورت SSH از ۲۲۲۲ به ۲۲، پورت HTTP از ۸۰۰۰ به ۸۰، پورت MySQL از ۳۳۰۶۰ به ۳۳۰۶ و پورت postgress از ۵۴۳۲۰ به ۵۴۳۲ تغییر داده شده است.

 

اگر ماشین مجازی اجرا نشد، یا نوشته Hello from Homestead مشاهده نشد، به فایل Homestead.yaml مراجعه کنید و  اطمینان حاصل کنید که آدرس ها به درستی تنظیم شده اند.

 


 

نصب لاراول ۵

 

حال که توانستیم یک فایل ساده PHP را اجرا کنیم، پس اجازه دهید که Laravel 5 را نصب کنیم.  برای این کار همانطور که حدس زده اید باید به فایل Homestead.yaml مراجعه کنیم و آدرس ها را به حالت پیشفرض ویرایش کنیم:

 

 

از آنجایی که Homestead یک ماشین مجازی در حال اجرا Ubuntu است، شما می توانید به داخل آن SSH کنید، درست مثل هر سرور دیگر. به عنوان مثال شاید بخواهید فایل های پیکربندی MySQL و nginx را سرهم بندی کنید، یا یک نرم افزار دیگر نصب کنی، و یا تنظیمات دیگری را برای محیط توسعه خود تنظیم کنید. شما می توانید تنها با دستور vagrant ssh وارد ماشین مجازی شوید. اگر از ویندوز استفاده می کنید از PuTTY استفاده کنید.

 

توجه داشته باشید که به خاطر اینکه آدرس ها را در فایل Homestead.yaml تغییر داده ایم، مجبور هستیم ماشین مجازی را خاموش و از نو راه اندازی کنیم:

 

 

 

 

حال با دستور زیر ماشین مجازی را اجرا می کنیم:

 

 

حال می توانیم دوباره با دستور vagrant ssh وارد سرور شویم:

 

 

شما به عنوان کاربر vagrant وارد شده اید، و اگر بخواهید لیست دایرکتوری های این کاربر را مشاهده کنید دستور زیر را زیر را وارد کنید:

 

 

اگر مثل من در لینوکس تازه وارد هستید، پیشنهاد می کنم این آموزش بهانه ای باشد تا زمانی را برای یادگیری Linux کنار بگذارید. این یک فرصت عالی برای آشنایی بدئن ترس با سیستم عامل Linux Ubuntu است. پس بروید و هک را شروع کنید D:

 

اگر علاقمند به یادگیری Linux هستید پیشنهاد می کنیم دوره مجازی آموزش لینوکس که جادی آن را آماده کرده است را مشاهده کنید.

 

خــــوب! برگردیم به بفیه کار، کجا بودیم؟!! آها، تا اینجا که توانستیم با SSH وارد شویم، البته امیدوارم که تا این مرحله به هیچ مشکلی بر نخورده باشید. حال می توانیم فریم ورک لاراول را نصب کنیم، فقط اطمینان حاصل کنید که آدرس ها را به درستی در فایل Homestead.yaml وارد کرده اید. ابتدا با دستور زیر با استفاده از Composer لاراول را دریافت می کنیم:

 

 

مطمئن شوید دایرکتوری composer/vendor/bin./~ در PATH قرار داده باشید.

 

حال با دستور زیر پروژه جدیدی از لاراول را در دایرکتوری Code ایجاد می کنیم:

 

 

هنگامی که با موفقیت نصب شد دوباره به آدرس /http://192.168.10.10 مراجعه کنید تا صفحه اول پیشفرض لاراول ۵ را مشاهده کنید:

 

Screen-Shot-2015-01-13-at-11.42.04-PM

 

البته می توانید به جای استفاده از laravel new laravel برنامه را با Composer نصب کنید:

 

logo-composer-transparent2

 

 

در آخر شاید لازم باشد این را بگویم که شاید نخواهیم هر بار برای ورود به برنامه لاراول از طریق مرورگر مجبور باشیم http://192.168.10.10 تایپ کنیم، شاید بهتر باشد به دامنه خود نام http://homestead.app را بدهیم. برای این کار باید ویرایشگر خود را به صورت run as administrator باز کنید و به آدرس C:\Windows\System32\drivers\etc رفته و فایل hosts را باز کنید و دستور زیر را به آن اضافه کنید و در آخر فایل را ذخیره کنید.

 

 

این کار باعث می شود به جای http://192.168.10.10 از http://homestead.app استفاده کنیم.

 


 

 

  • روح

    یه سوال، شما سیستم عامل اصلی که استفاده میکنید کدومه؟ ویندوز یا لینوکس

    • پاتــریک

      اصلی ویندوزه، درکنارش هم ubuntu server

  • علی اصغر کریمی

    ببخشید این رو میگم اما حجم homestead چه قدری هست ؟

  • محمد اعظمی

    سلام من آدرس هارو چک کردم همه چیز رو طبق همین آموزش انجام دادم، حتی برای اطمینان بیشتر C:\Users\mohamad\Code رو جایگزین~/Code کردم. اما توی vm پوشه ای به اسم Code نبود حتی با دستور ls -a هم همچین چیزی رو نشون نداد. مورد بعدی هم اینکه نه از طریق ip و نه از طریق همون دامنه homestead.app چیزی نمایش داده نشد. توی فایل hosts هم اشاره رو انجام دادم

  • مسعود قربانی

    سلام.
    من مراحل رو طی کردم و هنگامی که vagrant up رو میزنم توی خط wating for boot گیر میکنه و بعد task به پایان میرسه.
    مشکل کجاست؟
    کلید ssh هم درست تنظیم کردم.
    تشکر

    • پاتریک

      به تنظیمات BIOS رفته و VT-x را فعال کنید و اگر Hyper-V نصب است آن را پاک کنید یا اگر غیر فعال است آن را نصب کنید. احتمالا با همین روش مشکل هل می شود. اما اگر نشد خطاها را سرچ کنید. 😉

  • برنامه نویس

    سلام
    ممنون بابت آموزش خوبتون
    من اونجا که بسته 900 مگ رو دانلود می کنه دانلودم تا آخر نمیره. یه جایی میره (مثلاً 12 درصد) اونجا گیر می کنه می مونه!
    چندبار امتحان کردم کلافم کرده!!!

    سوالی داشتم:
    آیا تنها راه مدیریت پروژه های لاراول استفاده از homestead هست؟ یعنی یک برنامه نویس لاراول نمی تونه بدون homestead کار کنه؟
    لطفاً یکم توضیح بدید که اگه راههای دیگه هم هست وقتم رو سر homestead تلف نکنم چون از طرفی عجله دارم و میخوام زودتر شروع کنم.

    با سپاس از لطف شما 🙂