نسخه:

خانه لاراول

معرفی

لاراول تلاش می کند تا کل تجربه توسعه PHP را لذت بخش کند، از جمله محیط توسعه محلی شما. Vagrant یک راه ساده و زیبا برای مدیریت و ارائه ماشین های مجازی ارائه می دهد.

Laravel Homestead یک جعبه رسمی و از پیش بسته بندی شده Vagrant است که بدون نیاز به نصب PHP، وب سرور و هر نرم افزار سرور دیگری بر روی دستگاه محلی خود یک محیط توسعه فوق العاده را برای شما فراهم می کند. دیگر نگران خراب کردن سیستم عامل خود نباشید! جعبه های ولگرد کاملا یکبار مصرف هستند. اگر مشکلی پیش آمد، می توانید ظرف چند دقیقه جعبه را از بین ببرید و دوباره ایجاد کنید!

Homestead روی هر سیستم ویندوز، مک یا لینوکس اجرا می‌شود و شامل Nginx، PHP، MySQL، PostgreSQL، Redis، Memcached، Node و همه چیزهایی است که برای توسعه برنامه‌های لاراول به آن نیاز دارید.

اگر از ویندوز استفاده می کنید، ممکن است لازم باشد مجازی سازی سخت افزار (VT-x) را فعال کنید. معمولاً می توان آن را از طریق بایوس فعال کرد. اگر از Hyper-V در یک سیستم UEFI استفاده می کنید، ممکن است برای دسترسی به VT-x لازم باشد Hyper-V را غیرفعال کنید.

نرم افزار گنجانده شده است

  • اوبونتو 18.04
  • Git
  • PHP 7.4
  • PHP 7.3
  • PHP 7.2
  • PHP 7.1
  • PHP 7.0
  • PHP 5.6
  • Nginx
  • MySQL
  • lmm برای عکس های فوری پایگاه داده MySQL یا MariaDB
  • Sqlite3
  • PostgreSQL
  • composer
  • گره (با نخ، بوور، گرونت و گلپ)
  • ردیس
  • Memcached
  • Beanstalkd
  • میل هاگ
  • آواهی
  • ngrok
  • Xdebug
  • XHProf / Tideways / XHGui
  • wp-cli

نرم افزار اختیاری

  • آپاچی
  • بلک فایر
  • کاساندرا
  • کرنوگراف
  • CouchDB
  • چارچوب کریستال و لاکی
  • داکر
  • Elasticsearch
  • چرخ دنده
  • برو
  • گرافانا
  • InfluxDB
  • MariaDB
  • MinIO
  • MongoDB
  • MySQL 8
  • Neo4j
  • اوه من زش
  • Resty را باز کنید
  • PM2
  • پایتون
  • RabbitMQ
  • سولر
  • Webdriver & Laravel Dusk Utilities

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

مراحل اول

قبل از راه اندازی محیط Homestead خود، باید VirtualBox 6.x ، VMWare ، Parallels یا Hyper-V و همچنین Vagrant را نصب کنید . همه این بسته‌های نرم‌افزاری، نصب‌کننده‌های بصری با کاربری آسان را برای همه سیستم‌عامل‌های محبوب فراهم می‌کنند.

برای استفاده از ارائه دهنده VMware، باید هم VMware Fusion / Workstation و هم پلاگین VMware Vagrant را خریداری کنید . اگرچه رایگان نیست، اما VMware می‌تواند عملکرد پوشه اشتراک‌گذاری شده سریع‌تری را در خارج از جعبه ارائه دهد.

برای استفاده از ارائه دهنده Parallels، باید افزونه Parallels Vagrant را نصب کنید . آن رایگان است.

به دلیل محدودیت‌های Vagrant ، ارائه‌دهنده Hyper-V همه تنظیمات شبکه را نادیده می‌گیرد.

نصب The Homestead Vagrant Box

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

vagrant box add laravel/homestead

اگر این دستور ناموفق بود، مطمئن شوید که نصب Vagrant شما به روز است.

Homestead به صورت دوره‌ای جعبه‌های "آلفا"/"بتا" را برای آزمایش منتشر می‌کند، که ممکن است با vagrant box add دستور تداخل داشته باشد. اگر در اجرا مشکل دارید vagrant box add ، می‌توانید vagrant up دستور را اجرا کنید و زمانی که Vagrant تلاش می‌کند ماشین مجازی را راه‌اندازی کند، کادر صحیح دانلود می‌شود.

نصب Homestead

می‌توانید Homestead را با شبیه‌سازی مخزن بر روی دستگاه میزبان خود نصب کنید. شبیه سازی مخزن را در یک Homestead پوشه در پوشه "home" خود در نظر بگیرید، زیرا کادر Homestead به عنوان میزبان همه پروژه های لاراول شما عمل می کند:

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

