خانه لاراول
- معرفی
- نصب و راه اندازی
- به روز رسانی Homestead
- استفاده روزانه
- اشکال زدایی و پروفایل
- رابط های شبکه
- گسترش خانه
- تنظیمات خاص ارائه دهنده
معرفی
لاراول تلاش می کند تا کل تجربه توسعه 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.test192.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 listphp7.0 artisan listphp7.1 artisan listphp7.2 artisan listphp7.3 artisan listphp7.4 artisan listphp8.0 artisan listphp8.1 artisan listphp8.2 artisan listphp8.3 artisan list
شما می توانید نسخه پیش فرض PHP مورد استفاده توسط CLI را با صدور دستورات زیر از داخل ماشین مجازی Homestead خود تغییر دهید:
php56php70php71php72php73php74php80php81php82php83
اتصال به پایگاه های داده
یک
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=smtpMAIL_HOST=localhostMAIL_PORT=1025MAIL_USERNAME=nullMAIL_PASSWORD=nullMAIL_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=trueAWS_ENDPOINT=http://localhost:9600AWS_ACCESS_KEY_ID=homesteadAWS_SECRET_ACCESS_KEY=secretkeyAWS_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.1xdebug.mode = debugxdebug.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: virtualboxnatdnshostresolver: 'off'