نسخه:

خانه لاراول

معرفی

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

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

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

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

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

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

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

  • آپاچی
  • بلک فایر
  • کاساندرا
  • کرنوگراف
  • CouchDB
  • چارچوب کریستال و لاکی
  • Elasticsearch
  • EventStoreDB
  • مسیر پرواز
  • چرخ دنده
  • برو
  • گرافانا
  • InfluxDB
  • لاگستاش
  • MariaDB
  • Meilisearch
  • MinIO
  • MongoDB
  • Neo4j
  • اوه من زش
  • Resty را باز کنید
  • PM2
  • پایتون
  • آر
  • RabbitMQ
  • زنگ
  • RVM (مدیر نسخه روبی)
  • سولر
  • TimescaleDB
  • معامله گر (پسوند PHP)
  • Webdriver & Laravel Dusk Utilities

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

مراحل اول

قبل از راه اندازی محیط Homestead خود، باید Vagrant و همچنین یکی از ارائه دهندگان پشتیبانی شده زیر را نصب کنید:

همه این بسته‌های نرم‌افزاری، نصب‌کننده‌های بصری با کاربری آسان را برای همه سیستم‌عامل‌های محبوب فراهم می‌کنند.

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

نصب Homestead

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

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

پس از کلون سازی مخزن Laravel Homestead، باید release شعبه را بررسی کنید. این شعبه همیشه حاوی آخرین نسخه پایدار Homestead است:

cd ~/Homestead
 
git checkout release

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

# macOS / Linux...
bash init.sh
 
# Windows...
init.bat

پیکربندی Homestead

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

کلید provider موجود در فایل شما Homestead.yaml نشان می دهد که کدام ارائه دهنده Vagrant باید استفاده شود: virtualbox یا parallels :

provider: virtualbox

اگر از Apple Silicon استفاده می کنید، ارائه دهنده Parallels مورد نیاز است.

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

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

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

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

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

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

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

برای فعال کردن NFS ، می‌توانید type گزینه‌ای را به نگاشت پوشه خود اضافه کنید:

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 آشنایی ندارید؟ مشکلی نیست ویژگی Homestead.yaml فایل شما 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 شما هدایت می کند. در macOS و Linux، این فایل در آدرس قرار دارد /etc/hosts . در ویندوز، در C:\Windows\System32\drivers\etc\hosts . خطوطی که به این فایل اضافه می کنید به شکل زیر خواهد بود:

192.168.56.56 homestead.test

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

http://homestead.test

پیکربندی خدمات

Homestead چندین سرویس را به طور پیش فرض شروع می کند. با این حال، می‌توانید سفارشی کنید که کدام سرویس‌ها در حین ارائه فعال یا غیرفعال شوند. به عنوان مثال، می توانید PostgreSQL را فعال کنید و MySQL را با تغییر services گزینه موجود در فایل خود غیرفعال کنید Homestead.yaml :

services:
- enabled:
- "postgresql"
- disabled:
- "mysql"

خدمات مشخص شده بر اساس دستور آنها در بخشنامه شروع یا متوقف می enabled شود disabled .

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

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

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

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

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

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

composer require laravel/homestead --dev

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

# macOS / Linux...
php vendor/bin/homestead make
 
# Windows...
vendor\\bin\\homestead make

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

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

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

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
- dragonflydb: true
- elasticsearch:
version: 7.9.0
- eventstore: true
version: 21.2.0
- flyway: true
- gearman: true
- golang: true
- grafana: true
- influxdb: true
- logstash: true
- mariadb: true
- meilisearch: true
- minio: true
- mongodb: true
- neo4j: true
- ohmyzsh: true
- openresty: true
- pm2: true
- python: true
- r-base: true
- rabbitmq: true
- rustc: true
- rvm: true
- solr: true
- timescaledb: true
- trader: true
- webdriver: true

Elasticsearch

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

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

MariaDB

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

MongoDB

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

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 ، باید ماشین مجازی Homestead را با استفاده از vagrant reload --provision دستور دوباره تهیه کنید. این اطمینان حاصل می کند که نام مستعار جدید شما در دستگاه موجود است.

به روز رسانی Homestead

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

vagrant destroy

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

git fetch
 
git pull origin release

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

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

composer update

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

vagrant box update

پس از به‌روزرسانی جعبه Vagrant، باید bash init.sh دستور را از دایرکتوری Homestead اجرا کنید تا فایل‌های پیکربندی اضافی Homestead را به‌روزرسانی کنید. از شما پرسیده می شود که آیا می خواهید فایل های موجود Homestead.yaml ، after.sh و aliases فایل های خود را بازنویسی کنید:

# macOS / Linux...
bash init.sh
 
# Windows...
init.bat

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

vagrant up

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

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

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

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

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

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

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

اگر Vagrant به طور خودکار فایل "میزبان" شما را مدیریت نمی کند، ممکن است لازم باشد سایت جدید را نیز به آن فایل اضافه کنید. در macOS و Linux، این فایل در آدرس قرار دارد /etc/hosts . در ویندوز در آدرس زیر قرار دارد C:\Windows\System32\drivers\etc\hosts :