شما باید نسخه برچسب‌گذاری شده Homestead را بررسی کنید زیرا master ممکن است شعبه همیشه پایدار نباشد. می توانید آخرین نسخه پایدار را در صفحه انتشار GitHub پیدا کنید . از طرف دیگر، می توانید release شعبه ای را که همیشه حاوی آخرین نسخه پایدار است، بررسی کنید:

cd ~/Homestead
 
git checkout release

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

// Mac / Linux...
bash init.sh
 
// Windows...
init.bat

پیکربندی Homestead

تنظیم ارائه دهنده شما

کلید provider موجود در فایل شما Homestead.yaml نشان می دهد که از کدام ارائه دهنده Vagrant باید استفاده شود : virtualbox , vmware_fusion , یا . می توانید این را به ارائه دهنده ای که ترجیح می دهید تنظیم کنید: vmware_workstation parallels hyperv

provider: virtualbox

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

ویژگی folders فایل Homestead.yaml تمام پوشه هایی را که می خواهید با محیط Homestead خود به اشتراک بگذارید را فهرست می کند. همانطور که فایل‌های درون این پوشه‌ها تغییر می‌کنند، بین ماشین محلی شما و محیط Homestead همگام می‌شوند. می توانید هر تعداد پوشه به اشتراک گذاشته شده را در صورت لزوم پیکربندی کنید:

folders:
- map: ~/code/project1
to: /home/vagrant/project1

کاربران ویندوز نباید از ~/ syntax مسیر استفاده کنند و در عوض باید از مسیر کامل پروژه خود استفاده کنند، مانند C:\Users\user\Code\project1 .

شما همیشه باید به جای نگاشت کل پوشه خود، پروژه های فردی را به نقشه پوشه خود نگاشت کنید ~/code . وقتی یک پوشه را نگاشت می‌کنید، ماشین مجازی باید تمام IO دیسک را برای هر فایل موجود در پوشه پیگیری کند. اگر تعداد زیادی فایل در یک پوشه داشته باشید، این منجر به مشکلات عملکرد می شود.

folders:
- map: ~/code/project1
to: /home/vagrant/project1
 
- map: ~/code/project2
to: /home/vagrant/project2

هنگام استفاده از Homestead هرگز نباید . (دایرکتوری فعلی) را سوار کنید. این باعث می‌شود Vagrant پوشه فعلی را به آن نگاشت نکند /vagrant و ویژگی‌های اختیاری را شکسته و نتایج غیرمنتظره‌ای را در حین تهیه ایجاد کند.

برای فعال کردن NFS ، فقط باید یک پرچم ساده به پیکربندی پوشه همگام‌سازی شده خود اضافه کنید:

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

هنگام استفاده از NFS در ویندوز، باید افزونه vagrant-winnfsd را نصب کنید. این افزونه مجوزهای صحیح کاربر/گروه را برای فایل‌ها و دایرکتوری‌ها در کادر Homestead حفظ می‌کند.

همچنین می‌توانید هر گزینه‌ای را که توسط Vagrant's Synced Folders پشتیبانی می‌شود ، با فهرست کردن آنها در زیر options کلید ارسال کنید:

folders:
- map: ~/code/project1
to: /home/vagrant/project1
type: "rsync"
options:
rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
rsync__exclude: ["node_modules"]

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

با Nginx آشنایی ندارید؟ مشکلی نیست این sites ویژگی به شما امکان می دهد به راحتی یک "دامنه" را به یک پوشه در محیط Homestead خود نگاشت کنید. نمونه پیکربندی سایت در Homestead.yaml فایل موجود است. مجدداً، می توانید هر تعداد سایت که لازم باشد به محیط Homestead خود اضافه کنید. Homestead می تواند به عنوان یک محیط راحت و مجازی برای هر پروژه لاراول که روی آن کار می کنید عمل کند:

sites:
- map: homestead.test
to: /home/vagrant/project1/public

اگر sites پس از تهیه کادر Homestead، ویژگی را تغییر دهید، باید دوباره اجرا کنید vagrant reload --provision تا پیکربندی Nginx در ماشین مجازی به‌روزرسانی شود.

اسکریپت های Homestead به گونه ای ساخته شده اند که تا حد امکان ضعیف باشند. با این حال، اگر هنگام تهیه با مشکلاتی مواجه شدید، باید دستگاه را از طریق vagrant destroy && vagrant up .

وضوح نام میزبان

Homestead نام هاست را mDNS برای تفکیک خودکار میزبان منتشر می کند. اگر hostname: homestead در فایل خود تنظیم کنید Homestead.yaml ، میزبان در دسترس خواهد بود homestead.local . توزیع‌های دسکتاپ MacOS، iOS و Linux mDNS به طور پیش‌فرض شامل پشتیبانی می‌شوند. ویندوز نیاز به نصب Bonjour Print Services برای ویندوز دارد .

