رفتن به نوشته‌ها

فصل ۲-۱: نصب و راه‌اندازی محیط لاراول با Homestead

در جلسه‌ی گذشته به توضیح مفصل فریم‌ورک قدرتمند لاراول پرداختیم و شما را در انتخاب این فریم‌ورک راهنمایی نمودیم. حال که انتخاب و تصمیم شما Laravel است، ورودتان را صمیمانه به این سری از دوره‌های آموزشی تبریک عرض می‌کنیم. هدف از ایجاد این فصل آموزش فارسی نصب فریم‌ورک لاراول نسخه‌ی ۵ به بالا است. بهترین راه برای توسعه‌ لاراول، مطمئن بودن از شرایط سرور است. این سرور می‌تواند داخلی (Local) یا خارجی (Remote Server) باشد. بنابراین لاراول ابزاری را برای فراهم کردن این موضوع در اختیار شما قرار داده است.

۱) ملزومات سیستم

تمام امکاناتی که برای نصب لاراول مورد نیاز است در سیستم عامل ویندوز وجود دارد و با نصب Wamp‌ یا Xampp دسترسی به یک سرور داخلی امکان پذیر خواهد بود. اما تمام افراد و برنامه‌نویسان با ویندوز کار نمی‌کنند. بنابراین تمرکز این آموزش ارائه کدها و دستورها بر اساس ساختار سیستم عامل لینوکس و مکینتاش است. البته لازم به ذکر است که این دستورها و کدها در سیستم‌عامل ویندوز قابل اجرا هستند.

حداقل امکاناتی که برای نصب لاراول مورد نیاز است:

  • PHP نسخه 5.5.9 یا بالاتر
  • افزونه‌ی OpenSSL PHP
  • افزونه PDO PHP
  • افزونه Mbstring PHP
  • افزونه Tokenizer PHP

۱-۱) Composer

جهت توسعه نرم‌افزار خود حتما و حتما به یک Composer عمومی (گلوبال) نیاز دارید. و اما کامپوزر چیست؟

کامپوزر ابزاری ست برای مدیریت بسته های نصبی که به زبان PHP نوشته شده اند. کامپوزرها در PHP مانند npm در Node یا Ruby Gem در زبان Ruby است. در واقع با کامپوزرها می توان بسته هایی مثل لاراول، Laravel Collective, Laravel Helper و… را در فایل پروژه خود نصب و مدیریت کرد. گاها برای تعریف کامپوزر از عبارت Dependency Manager (مدیریت وابستگی ها) استفاده می شود که به معنای مدیریت تمام کتابخانه ها و وابستگی های موجود در پروژه است. لازم به ذکر است یک مدیریت بسته ی دیگر تحت عنوان PEAR (مخفف عبارت PHP Extension and Application Repository) وجود دارد ولی بنا به دلایلی توسعه دهندگان دیگر از آن استفاده نمی کنند و مهم ترین ایراد آن بروز نبودن بسیاری از بسته هاست.

۲-۱) Vagrant, VMWare و VirtualBox

اگر با ابزار Vagrant‌ آشنا نیستید باید خدمت شما عرض کنم که این ابزار به عنوان یکی از بهترین ماشین‌های مجازی‌ساز شناخته می‌شود و محیطی مجازی را به همراه نصب لاراول و تمام تنظیمات در اختیار شما قرار می‌دهد. وگرانت در دل نرم‌افزارهای شبیه‌سازی چون VMWare و VirtualBox بکار گرفته می‌شود. لازم به ذکر است که نرم‌افزارهای VMWare و VirtualBox‌ قابلیت نصب سیستم‌عامل‌هایی چون لینوکس، ویندوز و مکینتاش را  به صورت مجازی برای شما فراهم می‌کنند. به عبارت دیگر Vagrant‌ ابزاری در اختیار شما قرار می‌دهد تا ماشین مجازی خود را بدون نصب هیچگونه ابزاری در سیستم عامل خود راه‌اندازی کنید، از مزایای استفاده از این ابزار می‌توان به شبیه‌سازی محیط واقعی سرورها در بستر اینترنت، اشاره نمود. اصلا نگران نباشید زیرا Vagrant مانند یک ظرف یکبار مصرف است که هیچ آسیبی به سیستم‌عامل فعلی شما وارد نمی‌کند.

۳-۱) Laravel Homestead (حیاط لاراول)