192.168.56.56 homestead.test
192.168.56.56 another.test

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

انواع سایت

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

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

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

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

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

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 کاربر به روز می کند.

پورت ها

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

  • HTTP: 8000 → Forward to 80
  • HTTPS: 44300 → Forward to 443

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

در صورت تمایل، می توانید با تعریف یک ports ورودی پیکربندی در Homestead.yaml فایل خود، پورت های اضافی را به جعبه Vagrant ارسال کنید. پس از به‌روزرسانی Homestead.yaml فایل، با اجرای دستور، دستگاه را مجدداً تهیه کنید vagrant reload --provision :

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

در زیر لیستی از پورت های خدمات Homestead اضافی وجود دارد که ممکن است بخواهید از دستگاه میزبان خود به جعبه Vagrant خود نقشه برداری کنید:

  • SSH: 2222 → به 22
  • ngrok UI: 4040 → To 4040
  • MySQL: 33060 → To 3306
  • PostgreSQL: 54320 → To 5432
  • MongoDB: 27017 → To 27017
  • Mailpit: 8025 → To 8025
  • Minio: 9600 → To 9600

نسخه های پی اچ پی

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

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

در ماشین مجازی Homestead خود ، می توانید از هر یک از نسخه های 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
php8.0 artisan list
php8.1 artisan list
php8.2 artisan list
php8.3 artisan list

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

php56
php70
php71
php72
php73
php74
php80
php81
php82
php83

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

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

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

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

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

backup: true

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

پیکربندی Cron Schedules

لاراول با برنامه‌ریزی یک فرمان Artisan برای اجرا در هر دقیقه ، راه مناسبی برای زمان‌بندی کارهای cron schedule:run فراهم می‌کند . این schedule:run دستور برنامه کاری تعریف شده در routes/console.php فایل شما را بررسی می کند تا مشخص کند کدام وظایف برنامه ریزی شده باید اجرا شوند.

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

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

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

پیکربندی Mailpit

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

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

پس از پیکربندی Mailpit، می‌توانید به داشبورد Mailpit در دسترسی داشته باشید 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، مطمئن شوید که .env فایل شما دارای گزینه های زیر است:

AWS_USE_PATH_STYLE_ENDPOINT=true
AWS_ENDPOINT=http://localhost:9600
AWS_ACCESS_KEY_ID=homestead
AWS_SECRET_ACCESS_KEY=secretkey
AWS_DEFAULT_REGION=us-east-1

برای تهیه سطل های Minio powered "S3"، یک buckets دستورالعمل به فایل خود اضافه کنید Homestead.yaml . پس از تعریف سطل های خود، باید این vagrant reload --provision دستور را در ترمینال خود اجرا کنید:

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

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

Laravel Dusk

برای اجرای تست های Laravel Dusk در Homestead، باید این webdriver ویژگی را در پیکربندی Homestead خود فعال کنید:

features:
- webdriver: true

پس از فعال کردن webdriver ویژگی، باید vagrant reload --provision دستور را در ترمینال خود اجرا کنید.

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

گاهی اوقات ممکن است بخواهید آنچه را که در حال حاضر روی آن کار می کنید با همکاران یا مشتری به اشتراک بگذارید. 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

اگر نیاز به اشتراک گذاری محتوا از طریق HTTPS به جای HTTP دارید، استفاده از sshare دستور به جای share این امکان را به شما می دهد.

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

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

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

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

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

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

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

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

; If Homestead.yaml contains a different subnet for the IP address, this address may be different...
xdebug.client_host = 192.168.10.1
xdebug.mode = debug
xdebug.start_with_request = yes

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

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

xphp /path/to/script

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

Blackfire سرویسی برای پروفایل کردن درخواست های وب و برنامه های CLI است. این یک رابط کاربری تعاملی ارائه می دهد که داده های نمایه را در نمودارهای تماس و جدول زمانی نمایش می دهد. این برای استفاده در توسعه، مرحله بندی و تولید ساخته شده است، بدون هزینه اضافی برای کاربران نهایی. علاوه بر این، Blackfire عملکرد، کیفیت و بررسی های امنیتی را در 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 دارد . Blackfire گزینه های مختلفی را برای پروفایل یک برنامه ارائه می دهد، از جمله ابزار CLI و افزونه مرورگر. لطفاً اسناد Blackfire را برای جزئیات بیشتر بررسی کنید .

رابط های شبکه

ویژگی 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)"

برای به‌روزرسانی دستگاهی که شبکه استفاده می‌کند، می‌توانید dev گزینه‌ای را به پیکربندی شبکه اضافه کنید. مقدار پیش فرض dev این است eth0 :

networks:
- type: "public_network"
ip: "192.168.10.20"
bridge: "en1: Wi-Fi (AirPort)"
dev: "enp2s0"

گسترش خانه

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

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

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

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

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

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

VirtualBox

natdnshostresolver

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

provider: virtualbox
natdnshostresolver: 'off'