استفاده از نام‌های میزبان خودکار برای نصب‌های «در هر پروژه» Homestead بهترین کار را دارد. اگر چندین سایت را در یک نمونه Homestead میزبانی می‌کنید، می‌توانید «دامنه‌ها» را برای وب‌سایت‌های خود به hosts فایل روی دستگاه خود اضافه کنید. این hosts فایل درخواست های سایت های Homestead شما را به دستگاه Homestead شما هدایت می کند. در مک و لینوکس، این فایل در آدرس قرار دارد /etc/hosts . در ویندوز، در C:\Windows\System32\drivers\etc\hosts . خطوطی که به این فایل اضافه می کنید به شکل زیر خواهد بود:

192.168.10.10 homestead.test

مطمئن شوید که آدرس IP فهرست شده همان آدرسی است که در Homestead.yaml فایل شما تنظیم شده است. هنگامی که دامنه را به فایل خود اضافه کردید hosts و جعبه Vagrant را راه اندازی کردید، می توانید از طریق مرورگر وب خود به سایت دسترسی پیدا کنید:

http://homestead.test

راه اندازی جعبه ولگرد

Homestead.yaml هنگامی که آن را مطابق میل خود ویرایش کردید ، vagrant up دستور را از دایرکتوری Homestead خود اجرا کنید. Vagrant ماشین مجازی را بوت می کند و به طور خودکار پوشه های مشترک و سایت های Nginx شما را پیکربندی می کند.

برای از بین بردن ماشین، می توانید از vagrant destroy --force دستور استفاده کنید.

در هر نصب پروژه

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

برای نصب مستقیم Homestead در پروژه خود، آن را با استفاده از Composer نیاز دارید:

composer require laravel/homestead --dev

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

مک / لینوکس:

php vendor/bin/homestead make

پنجره ها:

vendor\\bin\\homestead make

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

نصب ویژگی های اختیاری

نرم افزار اختیاری با استفاده از تنظیمات "ویژگی ها" در فایل پیکربندی Homestead شما نصب می شود. اکثر ویژگی‌ها را می‌توان با مقدار بولی فعال یا غیرفعال کرد، در حالی که برخی از ویژگی‌ها گزینه‌های پیکربندی متعددی را امکان‌پذیر می‌کنند:

features:
- blackfire:
server_id: "server_id"
server_token: "server_value"
client_id: "client_id"
client_token: "client_value"
- cassandra: true
- chronograf: true
- couchdb: true
- crystal: true
- docker: true
- elasticsearch:
version: 7
- gearman: true
- golang: true
- grafana: true
- influxdb: true
- mariadb: true
- minio: true
- mongodb: true
- mysql8: true
- neo4j: true
- ohmyzsh: true
- openresty: true
- pm2: true
- python: true
- rabbitmq: true
- solr: true
- webdriver: true

MariaDB

فعال کردن MariaDB باعث حذف MySQL و نصب MariaDB می شود. MariaDB به عنوان جایگزینی برای MySQL عمل می کند، بنابراین همچنان باید از mysql درایور پایگاه داده در پیکربندی پایگاه داده برنامه خود استفاده کنید.

MongoDB

نصب پیش‌فرض MongoDB، نام کاربری پایگاه داده homestead و رمز عبور مربوطه را روی secret .

Elasticsearch

می توانید یک نسخه پشتیبانی شده از Elasticsearch را مشخص کنید که ممکن است نسخه اصلی یا شماره نسخه دقیق (major.minor.patch) باشد. نصب پیش‌فرض، یک خوشه به نام «homestead» ایجاد می‌کند. هرگز نباید بیش از نیمی از حافظه سیستم عامل را به Elasticsearch بدهید، بنابراین مطمئن شوید که دستگاه Homestead شما حداقل دو برابر Elasticsearch تخصیص دارد.

اسناد Elasticsearch را بررسی کنید تا نحوه سفارشی کردن پیکربندی خود را بیاموزید.

Neo4j

نصب پیش‌فرض Neo4j، نام کاربری پایگاه داده homestead و رمز عبور مربوطه را به secret . برای دسترسی به مرورگر Neo4j، http://homestead.test:7474 از طریق مرورگر وب خود مراجعه کنید. پورت ها 7687 (Bolt)، 7474 (HTTP) و 7473 (HTTPS) آماده ارائه درخواست های مشتری Neo4j هستند.

نام مستعار

می‌توانید با تغییر aliases فایل در فهرست راهنمای Homestead، نام‌های مستعار Bash را به دستگاه Homestead خود اضافه کنید:

alias c='clear'
alias ..='cd ..'

پس از به‌روزرسانی aliases فایل، باید با استفاده از vagrant reload --provision دستور، دستگاه Homestead را دوباره تهیه کنید. این اطمینان حاصل می کند که نام مستعار جدید شما در دستگاه موجود است.

استفاده روزانه