ابزار Homestead به عنوان یکی از قوی‌ترین ابزارهای لاراول شناخته می‌شود که محیطی مجازی را در دل Vagrant در اختیار شما قرار می‌دهد. این محیط دقیقا مشابه سرورهای وی پی اس VPS (مخفف عبارت Virtual Private Server) است که بسیاری از سایت‌هایی که با لاراول نوشته شده‌اند بر روی این سرورها قرار دارند.

۲) نصب Homestead

اگر تازه‌کار هستید به شما تضمین می‌دهیم اگر با یکی از مجازی‌سازها یا شبیه‌سازهای فوق ( مثلا ترکیب VMWare و Vagrant و Homestead) لاراول را بیاموزید تجربه‌ی توسعه‌ و برنامه‌نویسی بسیار دلچسبی (بدون درنظر گرفتن اینکه چه امکاناتی روی سیستم‌عامل شما نصب است) بدست می‌آورید. فقط کافیست به امکاناتی که با نصب Homestead در اختیار شما قرار می‌دهد نگاهی بیاندازید:

  • Ubuntu 16.04
  • Git
  • PHP 7.1
  • Nginx
  • MySQL
  • MariaDB
  • Sqlite3
  • Postgres
  • Composer
  • Node به همراه Yarn, Bower, Grunt و Gulp
  • Redis
  • Memcached
  • Beanstalkd
  • Mailhog
  • ngrok

۱-۲) نصب پیش‌نیازهای Homestead

برای شروع کار باید یکی از مجازی‌سازهای موجود در اینترنت VMWare یا VirtualBox را دانلود کنید. ما به شما VirtualBox را پیشنهاد می‌کنیم. زیا کاملا رایگان بوده و نیازی به پرداخت هزینه ندارید. آخرین ورژن این نرم‌افزار را در از طریق این لینک دریافت کنید. بنابراین آن را دانلود کرده و نصب کنید.

در مرحله‌ی بعدی پلاگین Vagrant را از این لینک دریافت کنید.

توجه: پس از نصب نرم‌افزار‌های فوق حتما کامپیوتر خود را Restart کنید.

پس از نصب Vagrant باید دستور زیر را در CMD ویندوز وارد کرده تا box پلاگین Vagrant فعال شود:

vagrant box add laravel/homestead

هنگامیکه این دستور را وارد می‌:نید و دکمه‌ی Enter را فشار می‌دهید، متن پیام زیر که شامل لیستی از نرم‌افزارهای متناسب با Vagrant است، به نمایش گذاشته می‌شود:

box: Loading metadata for box 'laravel/homestead'
    box: URL: https://atlas.hashicorp.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop

Enter your choice:

از آنجا که ما از Virtualbox استفاده کرده‌ایم لذا گزینه‌ی ۳ را انتخاب کرده و دکمه‌ی Enter را فشار می‌دهیم. با انجام این عملیات، فرآیند دانلود و نصب این Box فراهم می‌شود. در واقع Box ها مشابه Template ها هستند. برای اینکه یک پروژه ایجاد کنید باید آن را در Box‌ مربوط به خود قرار دهید. این فرآیند بسته به سرعت اینترنت شما می‌تواند زمان‌گیر باشد. کمی صبور باشید 🙂

box: Adding box 'laravel/homestead' (v2.0.0) for provider: virtualbox
    box: Downloading: https://atlas.hashicorp.com/laravel/boxes/homestead/versions/2.0.0/providers/virtualbox.box
    box: Progress: 0% (Rate: 608k/s, Estimated time remaining: 0:40:36))

پس از اتمام این عملیات  تمام فایل‌های مربوط به Homestead دانلود شدند (حجمی معادل حدود ۱ گیگ) که می‌توانید این فایل‌ها را در مسیر زیر مشاهده کنید:

C:\Users\YourComputerName\.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead\2.0.0

۲-۲) نصب Homestead

و اما مرحله‌ی نهایی، نصب محیط واقعی Homestead است. درنظر داشته باشید که شما می‌توانید چندین Homestead مختلف نصب کنید. اما به شما پیشنهاد می‌شود که برای تمام پروژهای خود تنها یک Homestead نصب کنید. بنابراین اولین قدم برای نصب Homestead وارد کردن دستور زیر در CMD ویندوز می‌باشد:

cd ~  // از این دستور برای تغییر فولدر استفاده می‌شود

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

درصورتی که دستور را به درستی وارد کرده باشید با پیام زیر مواجه خواهید شد:

git clone https://github.com/laravel/homestead.git Homestead
Cloning into 'Homestead'...
remote: Counting objects: 2049, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 2049 (delta 2), reused 0 (delta 0), pack-reused 2041
Receiving objects: 100% (2049/2049), 356.14 KiB | 174.00 KiB/s, done.
Resolving deltas: 100% (1185/1185), done.
Checking connectivity... done.

و در نهایت فولدری در مسیر اولیه‌ای که مشخص کرده‌اید ظاهر خواهد شد:

C:\Users\YourComputerName\Homestead
توجه: مسیر فوق ممکن است در سیستم شما متفاوت باشد بنابراین همواره مسیر فولدر Homestead را برای ادامه‌ی فرآیند، پیدا کنید.

برای ادامه‌ی فرآیند ابتدا باید به وارد پوشه شوید که این کار را با دستور زیر انجام می‌دهیم:

 cd C:\Users\YourComputerNae\Homestead

در هر فولدر Homestead باید همواره اسکریپت شما یک سری مقادیر اولیه را تنظیم کند. بنابراین توسط دستور زیر اینکار را انجام می‌دهیم. بنابراین در دستور زیر به فایل init.sh‌ دسترسی پیدا خواهیم کرد:

bash ~/Homestead/init.sh
راهنمایی لینوکس: عبارت bash در واقع Shell لینوکس (مشابه CMD در ویندوز) را فعال می‌کند. در واقع Bash‌ یک Command Line‌ لینوکسی است که دستورهای چاپ شده را ترجمه و اجرا می‌کند.

در نهایت با اجرای دستور فوق فایل تنظیمات اولیه Homestead تحت عنوان Homestead.yaml در دایرکتوری (فولدر) Homestead. /~ قرار می‌گیرد و پیام زیر را دریافت می‌کنید:

Homestead initialized!

تنظیمات Homestead

فایل Homestead.yaml را با استفاده از یک ادیتور متن (مثلا ++Notepad) باز کنید و تنظیمات را انجام دهید.

در خطوط اول تا سوم ip و میزان memory و cpus ماشین مجازی را مشاهده می‌کنید که بهتر است مقدار cpus را به عدد ۲ ارتقاء دهید.

ابتدا باید ماشین مجازی خود را مشخص کنید. این ماشین‌های مجازی با نام‌های virtualbox, vmware_fusion, vmware_workstation, or parallels قابل دسترس هستند که در این پروژه ماشین مجازی ما virtualbox است. بنابراین برای provider داریم:

provider: virtualbox

برای تنظیم کردن مسیر کلید‌های عمومی و خصوصی SSH خود باید مقدار authorize را ویرایش کنید:

authorize: ~/.ssh/id_rsa.pub
راهنمایی: کلید‌های عمومی و خصوصی SSH‌ که به SSH Key معروف هستند برای خصوصی‌سازی پروژه در بستر کامپیوتر مورد استفاده قرار می‌گیرند یعنی اگر شما این کلید‌ها را تنظیم کنید، پروژه‌ها تنها و تنها در کامپیوتر شما (برای کامپیوترها از SSH Private Key استفاده می‌شود)  و یک سرور (برای سرورها از SSH Public Key استفاده می‌شود) مشخص قابل دسترسی هستند.

در صورتیکه بخواهید کلید SSH خود را مجددا بسازید کافی‌ست دستور زیر را در فولدر Homestead اجرا کنید (حتما این کار را انجام دهید):

ssh-keygen -t rsa -C "info@roxo.ir"

با وارد کردن این دستور از شما سوال پرسیده می‌شود که آیا می‌خواهید کلید خصوصی و عمومی ساخته شده جایگزین کلید‌های قبلی شود. برای تایید مرحله دکمه‌ی Enter را فشار دهید و پس از ۳ بار فشردن دکمه‌ی Enter با متن زیر روبه رو خواهید شد:

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/YourComputerName/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/YourComputerName/.ssh/id_rsa.
Your public key has been saved in /c/Users/YourComputerName/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Sz6ROasqGrDAtI5Rh9hcxfq9R8y4iIJvbW+TGZc YourComputerName@YourComputerName
The key's randomart image is:
+---[RSA 2048]----+
|   +oooo. .      |
|  .++o  .o       |
|  . + ... o      |
|   + ..+ =       |
|  . . ..S.o=     |
|       ooOE +    |
|   . . .O* +     |
|  . o + *=o .    |
|   o.o o....     |
+----[SHA256]-----+

