در جلسهی گذشته به توضیح مفصل فریمورک قدرتمند لاراول پرداختیم و شما را در انتخاب این فریمورک راهنمایی نمودیم. حال که انتخاب و تصمیم شما Laravel است، ورودتان را صمیمانه به این سری از دورههای آموزشی تبریک عرض میکنیم. هدف از ایجاد این فصل آموزش فارسی نصب فریمورک لاراول نسخهی ۵ به بالا است. بهترین راه برای توسعه لاراول، مطمئن بودن از شرایط سرور است. این سرور میتواند داخلی (Local) یا خارجی (Remote Server) باشد. بنابراین لاراول ابزاری را برای فراهم کردن این موضوع در اختیار شما قرار داده است.
تمام امکاناتی که برای نصب لاراول مورد نیاز است در سیستم عامل ویندوز وجود دارد و با نصب Wamp یا Xampp دسترسی به یک سرور داخلی امکان پذیر خواهد بود. اما تمام افراد و برنامهنویسان با ویندوز کار نمیکنند. بنابراین تمرکز این آموزش ارائه کدها و دستورها بر اساس ساختار سیستم عامل لینوکس و مکینتاش است. البته لازم به ذکر است که این دستورها و کدها در سیستمعامل ویندوز قابل اجرا هستند.
حداقل امکاناتی که برای نصب لاراول مورد نیاز است:
جهت توسعه نرمافزار خود حتما و حتما به یک Composer عمومی (گلوبال) نیاز دارید. و اما کامپوزر چیست؟
کامپوزر ابزاری ست برای مدیریت بسته های نصبی که به زبان PHP نوشته شده اند. کامپوزرها در PHP مانند npm در Node یا Ruby Gem در زبان Ruby است. در واقع با کامپوزرها می توان بسته هایی مثل لاراول، Laravel Collective, Laravel Helper و... را در فایل پروژه خود نصب و مدیریت کرد. گاها برای تعریف کامپوزر از عبارت Dependency Manager (مدیریت وابستگی ها) استفاده می شود که به معنای مدیریت تمام کتابخانه ها و وابستگی های موجود در پروژه است. لازم به ذکر است یک مدیریت بسته ی دیگر تحت عنوان PEAR (مخفف عبارت PHP Extension and Application Repository) وجود دارد ولی بنا به دلایلی توسعه دهندگان دیگر از آن استفاده نمی کنند و مهم ترین ایراد آن بروز نبودن بسیاری از بسته هاست.
اگر با ابزار Vagrant آشنا نیستید باید خدمت شما عرض کنم که این ابزار به عنوان یکی از بهترین ماشینهای مجازیساز شناخته میشود و محیطی مجازی را به همراه نصب لاراول و تمام تنظیمات در اختیار شما قرار میدهد. وگرانت در دل نرمافزارهای شبیهسازی چون VMWare و VirtualBox بکار گرفته میشود. لازم به ذکر است که نرمافزارهای VMWare و VirtualBox قابلیت نصب سیستمعاملهایی چون لینوکس، ویندوز و مکینتاش را به صورت مجازی برای شما فراهم میکنند. به عبارت دیگر Vagrant ابزاری در اختیار شما قرار میدهد تا ماشین مجازی خود را بدون نصب هیچگونه ابزاری در سیستم عامل خود راهاندازی کنید، از مزایای استفاده از این ابزار میتوان به شبیهسازی محیط واقعی سرورها در بستر اینترنت، اشاره نمود. اصلا نگران نباشید زیرا Vagrant مانند یک ظرف یکبار مصرف است که هیچ آسیبی به سیستمعامل فعلی شما وارد نمیکند.
ابزار Homestead به عنوان یکی از قویترین ابزارهای لاراول شناخته میشود که محیطی مجازی را در دل Vagrant در اختیار شما قرار میدهد. این محیط دقیقا مشابه سرورهای وی پی اس VPS (مخفف عبارت Virtual Private Server) است که بسیاری از سایتهایی که با لاراول نوشته شدهاند بر روی این سرورها قرار دارند.
اگر تازهکار هستید به شما تضمین میدهیم اگر با یکی از مجازیسازها یا شبیهسازهای فوق ( مثلا ترکیب VMWare و Vagrant و Homestead) لاراول را بیاموزید تجربهی توسعه و برنامهنویسی بسیار دلچسبی (بدون درنظر گرفتن اینکه چه امکاناتی روی سیستمعامل شما نصب است) بدست میآورید. فقط کافیست به امکاناتی که با نصب 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 وارد کردن دستور زیر در 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.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 حال نوبت به نصب لاراول میرسد. برای نصب لاراول دو راه وجود دارد:
در هر صورت شما با خط فرمان Vagrant کار میکنید و باید به دستورات این خط فرمان آشنایی مقدماتی داشته باشید. در ادامه به توضیح برخی از فرمانهای Vagrant میپردازیم:
بسیار عالی حال برای اتصال به Shell باید نرم افزار VirtualBox را باز کرده و از منوی سمت چپ homestead7 را انتخاب و با راست کلیک کردن روی آن گزینه Run را بفشارید. بدین ترتیب صفحه ای مشکی برای شما نمایان خواهد شد که از شما اطلاعات یوزر نیم و پسورد را درخواست میکند تا به سرور مجازی لینوکسی خود دسترسی پیدا کنید. اطلاعات ورودی به صورت زیر خواهد بود:
Username: vagrant Password: vagrant
کاربران عزیزی که تا کنون با سیستم عامل لینوکس کار نکردهاند باید در جریان باشند که هنگام ورود پسورد اطلاعاتی برای شما نمایش داده نخواهد شد. جهت روشن تر شدن این مطلب به تصویر زیر توجه کنید که در آن اطلاعات را وارد کرده و وارد محیط Shell لینوکس شدیم:
تمام مراحل بالا را طی کردیم تا به این نقطه از اجرای برنامه برسیم. برای نصب دو راه وجود دارد که هر دو از خط فرمان انجام میشوند. راه اول استفاده از خود نرم افزار کامپوزر (Composer) و راه دوم استفاده از ویژگی create-project در کامپوزر است.
حال در صفحهی Shell لینوکس که در اختیار شما هست میتوانید با دستور زیر ابزارهایی جهت راهاندازی لاراول با استفاده از Composer نصب کنید:
composer global require "laravel/installer=~1.1"
سپس با وارد کردن عبارت زیر و تعریف نام پروژه خود بجای کلمهی ProjectName اپلیکیشن شما نصب میشود:
laravel new projectName
پس از طی کردن فرآیند نصب با عبارت Application Ready, Build something amazing روبه خواهید شد.
در این شیوهی نصب شما پس از اتمام فرآیند 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 در محیط ویندوز را آموزش خواهیم داد. با ما همراه باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.