دسترسی به Homestead در سطح جهانی

گاهی اوقات ممکن است بخواهید vagrant up دستگاه Homestead خود را از هر کجای سیستم فایل خود استفاده کنید. می توانید این کار را در سیستم های مک / لینوکس با افزودن یک تابع Bash به نمایه Bash خود انجام دهید. در ویندوز، می‌توانید این کار را با افزودن یک فایل «بچ» به فایل خود انجام دهید PATH . این اسکریپت ها به شما این امکان را می دهند که هر دستور Vagrant را از هر نقطه از سیستم خود اجرا کنید و به طور خودکار آن دستور را به نصب Homestead خود هدایت می کند:

مک / لینوکس

function homestead() {
( cd ~/Homestead && vagrant $* )
}

مطمئن شوید که ~/Homestead مسیر را در تابع به محل نصب واقعی Homestead خود تغییر دهید. پس از نصب تابع، می توانید دستوراتی را مانند homestead up یا homestead ssh از هر نقطه ای از سیستم خود اجرا کنید.

پنجره ها

یک homestead.bat فایل دسته ای در هر جایی از دستگاه خود با محتویات زیر ایجاد کنید:

@echo off
 
set cwd=%cd%
set homesteadVagrant=C:\Homestead
 
cd /d %homesteadVagrant% && vagrant %*
cd /d %cwd%
 
set cwd=
set homesteadVagrant=

مطمئن شوید که C:\Homestead مسیر مثال در اسکریپت را به مکان واقعی نصب Homestead خود تغییر دهید. پس از ایجاد فایل، مکان فایل را به فایل خود اضافه کنید PATH . سپس می توانید دستوراتی را مانند homestead up یا homestead ssh از هر نقطه ای از سیستم خود اجرا کنید.

اتصال از طریق SSH

با صدور دستور ترمینال از دایرکتوری Homestead خود می توانید SSH را به ماشین مجازی خود وارد کنید vagrant ssh .

اما، از آنجایی که احتمالاً نیاز دارید مکرراً به دستگاه Homestead خود SSH کنید، "عملکرد" ​​را که در بالا توضیح داده شد به دستگاه میزبان خود اضافه کنید تا به سرعت SSH را در جعبه Homestead اضافه کنید.

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

یک homestead پایگاه داده برای MySQL و PostgreSQL خارج از جعبه پیکربندی شده است. برای اتصال به پایگاه داده MySQL یا PostgreSQL خود از سرویس گیرنده پایگاه داده ماشین میزبان خود، باید به (MySQL) یا (PostgreSQL) وصل شوید 127.0.0.1 و پورت کنید . نام کاربری و رمز عبور هر دو پایگاه داده / است . 33060 54320 homestead secret

شما باید فقط هنگام اتصال به پایگاه داده از دستگاه میزبان خود از این پورت های غیر استاندارد استفاده کنید. شما از پورت های پیش فرض 3306 و 5432 در فایل پیکربندی پایگاه داده لاراول خود استفاده خواهید کرد زیرا لاراول در ماشین مجازی اجرا می شود.

پشتیبان گیری از پایگاه داده

Homestead می تواند به طور خودکار از پایگاه داده شما در زمانی که جعبه Vagrant شما نابود شود، نسخه پشتیبان تهیه کند. برای استفاده از این ویژگی، باید از Vagrant 2.1.0 یا بالاتر استفاده کنید. یا اگر از نسخه قدیمی Vagrant استفاده می کنید، باید vagrant-triggers افزونه را نصب کنید. برای فعال کردن پشتیبان‌گیری خودکار از پایگاه داده، خط زیر را به Homestead.yaml فایل خود اضافه کنید:

backup: true

پس از پیکربندی، Homestead پایگاه داده های شما را به دایرکتوری ها mysql_backup و هنگام اجرای دستور صادر می کند. اگر از روش نصب هر پروژه استفاده می کنید، می توانید این دایرکتوری ها را در پوشه ای که Homestead را شبیه سازی کرده اید یا در ریشه پروژه خود پیدا کنید . postgres_backup vagrant destroy

عکس های فوری پایگاه داده

Homestead از انجماد وضعیت پایگاه‌های داده MySQL و MariaDB و انشعاب بین آنها با استفاده از Logical MySQL Manager پشتیبانی می‌کند . به عنوان مثال، تصور کنید که روی یک سایت با یک پایگاه داده چند گیگابایتی کار می کنید. می توانید پایگاه داده را وارد کنید و یک عکس فوری بگیرید. پس از انجام برخی کارها و ایجاد برخی محتوای آزمایشی به صورت محلی، ممکن است به سرعت به حالت اولیه بازگردید.

