خانه لاراول
- معرفی
- نصب و راه اندازی
- استفاده روزانه
- اشکال زدایی و پروفایل
- رابط های شبکه
- گسترش خانه
- به روز رسانی Homestead
- تنظیمات خاص ارائه دهنده
معرفی
لاراول تلاش می کند تا کل تجربه توسعه 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 خود اجرا کنید. یک گردش کار رایج به شکل زیر است:
-
یک پایگاه داده را به
master
شاخه lmm پیش فرض وارد کنید. -
با استفاده از snapshot از پایگاه داده بدون تغییر ذخیره کنید
sudo lmm branch prod-YYYY-MM-DD
. - پایگاه داده را اصلاح کنید.
-
sudo lmm merge prod-YYYY-MM-DD
برای لغو همه تغییرات اجرا کنید . -
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.test192.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=smtpMAIL_HOST=localhostMAIL_PORT=1025MAIL_USERNAME=nullMAIL_PASSWORD=nullMAIL_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=homesteadAWS_SECRET_ACCESS_KEY=secretkeyAWS_DEFAULT_REGION=us-east-1AWS_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 listphp7.0 artisan listphp7.1 artisan listphp7.2 artisan listphp7.3 artisan listphp7.4 artisan list
همچنین می توانید نسخه پیش فرض CLI را با صدور دستورات زیر از داخل ماشین مجازی Homestead خود به روز کنید:
php56php70php71php72php73php74
وب سرورها
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.1xdebug.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: virtualboxnatdnshostresolver: 'off'
پیوندهای نمادین در ویندوز
اگر پیوندهای نمادین به درستی در دستگاه ویندوز شما کار نمی کنند، ممکن است لازم باشد بلوک زیر را به سیستم خود اضافه کنید
Vagrantfile
:
config.vm.provider "virtualbox" do |v| v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]end