۱) ملزومات سیستم
تمام امکاناتی که برای نصب لاراول مورد نیاز است در سیستم عامل ویندوز وجود دارد و با نصب 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 است، به نمایش گذاشته میشود:
1
2
3
4
5
6
7
8
9
10
11
12
|
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 در واقع Shell لینوکس (مشابه CMD در ویندوز) را فعال میکند. در واقع Bash یک Command Line لینوکسی است که دستورهای چاپ شده را ترجمه و اجرا میکند.
در نهایت با اجرای دستور فوق فایل تنظیمات اولیه Homestead تحت عنوان Homestead.yaml در دایرکتوری (فولدر) Homestead. /~ قرار میگیرد و پیام زیر را دریافت میکنید:
تنظیمات Homestead
فایل Homestead.yaml را با استفاده از یک ادیتور متن (مثلا ++Notepad) باز کنید و تنظیمات را انجام دهید.
در خطوط اول تا سوم ip و میزان memory و cpus ماشین مجازی را مشاهده میکنید که بهتر است مقدار cpus را به عدد ۲ ارتقاء دهید.
ابتدا باید ماشین مجازی خود را مشخص کنید. این ماشینهای مجازی با نامهای virtualbox, vmware_fusion, vmware_workstation, or parallels قابل دسترس هستند که در این پروژه ماشین مجازی ما virtualbox است. بنابراین برای provider داریم:
برای تنظیم کردن مسیر کلیدهای عمومی و خصوصی 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 با متن زیر روبه رو خواهید شد:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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 میرسد که مقدار آن را مشابه خط زیر قرار میدهیم:
بنابراین فایل Homestead.yaml به صورت زیر خواهد بود:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
---
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 باید به صورت زیر باشد:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# 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 با خطاهایی از قبلی found tab character و یا No directory found و … مواجه شدید باید در جریان باشید که قطعا یا مسیر دهی درست انجام ندادهاید یا به جای space از دکمهی tab برای فاصله دادن استفاده کرده اید. بنابراین برای کاهش خطا کد نهایی را عینا از همین صفحه کپی کرده و آن را ویرایش کنید.
اگر تمام مراحل فوق را به درستی انجام داده باشید با وارد کردن آدرس http://laravel.dev همواره با صفحهی No input file specified مواجه خواهید شد. این بدین معنیست که مجازی سازی شما به درستی صورت پذیرفته است و تنها باید در سرور مجازی خود نصب لاراول را انجام دهید.
پس از مشاهده پیغام فوق و تایید صحت نصب Vagrant و Homestead حال نوبت به نصب لاراول میرسد. برای نصب لاراول دو راه وجود دارد:
- نصب لاراول با VirtualBox
- نصب لاراول با 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 لینوکس شدیم:
تمام مراحل بالا را طی کردیم تا به این نقطه از اجرای برنامه برسیم. برای نصب دو راه وجود دارد که هر دو از خط فرمان انجام میشوند. راه اول استفاده از خود نرم افزار کامپوزر (Composer) و راه دوم استفاده از ویژگی create-project در کامپوزر است.
حال در صفحهی Shell لینوکس که در اختیار شما هست میتوانید با دستور زیر ابزارهایی جهت راهاندازی لاراول با استفاده از Composer نصب کنید:
|
composer global require "laravel/installer=~1.1"
|
سپس با وارد کردن عبارت زیر و تعریف نام پروژه خود بجای کلمهی 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 مشخص میکنیم. بنابراین داریم:
حال در این پوشه عبارت زیر را تایپ میکنیم:
|
composer create-project --prefer-dist laravel/laravel laravel
|
طی این فرآیند نرم افزار لاراول برای شما به صورت کامل دانلود میشود و پس از وارد کردن آدرس laravel.dev صفحهی خوش آمد گویی Laravel 5 را مشاهده خواهید کرد.
۳-۳) نصب پایگاه داده
حال جهت نصب پایگاه داده به مسیر زیر برید
|
C:\Users\YourComputerName\Projects\YourAppName\env.
|
سپس مقادیر موجود در فایل env. را به صورت زیر ویرایش کنید:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
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 جدید ایجاد کرده و در نهایت فیلدهای زیر را در آنها وارد کنید:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
برای نرم افزار
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 بود یعنی ارتباط شما برقرار است.