در زیر کاپوت، LMM از عملکرد باریک عکس فوری LVM با پشتیبانی از کپی در نوشتن استفاده می کند. در عمل، این بدان معنی است که تغییر یک سطر در یک جدول تنها باعث می شود که تغییراتی که ایجاد کرده اید روی دیسک نوشته شود و در زمان بازیابی به میزان قابل توجهی در زمان و فضای دیسک صرفه جویی شود.

از آنجایی که lmm با LVM تعامل دارد، باید به صورت اجرا شود root . برای دیدن همه دستورات موجود، sudo lmm داخل جعبه Vagrant خود اجرا کنید. یک گردش کار رایج به شکل زیر است:

  1. یک پایگاه داده را به master شاخه lmm پیش فرض وارد کنید.
  2. با استفاده از snapshot از پایگاه داده بدون تغییر ذخیره کنید sudo lmm branch prod-YYYY-MM-DD .
  3. پایگاه داده را اصلاح کنید.
  4. sudo lmm merge prod-YYYY-MM-DD برای لغو همه تغییرات اجرا کنید .
  5. sudo lmm delete <branch> برای حذف شاخه های غیر ضروری اجرا کنید .

افزودن سایت های اضافی

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

sites:
- map: homestead.test
to: /home/vagrant/project1/public
- map: another.test
to: /home/vagrant/project2/public

اگر Vagrant به طور خودکار فایل "میزبان" شما را مدیریت نمی کند، ممکن است لازم باشد سایت جدید را نیز به آن فایل اضافه کنید:

192.168.10.10 homestead.test
192.168.10.10 another.test

هنگامی که سایت اضافه شد، vagrant reload --provision دستور را از دایرکتوری Homestead خود اجرا کنید.

انواع سایت

Homestead از چندین نوع سایت پشتیبانی می کند که به شما امکان می دهد به راحتی پروژه هایی را اجرا کنید که بر اساس لاراول نیستند. به عنوان مثال، ممکن است به راحتی یک برنامه Symfony را با استفاده از نوع سایت به Homestead اضافه کنیم symfony2 :

sites:
- map: symfony2.test
to: /home/vagrant/my-symfony-project/web
type: "symfony2"

انواع سایت های موجود عبارتند از: , apache , apigility , expressive ( laravel پیش فرض ) , proxy , silverstripe , , , و statamic . symfony2 symfony4 zf

پارامترهای سایت

می توانید fastcgi_param مقادیر Nginx اضافی را از طریق دستورالعمل سایت به سایت خود اضافه کنید params . به عنوان مثال، یک FOO پارامتر با مقدار BAR :

sites:
- map: homestead.test
to: /home/vagrant/project1/public
params:
- key: FOO
value: BAR

متغیرهای محیطی

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

variables:
- key: APP_ENV
value: local
- key: FOO
value: bar

پس از به روز رسانی Homestead.yaml ، مطمئن شوید که دستگاه را مجدداً با اجرا تهیه کنید vagrant reload --provision . این کار پیکربندی PHP-FPM را برای همه نسخه های PHP نصب شده به روز می کند و همچنین محیط را برای vagrant کاربر به روز می کند.

پیکربندی Cron Schedules

لاراول با برنامه‌ریزی یک فرمان Artisan که در هر دقیقه اجرا می‌شود، راه مناسبی برای زمان‌بندی کارهای Cron schedule:run فراهم می‌کند. این schedule:run دستور برنامه کاری تعریف شده در App\Console\Kernel کلاس شما را بررسی می کند تا مشخص کند کدام کارها باید اجرا شوند.

اگر می خواهید این schedule:run دستور برای یک سایت Homestead اجرا شود، می توانید هنگام تعریف سایت، این schedule گزینه را تنظیم کنید: true

sites:
- map: homestead.test
to: /home/vagrant/project1/public
schedule: true

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

پیکربندی Mailhog

Mailhog به شما این امکان را می دهد که به راحتی ایمیل ارسالی خود را دریافت کرده و بدون ارسال ایمیل به گیرندگان آن، آن را بررسی کنید. برای شروع، .env فایل خود را به‌روزرسانی کنید تا از تنظیمات ایمیل زیر استفاده کنید:

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

پس از پیکربندی Mailhog، می‌توانید به داشبورد Mailhog در آدرس دسترسی داشته باشید http://localhost:8025 .

پیکربندی Minio

Minio یک سرور ذخیره سازی شی منبع باز با API سازگار با Amazon S3 است. برای نصب Minio Homestead.yaml فایل خود را با گزینه تنظیمات زیر در قسمت ویژگی ها به روز کنید :

minio: true

به‌طور پیش‌فرض، Minio در پورت 9600 در دسترس است. می‌توانید با مراجعه به صفحه کنترل Minio به آن دسترسی پیدا کنید http://localhost:9600/ . کلید دسترسی پیش فرض است homestead ، در حالی که کلید مخفی پیش فرض است secretkey . هنگام دسترسی به Minio، همیشه باید از منطقه استفاده کنید us-east-1 .