حال باید مسیر فولدر هر وب سایت و یا وب اپلیکیشن را مشخص کنیم برای اینکار ابتدا فولدر موردنظر را در مسیری که می‌خواهیم ایجاد کرده و آن را به متغییر map: ارسال می‌کنیم، در این مثال ما فولدر Projects را داخل مسیر C:/User/YourComputerName ایجاد کرده‌ایم بنابراین دستورهای زیر را اجرا می‌کنیم:

folders:
    - map: C:/Users/YourComputerName/Projects
      to: /home/vagrant/YourComputerName

و در نهایت برای تعیین کردن آدرس سایت در مرورگر خود (یعنی وب سایت شما با آدرس مثلا http://laravel.dev اجرا شود) عبارت زیر را در متغییر site ویرایش می‌کنیم:

sites:
    - map: laravel.dev
      to: /home/vagrant/Projects/laravel/public

حال نوبت به تعیین نام databases می‌رسد که مقدار آن را مشابه خط زیر قرار می‌دهیم:

databases:
  - homestead

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

---
ip:  "192.168.10.10"
memory:  2048
cpus:  2
provider:  virtualbox

authorize:  ~/.ssh/id_rsa.pub

keys:
  - ~/.ssh/id_rsa

folders:
  - map: C:/Users/YourComputerName/Projects
    to: /home/vagrant/Projects

sites:
  - map: laravel.dev
    to: /home/vagrant/Projects/laravel/public  

databases:
  - laravel

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

تا به اینجای کار تمام تنظیمات را به درستی انجام داده‌اید و کار شما به اتمام رسیده است. حال باید به مسیر زیر رفته و فایل hosts را با یک ادیتور متن (مثلا ++Notepad) باز کنید و ip‌ ای که در فایل Homestead.yaml بود را داخل این فایل قرار دهید تا لوکال هاست شما مجددا شناسایی شود.

C:\Windows\System32\drivers\etc\hosts

بنابراین محتویات درون فایل hosts باید به صورت زیر باشد:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

192.168.10.10 laravel.dev

حال باید در CMD‌ ویندوز و در پوشه Homestead دستور زیر را تایپ کنید تا فرآیند نصب Homestead با تنظیمات مشخص شده آغاز شود:

vagrant up
توجه: در صورتیکه پس از اجرای دستور vagrant up با خطاهایی از قبلی found tab character و یا No directory found و … مواجه شدید باید در جریان باشید که قطعا یا مسیر دهی درست انجام نداده‌اید یا به جای space از دکمه‌ی tab برای فاصله دادن استفاده کرده اید. بنابراین برای کاهش خطا کد نهایی را عینا از همین صفحه کپی کرده و آن را ویرایش کنید.

اگر تمام مراحل فوق را به درستی انجام داده باشید با وارد کردن آدرس http://laravel.dev همواره با صفحه‌ی No input file specified مواجه خواهید شد. این بدین معنی‌ست که مجازی سازی شما به درستی صورت پذیرفته است و تنها باید در سرور مجازی خود نصب لاراول را انجام دهید.

پس از مشاهده پیغام فوق و تایید صحت نصب Vagrant و Homestead حال نوبت به نصب لاراول می‌رسد. برای نصب لاراول دو راه وجود دارد:

  1. نصب لاراول با VirtualBox
  2. نصب لاراول با vagrant ssh (پیشنهاد ما)

در هر صورت شما با خط فرمان Vagrant کار می‌کنید و باید به دستورات این خط فرمان آشنایی مقدماتی داشته باشید. در ادامه به توضیح برخی از فرمان‌های Vagrant می‌پردازیم:

  • vagrant up: اجرا کردن Homestead
  • vagrant suspent:‌ همانند Hibernating (خاموشی موقت) در ویندوز
  • vagrant halt:‌ همانند Shut Down کردن در ویندوز
  • vagrant destory: همانند Format کردن در ویندوز (فرمت کردن یک درایو یا فولدر)
  • vargant provision:‌ همانند Restart کردن در ویندوز

۱-۳) نصب لاراول با VirtualBox

بسیار عالی حال برای اتصال به Shell باید نرم افزار VirtualBox را باز کرده و از منوی سمت چپ homestead7 را انتخاب و با راست کلیک کردن روی آن گزینه Run را بفشارید. بدین ترتیب صفحه ای مشکی برای شما نمایان خواهد شد که از شما اطلاعات یوزر نیم و پسورد را درخواست می‌کند تا به سرور مجازی لینوکسی خود دسترسی پیدا کنید. اطلاعات ورودی به صورت زیر خواهد بود:

Username: vagrant
Password: vagrant

کاربران عزیزی که تا کنون با سیستم عامل لینوکس کار نکرده‌اند باید در جریان باشند که هنگام ورود پسورد اطلاعاتی برای شما نمایش داده نخواهد شد. جهت روشن تر شدن این مطلب به تصویر زیر توجه کنید که در آن اطلاعات را وارد کرده و وارد محیط Shell لینوکس شدیم:

نصب لاراول در VirtualBox

تمام مراحل بالا را طی کردیم تا به این نقطه از اجرای برنامه برسیم. برای نصب دو راه وجود دارد که هر دو از خط فرمان انجام می‌شوند. راه اول استفاده از خود نرم افزار کامپوزر (Composer) و راه دوم استفاده از ویژگی create-project در کامپوزر است.

حال در صفحه‌ی Shell لینوکس که در اختیار شما هست می‌توانید با دستور زیر ابزارهایی جهت راه‌اندازی لاراول با استفاده از Composer نصب کنید:

composer global require "laravel/installer=~1.1"

سپس با وارد کردن عبارت زیر و تعریف نام پروژه خود بجای کلمه‌ی ProjectName اپلیکیشن شما نصب می‌شود:

laravel new projectName

پس از طی کردن فرآیند نصب با عبارت Application Ready, Build something amazing روبه خواهید شد.

۲-۳) نصب لاراول با Vagrant SSH

در این شیوه‌ی نصب شما پس از اتمام فرآیند vagrant up باید دستور vagrant ssh را وارد کرده و به اصلاح وارد محیط Shell لینوکس مجازی خود شوید.

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

ssh` executable not found in any directories in the %PATH% variable. Is an SSH client installed? Try installing Cygwin, MinGW or Git, all of witch contain an SSH client. Or use your favorite SSH client with the following authentication information shown below:

Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: C:/path/to/project/.vagrant/machines/default/virtualbox/private_key

سپس مسیر فایل Projects را که قبلا ساخته بودیم با استفاده از دستور cd مشخص می‌کنیم. بنابراین داریم:

cd Projects/

حال در این پوشه عبارت زیر را تایپ می‌کنیم:

composer create-project --prefer-dist laravel/laravel laravel

طی این فرآیند نرم افزار لاراول برای شما به صورت کامل دانلود می‌شود و پس از وارد کردن آدرس laravel.dev صفحه‌ی خوش آمد گویی Laravel 5 را مشاهده خواهید کرد.

۳-۳) نصب پایگاه داده

حال جهت نصب پایگاه داده به مسیر زیر برید

C:\Users\YourComputerName\Projects\YourAppName\env.

سپس مقادیر موجود در فایل env. را به صورت زیر ویرایش کنید:

APP_ENV=local
APP_KEY=base64:5QCBqdbZJcLb08ybxyQzq2HRM/ebUkeTxCSlxAXWxz8= // این مقدار برای هر سیستم متفاوت است
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://iot.dev

DB_CONNECTION=mysql
DB_HOST=192.168.10.10
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=192.168.10.10
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

حال برای تست کردن دیتابیس نرم افزار MySQL WorkBench یا Navicat Premium را دانلود کنید. سپس نرم‌افزار را باز کرده و یک Connection جدید ایجاد کرده و در نهایت فیلدهای زیر را در آنها وارد کنید:

برای نرم افزار
MySQL WorkBench:

Connection Method
      Standard TCP/IP over SSH

Connection parameters
      SSH Hostname: 10.0.0.100:22
      SSH Username: vagrant
      SSH Password: vagrant

      MySQL Hostname: 10.0.2.15
      MySQL Server Port: 3306
      Username: homestead
      Password: secret

====================================
برای نرم افزار
Navicat Premium:

Connection Name: YourFavoriteName
Host Name/IP Address: 192.168.10.10
Port: 3306
User Name: homestead
Password: secret

سپس روی Test Connection کلیک کنید. در صورتیکه جواب OK بود یعنی ارتباط شما برقرار است.

بسیار عالی در این مرحله با آموزش نصب لاراول در محیط HomeStead آشنا شدید و به قابلیتها و توانایی‌های لاراول در ایجاد محیطی امن و بی دردسر برای کدنویسی پی بردید. در جلسه‌ی بعدی راه حل دوم یعنی نصب لاراول با استفاده از PHPStrom و Xampp در محیط ویندوز را آموزش خواهیم داد. با ما همراه باشید.

منتشر شده در برنامه نویسیLaravel (لاراول)