برای استفاده از Minio باید پیکربندی دیسک S3 را در config/filesystems.php فایل پیکربندی خود تنظیم کنید. شما باید این use_path_style_endpoint گزینه را به پیکربندی دیسک اضافه کنید و همچنین کلید را url به endpoint :

's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'endpoint' => env('AWS_URL'),
'use_path_style_endpoint' => true
]

در نهایت، مطمئن شوید که فایل شما .env دارای گزینه های زیر است:

AWS_ACCESS_KEY_ID=homestead
AWS_SECRET_ACCESS_KEY=secretkey
AWS_DEFAULT_REGION=us-east-1
AWS_URL=http://localhost:9600

برای تهیه سطل ها، یک buckets دستورالعمل به فایل پیکربندی Homestead خود اضافه کنید:

buckets:
- name: your-bucket
policy: public
- name: your-private-bucket
policy: none

policy مقادیر پشتیبانی شده عبارتند از: none , download , upload و public .

پورت ها

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

  • SSH: 2222 → Forward to 22
  • ngrok UI: 4040 → Forward to 4040
  • HTTP: 8000 → Forward to 80
  • HTTPS: 44300 → Forward to 443
  • MySQL: 33060 → Forward to 3306
  • PostgreSQL: 54320 → Forward to 5432
  • MongoDB: 27017 → Forward to 27017
  • Mailhog: 8025 → Forwards To 8025
  • Minio: 9600 → Forwards to 9600

ارسال پورت های اضافی

در صورت تمایل، می توانید پورت های اضافی را به جعبه Vagrant ارسال کنید و همچنین پروتکل آنها را مشخص کنید:

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

به اشتراک گذاری محیط خود

گاهی اوقات ممکن است بخواهید آنچه را که در حال حاضر روی آن کار می کنید با همکاران یا مشتری به اشتراک بگذارید. Vagrant یک راه داخلی برای پشتیبانی از این دارد از طریق vagrant share ; با این حال، اگر چندین سایت در فایل خود پیکربندی کرده باشید، این کار نخواهد کرد Homestead.yaml .

برای حل این مشکل، Homestead شامل دستور خود است share . برای شروع، SSH را به دستگاه Homestead خود از طریق vagrant ssh و اجرا کنید share homestead.test . با این کار homestead.test سایت از Homestead.yaml فایل پیکربندی شما به اشتراک گذاشته می شود. می توانید هر یک از سایت های پیکربندی شده دیگر خود را جایگزین کنید homestead.test :

share homestead.test

پس از اجرای دستور، یک صفحه Ngrok ظاهر می شود که شامل گزارش فعالیت و URL های قابل دسترسی عمومی برای سایت مشترک است. اگر می خواهید یک منطقه سفارشی، زیر دامنه یا سایر گزینه های زمان اجرا Ngrok را مشخص کنید، می توانید آنها را به share دستور خود اضافه کنید:

share homestead.test -region=eu -subdomain=laravel

به یاد داشته باشید، Vagrant ذاتاً ناامن است و هنگام اجرای دستور، ماشین مجازی خود را در معرض اینترنت قرار می دهید share .

چندین نسخه PHP

Homestead 6 پشتیبانی از چندین نسخه PHP را در یک ماشین مجازی معرفی کرد. می توانید مشخص کنید که از کدام نسخه PHP برای یک سایت معین در Homestead.yaml فایل خود استفاده کنید. نسخه‌های PHP موجود عبارتند از: «5.6»، «7.0»، «7.1»، «7.2»، «7.3» و «7.4» (پیش‌فرض):

sites:
- map: homestead.test
to: /home/vagrant/project1/public
php: "7.1"

علاوه بر این، می توانید از هر یک از نسخه های PHP پشتیبانی شده از طریق CLI استفاده کنید:

php5.6 artisan list
php7.0 artisan list
php7.1 artisan list
php7.2 artisan list
php7.3 artisan list
php7.4 artisan list

همچنین می توانید نسخه پیش فرض CLI را با صدور دستورات زیر از داخل ماشین مجازی Homestead خود به روز کنید:

php56
php70
php71
php72
php73
php74

وب سرورها

Homestead به طور پیش فرض از وب سرور Nginx استفاده می کند. با این حال، اگر apache به عنوان یک نوع سایت مشخص شده باشد، می تواند آپاچی را نصب کند . در حالی که هر دو وب سرور را می توان همزمان نصب کرد، هر دو نمی توانند همزمان اجرا شوند. دستور flip shell برای تسهیل فرآیند جابجایی بین وب سرورها در دسترس است. این flip فرمان به طور خودکار تعیین می کند که کدام وب سرور در حال اجرا است، آن را خاموش می کند و سپس سرور دیگر را راه اندازی می کند. برای استفاده از این دستور، SSH را به دستگاه Homestead خود وارد کرده و دستور را در ترمینال خود اجرا کنید:

flip

ایمیل

Homestead شامل عامل انتقال نامه Postfix است که 1025 به طور پیش فرض در پورت گوش می دهد. بنابراین، می توانید به برنامه خود دستور دهید که از smtp درایور ایمیل در localhost پورت استفاده کند 1025 . سپس، تمام نامه‌های ارسالی توسط Postfix مدیریت می‌شود و توسط Mailhog دستگیر می‌شود. برای مشاهده ایمیل های ارسالی خود، http://localhost:8025 را در مرورگر وب خود باز کنید.

اشکال زدایی و پروفایل

اشکال زدایی درخواست های وب با Xdebug

Homestead شامل پشتیبانی از اشکال زدایی مرحله ای با استفاده از Xdebug است . به عنوان مثال، می توانید یک صفحه وب را از یک مرورگر بارگذاری کنید، و PHP به IDE شما متصل می شود تا امکان بازرسی و اصلاح کدهای در حال اجرا را فراهم کند.

به طور پیش فرض Xdebug در حال اجرا است و آماده پذیرش اتصالات است. اگر باید Xdebug را در CLI فعال کنید، sudo phpenmod xdebug دستور را در جعبه Vagrant خود اجرا کنید. در مرحله بعد، دستورالعمل های IDE خود را دنبال کنید تا اشکال زدایی فعال شود. در نهایت، مرورگر خود را به گونه‌ای پیکربندی کنید که Xdebug را با یک برنامه افزودنی یا بوکمارکلت فعال کند .

Xdebug باعث می شود PHP به طور قابل توجهی کندتر اجرا شود. برای غیرفعال کردن Xdebug، sudo phpdismod xdebug در جعبه Vagrant خود اجرا کنید و سرویس FPM را مجددا راه اندازی کنید.

اشکال زدایی برنامه های CLI

برای اشکال زدایی یک برنامه PHP CLI، از xphp نام مستعار پوسته داخل جعبه Vagrant خود استفاده کنید:

xphp path/to/script

راه اندازی خودکار Xdebug

هنگام اشکال‌زدایی تست‌های عملکردی که درخواست‌هایی را به سرور وب ارائه می‌کنند، به‌جای تغییر دادن آزمایش‌ها برای عبور از یک هدر یا کوکی سفارشی برای راه‌اندازی اشکال‌زدایی، شروع خودکار اشکال‌زدایی آسان‌تر است. برای اجبار Xdebug به شروع خودکار، /etc/php/7.x/fpm/conf.d/20-xdebug.ini داخل جعبه Vagrant خود را تغییر دهید و پیکربندی زیر را اضافه کنید:

; If Homestead.yaml contains a different subnet for the IP address, this address may be different...
xdebug.remote_host = 192.168.10.1
xdebug.remote_autostart = 1

پروفایل کردن برنامه ها با Blackfire

Blackfire یک سرویس SaaS برای پروفایل کردن درخواست‌های وب و برنامه‌های CLI و نوشتن ادعاهای عملکرد است. این یک رابط کاربری تعاملی ارائه می دهد که داده های نمایه را در نمودارهای تماس و جدول زمانی نمایش می دهد. این برای استفاده در توسعه، مرحله بندی و تولید ساخته شده است، بدون هزینه اضافی برای کاربران نهایی. عملکرد، کیفیت و بررسی های امنیتی در php.ini تنظیمات کد و پیکربندی را فراهم می کند.

Blackfire Player یک برنامه خزیدن وب، تست وب و وب اسکرپینگ منبع باز است که می تواند به طور مشترک با Blackfire به منظور ایجاد اسکریپت سناریوهای پروفایل کار کند.

برای فعال کردن Blackfire، از تنظیمات "ویژگی ها" در فایل پیکربندی Homestead خود استفاده کنید:

features:
- blackfire:
server_id: "server_id"
server_token: "server_value"
client_id: "client_id"
client_token: "client_value"

اعتبار سرور Blackfire و اعتبار مشتری نیاز به یک حساب کاربری دارد . Blackfire گزینه های مختلفی را برای پروفایل یک برنامه ارائه می دهد، از جمله ابزار CLI و افزونه مرورگر. لطفاً اسناد Blackfire را برای جزئیات بیشتر بررسی کنید .

پروفایل کردن عملکرد PHP با استفاده از XHGui

XHGui یک رابط کاربری برای بررسی عملکرد برنامه های PHP شما است. برای فعال کردن XHGui، xhgui: 'true' به پیکربندی سایت خود اضافه کنید:

sites:
-
map: your-site.test
to: /home/vagrant/your-site/public
type: "apache"
xhgui: 'true'

اگر سایت از قبل وجود دارد، مطمئن شوید که vagrant provision پس از به‌روزرسانی پیکربندی خود، آن را اجرا کنید.

برای نمایه یک درخواست وب، xhgui=on به عنوان یک پارامتر پرس و جو به یک درخواست اضافه کنید. XHGui به طور خودکار یک کوکی به پاسخ متصل می کند تا درخواست های بعدی به مقدار رشته پرس و جو نیاز نداشته باشند. می‌توانید نتایج نمایه برنامه خود را با مرور در مشاهده کنید http://your-site.test/xhgui .

برای نمایه یک درخواست CLI با استفاده از XHGui، پیشوند دستور را با XHGUI=on :

XHGUI=on path/to/script

نتایج نمایه CLI ممکن است مانند نتایج نمایه وب مشاهده شود.

توجه داشته باشید که عمل نمایه سازی اجرای اسکریپت را کند می کند و زمان های مطلق ممکن است دو برابر درخواست های دنیای واقعی باشد. بنابراین، همیشه بهبودهای درصدی را مقایسه کنید نه اعداد مطلق. همچنین، توجه داشته باشید که زمان اجرا شامل هر زمانی است که در یک اشکال‌زدا متوقف شده است.

از آنجایی که پروفایل های عملکرد فضای قابل توجهی از دیسک را اشغال می کنند، پس از چند روز به طور خودکار حذف می شوند.

رابط های شبکه

ویژگی رابط های شبکه networks را Homestead.yaml برای محیط Homestead شما پیکربندی می کند. می توانید هر تعداد رابط را که لازم است پیکربندی کنید:

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

برای فعال کردن یک رابط پل bridge ، تنظیماتی را پیکربندی کنید و نوع شبکه را به 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)"

گسترش خانه

شما می توانید Homestead را با استفاده از after.sh اسکریپت موجود در ریشه دایرکتوری Homestead خود گسترش دهید. در این فایل، می‌توانید دستورات پوسته‌ای را که برای پیکربندی صحیح و سفارشی کردن ماشین مجازی خود لازم است اضافه کنید.

هنگام سفارشی سازی Homestead، اوبونتو ممکن است از شما بپرسد که آیا می خواهید پیکربندی اصلی یک بسته را حفظ کنید یا آن را با یک فایل پیکربندی جدید بازنویسی کنید. برای جلوگیری از این امر، هنگام نصب بسته ها باید از دستور زیر استفاده کنید تا از بازنویسی هر گونه پیکربندی که قبلاً توسط Homestead نوشته شده است جلوگیری کنید:

sudo apt-get -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
install your-package

سفارشی سازی های کاربر

هنگامی که از Homestead در یک محیط تیمی استفاده می کنید، ممکن است بخواهید Homestead را به گونه ای تنظیم کنید که بهتر با سبک توسعه شخصی شما مطابقت داشته باشد. شما می توانید یک user-customizations.sh فایل در ریشه دایرکتوری Homestead خود ایجاد کنید (همان دایرکتوری حاوی فایل شما Homestead.yaml ). در این فایل، می توانید هر گونه سفارشی سازی را که می خواهید انجام دهید. با این حال، user-customizations.sh نسخه نباید کنترل شود.

به روز رسانی Homestead

قبل از شروع به‌روزرسانی Homestead مطمئن شوید که ماشین مجازی فعلی خود را با اجرای دستور زیر در فهرست خانه خود حذف کرده‌اید:

vagrant destroy

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

git fetch
 
git pull origin release

این دستورات آخرین کد Homestead را از مخزن GitHub می کشند، آخرین برچسب ها را واکشی می کنند و سپس آخرین نسخه برچسب گذاری شده را بررسی می کنند. می‌توانید آخرین نسخه انتشار پایدار را در صفحه انتشارات GitHub پیدا کنید .

اگر Homestead را از طریق فایل پروژه خود نصب کرده اید composer.json ، باید اطمینان حاصل کنید که composer.json فایل شما حاوی "laravel/homestead": "^10" وابستگی های شما است و به روز رسانی کنید:

composer update

سپس، باید جعبه Vagrant را با استفاده از vagrant box update دستور به روز کنید:

vagrant box update

در نهایت، برای استفاده از آخرین نصب Vagrant، باید جعبه Homestead خود را بازسازی کنید:

vagrant up

تنظیمات خاص ارائه دهنده

VirtualBox

natdnshostresolver

به طور پیش فرض، Homestead natdnshostresolver تنظیمات را روی پیکربندی می کند on . این به Homestead اجازه می دهد تا از تنظیمات DNS سیستم عامل میزبان شما استفاده کند. اگر می خواهید این رفتار را لغو کنید، خطوط زیر را به Homestead.yaml فایل خود اضافه کنید:

provider: virtualbox
natdnshostresolver: 'off'

پیوندهای نمادین در ویندوز

اگر پیوندهای نمادین به درستی در دستگاه ویندوز شما کار نمی کنند، ممکن است لازم باشد بلوک زیر را به سیستم خود اضافه کنید Vagrantfile :

config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end