الفرق بين المراجعتين لصفحة: «Laravel/homestead»
رؤيا-بنعطية (نقاش | مساهمات) لا ملخص تعديل |
Bechir-ahmed (نقاش | مساهمات) ترقية إلى نسخة 5.7 |
||
(13 مراجعة متوسطة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:بيئة Homestead | <noinclude>{{DISPLAYTITLE:بيئة Homestead | ||
في Laravel}}</noinclude> | في Laravel}}</noinclude> | ||
== مقدمة == | == مقدمة == | ||
يسعى Laravel جاهدًا لجعل تجربة تطوير [[PHP]] بأكملها مبهجة، بما في ذلك بيئة التطوير المحلية الخاصة بك. يوفر Vagrant طريقة بسيطة وأنيقة لإدارة وتوفير الأجهزة الوهمية. | يسعى [[Laravel]] جاهدًا لجعل تجربة تطوير [[PHP]] بأكملها مبهجة، بما في ذلك بيئة التطوير المحلية الخاصة بك. يوفر Vagrant طريقة بسيطة وأنيقة لإدارة وتوفير الأجهزة الوهمية. | ||
Laravel Homestead هو عبارة عن منصة وهمية لـ Vargant Box الرسمي، أُنشِئ مسبقًا ويوفر لك بيئة تطوير رائعة دون أن يتطلب منك تثبيت [[PHP]] وخادم ويب وأي برنامج خادم آخر على جهازك المحلي. لا داعي للقلق حول تعطل نظام التشغيل الخاص بك! يمكن التخلص من أجهزة رVargant بالكامل. إذا حدث خطأ ما، فيمكنك حذف جهاز Vargant وإعادة إنشائه في دقائق! | Laravel Homestead هو عبارة عن منصة وهمية لـ Vargant Box الرسمي، أُنشِئ مسبقًا ويوفر لك بيئة تطوير رائعة دون أن يتطلب منك تثبيت [[PHP]] وخادم ويب وأي برنامج خادم آخر على جهازك المحلي. لا داعي للقلق حول تعطل نظام التشغيل الخاص بك! يمكن التخلص من أجهزة رVargant بالكامل. إذا حدث خطأ ما، فيمكنك حذف جهاز Vargant وإعادة إنشائه في دقائق! | ||
يعمل Homestead على أي نظام سواءً كان ويندوز أو ماك أو لينكس وتتضمن خادم الويب Nginx و PHP 7.2 و PHP 7.1 و PHP 7.0 و PHP 5.6 و MySQL و PostgreSQL و Redis و Memcached و [[Node.js|Node]] وجميع الأشياء الأخرى التي تحتاج إليها تطوير تطبيقات Laravel مذهلة. | يعمل Homestead على أي نظام سواءً كان ويندوز أو ماك أو لينكس وتتضمن خادم الويب Nginx و PHP 7.2 و PHP 7.1 و PHP 7.0 و PHP 5.6 و MySQL و PostgreSQL و Redis و Memcached و [[Node.js|Node]] وجميع الأشياء الأخرى التي تحتاج إليها تطوير تطبيقات [[Laravel]] مذهلة. | ||
إذا كنت تستخدم ويندوز، فقد تحتاج إلى تمكين ميزة التسارع العتادي للأنظمة الوهمية (VT-x). يمكن عادةً تمكينه عبر BIOS الخاص بك. إذا كنت تستخدم Hyper-V على نظام UEFI، فقد تحتاج أيضًا إلى تعطيل Hyper-V من أجل الوصول إلى VT-x. | إذا كنت تستخدم ويندوز، فقد تحتاج إلى تمكين ميزة التسارع العتادي للأنظمة الوهمية (VT-x). يمكن عادةً تمكينه عبر BIOS الخاص بك. إذا كنت تستخدم Hyper-V على نظام UEFI، فقد تحتاج أيضًا إلى تعطيل Hyper-V من أجل الوصول إلى VT-x. | ||
=== البرامج المضمنة === | === البرامج المضمنة === | ||
* Ubuntu 18.04 | |||
* Git | |||
* [[PHP|PHP 7.2]] | |||
* [[PHP|PHP 7.1]] | |||
* [[PHP| PHP 7.0]] | |||
* [[PHP|PHP 5.6]] | |||
* [[Nginx]] | |||
* [[Apache]] (اختياري) | |||
* [[MySQL]] | |||
* [[MariaDB]] (اختياري) | |||
* [[Sqlite|Sqlite3]] | |||
* [[PostgreSQL]] | |||
* Composer | |||
* [[Node.js|Node]] (مع Yarn و Bower و Grunt و Gulp) | |||
* [[redis|Redis]] | |||
* Memcached | |||
* Beanstalkd | |||
* Mailhog | |||
* Neo4j (اختياري) | |||
* [[MongoDB]] (اختياري) | |||
* Elasticsearch (اختياري) | |||
* ngrok | |||
* wp-cli | |||
* Zend Z-Ray | |||
* Go | |||
* Minio | |||
== التثبيت والإعداد == | == التثبيت والإعداد == | ||
سطر 76: | سطر 51: | ||
==== تثبيت Homestead Vagrant Box ==== | ==== تثبيت Homestead Vagrant Box ==== | ||
بمجرد تثبيت VirtualBox أو VMware مع Vagrant، يجب إضافة بيئة laravel/homestead إلى تثبيت Vagrant باستخدام الأمر التالي في الطرفية الخاصة بك. سيستغرق تنزيل الملف عدة دقائق، اعتمادًا على سرعة الاتصال بالإنترنت:<syntaxhighlight lang="text"> | بمجرد تثبيت VirtualBox أو VMware مع Vagrant، يجب إضافة بيئة <code>laravel/homestead</code> إلى تثبيت Vagrant باستخدام الأمر التالي في الطرفية الخاصة بك. سيستغرق تنزيل الملف عدة دقائق، اعتمادًا على سرعة الاتصال بالإنترنت:<syntaxhighlight lang="text"> | ||
vagrant box add laravel/homestead | vagrant box add laravel/homestead | ||
</syntaxhighlight>إذا فشل هذا الأمر، فتأكد من أن تحديث Vagrant محدث. | </syntaxhighlight>إذا فشل هذا الأمر، فتأكد من أن تحديث Vagrant محدث. | ||
==== تثبيت Homestead ==== | ==== تثبيت Homestead ==== | ||
يمكنك تثبيت Homestead عن طريق استنساخ المستودع. فكر في استنساخ المستودع في مجلد Homestead داخل مجلد "المنزل"، حيث سيعمل مربع "Homestead" كمضيف لجميع مشاريع Laravel:<syntaxhighlight lang="text"> | يمكنك تثبيت Homestead عن طريق استنساخ المستودع. فكر في استنساخ المستودع في مجلد Homestead داخل مجلد "المنزل"، حيث سيعمل مربع "Homestead" كمضيف لجميع مشاريع [[Laravel]]:<syntaxhighlight lang="text"> | ||
git clone https://github.com/laravel/homestead.git ~/Homestead | git clone https://github.com/laravel/homestead.git ~/Homestead | ||
</syntaxhighlight>يجب عليك التحقق من إصدار موسوم من Homestead لأن الفرع master قد لا يكون دائمًا ثابتًا. يمكنك العثور على أحدث إصدار ثابت على صفحة إصدار GitHub:<syntaxhighlight lang="text"> | </syntaxhighlight>يجب عليك التحقق من إصدار موسوم من Homestead لأن الفرع master قد لا يكون دائمًا ثابتًا. يمكنك العثور على أحدث إصدار ثابت على صفحة إصدار GitHub:<syntaxhighlight lang="text"> | ||
سطر 91: | سطر 66: | ||
</syntaxhighlight>وبمجرد الانتهاء من استنساخ قاعدة Homestead، شغِّل الأمر bash init.sh من المجلد Homestead لإنشاء ملف ضبط Homestead.yaml. سيوضع ملف Homestead.yaml في المجلد Homestead:<syntaxhighlight lang="text"> | </syntaxhighlight>وبمجرد الانتهاء من استنساخ قاعدة Homestead، شغِّل الأمر <code>bash init.sh</code> من المجلد Homestead لإنشاء ملف ضبط <code>Homestead.yaml</code>. سيوضع ملف <code>Homestead.yaml</code> في المجلد Homestead:<syntaxhighlight lang="text"> | ||
// | // نظام ماك أو لينكس | ||
bash init.sh | bash init.sh | ||
// | // ويندووز | ||
init.bat | init.bat | ||
سطر 103: | سطر 78: | ||
==== إعداد مقدّم الخدمة الخاص بك ==== | ==== إعداد مقدّم الخدمة الخاص بك ==== | ||
يشير مفتاح <code>provider</code> في ملف <code>Homestead.yaml</code> الخاص بك إلى مزود الذي يفترض على Vargant أن يستخدمه: virtualbox أو vmware_fusion أو vmware_workstation parallels أو hyperv. بإمكانك أن تحدد هذا إلى المزود الذي ترغب به:<syntaxhighlight lang="text"> | |||
يشير مفتاح provider في ملف Homestead.yaml الخاص بك إلى مزود الذي يفترض على Vargant أن يستخدمه: | |||
virtualbox أو vmware_fusion أو vmware_workstation parallels أو hyperv. | |||
بإمكانك أن تحدد هذا إلى المزود الذي ترغب به:<syntaxhighlight lang="text"> | |||
provider: virtualbox | provider: virtualbox | ||
</syntaxhighlight> | </syntaxhighlight> | ||
تحتوي الخاصية folders الخاصة بملف <code>Homestead.yaml</code> على جميع المجلدات التي ترغب في مشاركتها مع بيئة العمل Homestead الخاصة بك. والملفات الموجودة في هذه المجلدات ستتغير، سوف تبقى محفوظة في عملية مزامنة بين الجهاز المحلي وبيئة Homestead. وربما ستقوم بضبط العديد من الملفات المشتركة حسب الضرورة:<syntaxhighlight lang="text"> | ==== ضبط المجلدات المشتركة ==== | ||
تحتوي الخاصية <code>folders</code> الخاصة بملف <code>Homestead.yaml</code> على جميع المجلدات التي ترغب في مشاركتها مع بيئة العمل Homestead الخاصة بك. والملفات الموجودة في هذه المجلدات ستتغير، سوف تبقى محفوظة في عملية مزامنة بين الجهاز المحلي وبيئة Homestead. وربما ستقوم بضبط العديد من الملفات المشتركة حسب الضرورة:<syntaxhighlight lang="text"> | |||
folders: | folders: | ||
سطر 134: | سطر 104: | ||
</syntaxhighlight>عند استخدام NFS، يجب أن تضع في الحسبان تثبيت البرنامج المساعد vagrant-bindfs. سيحافظ هذا المكون الإضافي على أذونات المستخدمين , المجموعات الصحيحة للملفات والمجلدات داخل بيئة Homestead. | </syntaxhighlight>عند استخدام NFS، يجب أن تضع في الحسبان تثبيت البرنامج المساعد vagrant-bindfs. سيحافظ هذا المكون الإضافي على أذونات المستخدمين , المجموعات الصحيحة للملفات والمجلدات داخل بيئة Homestead. | ||
يمكنك أيضًا تمرير أي خيار مدعوم بواسطة المجلدات المتزامنة في بيئة Vagrant بوضعها تحت مفتاح option:<syntaxhighlight lang="text"> | يمكنك أيضًا تمرير أي خيار مدعوم بواسطة المجلدات المتزامنة في بيئة Vagrant بوضعها تحت مفتاح <code>option</code>:<syntaxhighlight lang="text"> | ||
folders: | folders: | ||
- map: ~/code | - map: ~/code | ||
سطر 142: | سطر 112: | ||
rsync__args: ["--verbose", "--archive", "--delete", "-zz"] | rsync__args: ["--verbose", "--archive", "--delete", "-zz"] | ||
rsync__exclude: ["node_modules"] | rsync__exclude: ["node_modules"] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
لست على معرفة بخادم Nginx؟ ليس هناك أى مشكلة. تسمح لك خاصية sites تعيين "نطاق" (domain) بسهولة إلى مجلد في بيئة Homestead الخاصة بك. يتم ضم ضبط عينة موقع في ملف Homestead.yaml. مرة أخرى، يمكنك إضافة العديد من المواقع إلى بيئة Homestead حسب الضرورة. يمكن أن تكون Homestead بمثابة بيئة ملائمة ومحاكاة لكل مشروع Laravel تعمل عليه:<syntaxhighlight lang="text"> | ==== ضبط مواقع Nginx ==== | ||
لست على معرفة بخادم Nginx؟ ليس هناك أى مشكلة. تسمح لك خاصية <code>sites</code> تعيين "نطاق" (domain) بسهولة إلى مجلد في بيئة Homestead الخاصة بك. يتم ضم ضبط عينة موقع في ملف <code>Homestead.yaml</code>. مرة أخرى، يمكنك إضافة العديد من المواقع إلى بيئة Homestead حسب الضرورة. يمكن أن تكون Homestead بمثابة بيئة ملائمة ومحاكاة لكل مشروع [[Laravel]] تعمل عليه:<syntaxhighlight lang="text"> | |||
sites: | sites: | ||
- map: homestead.test | - map: homestead.test | ||
to: /home/vagrant/code/Laravel/public | to: /home/vagrant/code/Laravel/public | ||
</syntaxhighlight>إذا قمت بتغيير خاصية sites بعد تزويد بيئة Homestead، فيجب إعادة تشغيل <code>vagrant reload --provision</code> لتحديث ضبط Nginx على الجهاز الوهمي. | </syntaxhighlight>إذا قمت بتغيير خاصية <code>sites</code> بعد تزويد بيئة Homestead، فيجب إعادة تشغيل <code>vagrant reload --provision</code> لتحديث ضبط Nginx على الجهاز الوهمي. | ||
يجب إضافة "النطاقات" لمواقع Nginx إلى ملف hosts على جهازك. سيقوم ملف hosts بإعادة توجيه طلبات مواقع Homestead إلى جهاز Homestead الخاص بك. في نظامي التشغيل ماك ولينكس، يوجد هذا الملف في etc/hosts/. أما على نظام التشغيل ويندوز، فهو موجود في <code>C:\Windows\System32\drivers\etc\hosts</code>. ستظهر الخطوط التي تضيفها إلى هذا الملف كما يلي:<syntaxhighlight lang="text"> | ==== ملف الاستضافات ==== | ||
يجب إضافة "النطاقات" لمواقع Nginx إلى ملف hosts على جهازك. سيقوم ملف hosts بإعادة توجيه طلبات مواقع Homestead إلى جهاز Homestead الخاص بك. في نظامي التشغيل ماك ولينكس، يوجد هذا الملف في <code>etc/hosts/</code>. أما على نظام التشغيل ويندوز، فهو موجود في <code>C:\Windows\System32\drivers\etc\hosts</code>. ستظهر الخطوط التي تضيفها إلى هذا الملف كما يلي:<syntaxhighlight lang="text"> | |||
192.168.10.10 homestead.test | 192.168.10.10 homestead.test | ||
</syntaxhighlight>تأكد من أن عنوان IP المدرج هو الذي تم تعيينه في ملف Homestead.yaml الخاص بك. بمجرد أن تقوم بإضافة النطاق إلى ملف hosts الخاص بك والبدء بتشغيل بيئة Vagrant، ستتمكن من الوصول إلى الموقع عبر متصفح الويب الخاص بك:<syntaxhighlight lang="text"> | </syntaxhighlight>تأكد من أن عنوان IP المدرج هو الذي تم تعيينه في ملف <code>Homestead.yaml</code> الخاص بك. بمجرد أن تقوم بإضافة النطاق إلى ملف hosts الخاص بك والبدء بتشغيل بيئة Vagrant، ستتمكن من الوصول إلى الموقع عبر متصفح الويب الخاص بك:<syntaxhighlight lang="text"> | ||
http://homestead.test | http://homestead.test | ||
</syntaxhighlight> | </syntaxhighlight> | ||
بمجرد أن تحرر Homestead.yaml حسب رغبتك، شغِّل الأمر <code>vagrant up</code> من داخل مجلد Homestead الخاص بك. سوف يقوم Vagrant بتمهيد الجهاز الوهمي ويقوم تلقائيًا بضبط مجلداتك المشتركة ومواقع Nginx. | === تشغيل بيئة Vagrant === | ||
بمجرد أن تحرر <code>Homestead.yaml</code> حسب رغبتك، شغِّل الأمر <code>vagrant up</code> من داخل مجلد Homestead الخاص بك. سوف يقوم Vagrant بتمهيد الجهاز الوهمي ويقوم تلقائيًا بضبط مجلداتك المشتركة ومواقع Nginx. | |||
لإغلاق الجهاز، يمكنك استخدام الأمر <code>vagrant destroy --force</code>. | لإغلاق الجهاز، يمكنك استخدام الأمر <code>vagrant destroy --force</code>. | ||
قبل تثبيت المشروع | === قبل تثبيت المشروع === | ||
بدلًا من تثبيت Homestead على كامل النظام ومشاركة Homestead نفسه عبر جميع المشروعات، يمكنك بدلًا من ذلك تهيئة نسخة Homestead لكل مشروع تديره. قد يكون تثبيت Homestead لكل مشروع مفيدًا إذا كنت ترغب في شحن Vagrantfile مع مشروعك، مما يسمح للآخرين العاملين في المشروع أن يستعملوه مباشرةً عبر الأمر <code>vagrant up</code>. | بدلًا من تثبيت Homestead على كامل النظام ومشاركة Homestead نفسه عبر جميع المشروعات، يمكنك بدلًا من ذلك تهيئة نسخة Homestead لكل مشروع تديره. قد يكون تثبيت Homestead لكل مشروع مفيدًا إذا كنت ترغب في شحن Vagrantfile مع مشروعك، مما يسمح للآخرين العاملين في المشروع أن يستعملوه مباشرةً عبر الأمر <code>vagrant up</code>. | ||
لتثبيت Homestead مباشرة في مشروعك، اطلبه باستخدام Composer:<syntaxhighlight lang="text"> | لتثبيت Homestead مباشرة في مشروعك، اطلبه باستخدام Composer:<syntaxhighlight lang="text"> | ||
composer require laravel/homestead --dev | composer require laravel/homestead --dev | ||
</syntaxhighlight>بمجرد تثبيت Homestead، استخدم الأمر make لإنشاء ملف Vagrantfile و <code>Homestead.yaml</code> في جذر مشروعك. سيقوم الأمر <code>make</code> بضبط توجيهات folders و sites في ملف <code>Homestead.yaml</code> تلقائيًا. | </syntaxhighlight>بمجرد تثبيت Homestead، استخدم الأمر make لإنشاء ملف Vagrantfile و <code>Homestead.yaml</code> في جذر مشروعك. سيقوم الأمر <code>make</code> بضبط توجيهات <code>folders</code> و <code>sites</code> في ملف <code>Homestead.yaml</code> تلقائيًا. | ||
على أنظمة لينكس أو ماك:<syntaxhighlight lang="php"> | على أنظمة لينكس أو ماك:<syntaxhighlight lang="php"> | ||
سطر 176: | سطر 146: | ||
</syntaxhighlight>بعد ذلك، قم بتشغيل الأمر <code>vagrant up</code> والوصول إلى مشروعك على <nowiki>http://homestead.test</nowiki> في متصفحك. تذكر أنك ستظل بحاجة إلى إضافة إدخال ملف <code>/etc/hosts</code> لـ <code>homestead.test</code> أو النطاق الذي تختاره. | </syntaxhighlight>بعد ذلك، قم بتشغيل الأمر <code>vagrant up</code> والوصول إلى مشروعك على <nowiki>http://homestead.test</nowiki> في متصفحك. تذكر أنك ستظل بحاجة إلى إضافة إدخال ملف <code>/etc/hosts</code> لـ <code>homestead.test</code> أو النطاق الذي تختاره. | ||
تثبيت MariaDB | === تثبيت [[MariaDB]] === | ||
إذا كنت تفضل استخدام قاعدة البيانات [[MariaDB]] بدلاً من [[MySQL]]، فيمكنك إضافة خيار [[MariaDB]] إلى ملف <code>Homestead.yaml</code> الخاص بك. سيؤدي هذا الخيار إلى إزالة [[MySQL]] وتثبيت [[MariaDB]]. يعمل [[MariaDB]] كبديل بديل عن [[MySQL]] لذا يجب عليك استخدام برنامج تشغيل قاعدة بيانات [[MySQL]] في ضبط قاعدة بيانات التطبيق الخاص بك:<syntaxhighlight lang="php"> | |||
إذا كنت تفضل استخدام قاعدة البيانات MariaDB بدلاً من | |||
box: laravel/homestead | box: laravel/homestead | ||
ip: "192.168.10.10" | ip: "192.168.10.10" | ||
سطر 185: | سطر 154: | ||
provider: virtualbox | provider: virtualbox | ||
mariadb: true | mariadb: true | ||
</syntaxhighlight> | </syntaxhighlight> | ||
لتثبيت إصدار MongoDB Community قم بتحديث ملف Homestead.yaml الخاص بك مع خيار الضبط التالي:<syntaxhighlight lang="php"> | === تثبيت قاعدة بيانات [[MongoDB]] === | ||
لتثبيت إصدار MongoDB Community قم بتحديث ملف <code>Homestead.yaml</code> الخاص بك مع خيار الضبط التالي:<syntaxhighlight lang="php"> | |||
mongodb: true | mongodb: true | ||
</syntaxhighlight>تثبيت قاعدة بيانات MongoDB الافتراضي سيعمل على إعادة تعيين اسم مستخدم إلى homestead و كلمة مرور مطابقة إلى secret. | </syntaxhighlight>تثبيت قاعدة بيانات [[MongoDB]] الافتراضي سيعمل على إعادة تعيين اسم مستخدم إلى homestead و كلمة مرور مطابقة إلى secret. | ||
لتثبيت Elasticsearch، أضف خيار elasticsearch إلى ملف Homestead.yaml وحدد إصدارًا مدعومًا، والذي قد يكون إصدارًا رئيسيًا أو رقم إصدار دقيق (major.minor.patch). سوف ينشئ التثبيت الافتراضي شبكةً عنقوديةً (cluster) باسم "homestead". يجب ألا تعطي Elasticsearch أبداً أكثر من نصف ذاكرة نظام التشغيل، لذا تأكد من أن جهاز Homestead الخاص به لديه على الأقل ضعف المخصص لنظام Elasticsearch:<syntaxhighlight lang="php"> | === تثبيت Elasticsearch === | ||
لتثبيت Elasticsearch، أضف خيار elasticsearch إلى ملف <code>Homestead.yaml</code> وحدد إصدارًا مدعومًا، والذي قد يكون إصدارًا رئيسيًا أو رقم إصدار دقيق (major.minor.patch). سوف ينشئ التثبيت الافتراضي شبكةً عنقوديةً (cluster) باسم "homestead". يجب ألا تعطي Elasticsearch أبداً أكثر من نصف ذاكرة نظام التشغيل، لذا تأكد من أن جهاز Homestead الخاص به لديه على الأقل ضعف المخصص لنظام Elasticsearch:<syntaxhighlight lang="php"> | |||
box: laravel/homestead | box: laravel/homestead | ||
ip: "192.168.10.10" | ip: "192.168.10.10" | ||
سطر 204: | سطر 173: | ||
</syntaxhighlight>راجع توثيق Elasticsearch للتعرف على كيفية تخصيص الضبط الخاص بك. | </syntaxhighlight>راجع توثيق Elasticsearch للتعرف على كيفية تخصيص الضبط الخاص بك. | ||
تثبيت Neo4j | === تثبيت Neo4j === | ||
Neo4j هو نظام إدارة قواعد البيانات الرسومية. لتثبيت إصدار Neo4j Community قم بتحديث ملف <code>Homestead.yaml</code> الخاص بك مع خيار الضبط التالي:<syntaxhighlight lang="php"> | |||
Neo4j هو نظام إدارة قواعد البيانات الرسومية. لتثبيت إصدار Neo4j Community قم بتحديث ملف Homestead.yaml الخاص بك مع خيار الضبط التالي: | |||
neo4j: true | neo4j: true | ||
</syntaxhighlight>سيقوم الإعداد الافتراضي Neo4j بتعيين اسم المستخدم لقاعدة البيانات إلى homestead وكلمة المرور المطابقة إلى secret. للوصول إلى متصفح Neo4j، قم بزيارة <code><nowiki>http://homestead.test:7474</nowiki></code> عبر متصفح الويب الخاص بك. المنافذ 7687 (Bolt) و 7474 (HTTP) و 7473 (HTTPS) على استعداد لتقديم طلبات من عميل Neo4j. | |||
=== الأسماء البديلة === | |||
يمكنك إضافة الأسماء البديلة (aliases) لصدفة [[Bash]] إلى الجهاز Homestead الخاص بك عن طريق تعديل ملف aliases داخل دليل Homestead الخاص بك:<syntaxhighlight lang="php"> | |||
الأسماء البديلة | |||
يمكنك إضافة الأسماء البديلة (aliases) لصدفة Bash إلى الجهاز Homestead الخاص بك عن طريق تعديل ملف aliases داخل دليل Homestead الخاص بك:<syntaxhighlight lang="php"> | |||
alias c='clear' | alias c='clear' | ||
alias ..='cd ..' | alias ..='cd ..' | ||
سطر 221: | سطر 186: | ||
</syntaxhighlight>بعد تحديثك لملف aliases، يجب إعادة توفير جهاز الجهاز الرئيسي باستخدام أمر <code>vagrant reload --provision</code>. سيضمن ذلك توفر الأسماء البديلة الجديدة على الجهاز. | </syntaxhighlight>بعد تحديثك لملف aliases، يجب إعادة توفير جهاز الجهاز الرئيسي باستخدام أمر <code>vagrant reload --provision</code>. سيضمن ذلك توفر الأسماء البديلة الجديدة على الجهاز. | ||
الاستخدام اليومي | == الاستخدام اليومي == | ||
الوصول إلى Homestead العام | === الوصول إلى Homestead العام === | ||
في بعض الأحيان قد ترغب في تشغيل vagrant up على جهاز Homestead الخاص بك من أي مكان على نظام الملفات الخاص بك. يمكنك القيام بذلك على أنظمة ماك أو لينكس بإضافة دالة <code>Bash</code> إلى ملف تعريف Bash الخاص بك (Bash profile). أما على ويندوز، قد تحقق هذا من خلال إضافة ملف "batch" إلى المتغير PATH الخاص بك. تتيح لك هذه البرامج النصية تشغيل أي أمر Vagrant من أي مكان على نظامك وسوف تقوم تلقائيًا بتوجيه ذلك الأمر إلى تثبيت Homestead: | |||
في بعض الأحيان قد ترغب في تشغيل vagrant up على جهاز Homestead الخاص بك من أي مكان على نظام الملفات الخاص بك. يمكنك القيام بذلك على أنظمة ماك أو لينكس بإضافة دالة Bash إلى ملف تعريف Bash الخاص بك (Bash profile). أما على ويندوز، قد تحقق هذا من خلال إضافة ملف "batch" إلى المتغير PATH الخاص بك. تتيح لك هذه البرامج النصية تشغيل أي أمر Vagrant من أي مكان على نظامك وسوف تقوم تلقائيًا بتوجيه ذلك الأمر إلى تثبيت Homestead: | |||
==== نظام ماك أو لينكس ==== | |||
<syntaxhighlight lang="php"> | |||
function homestead() { | function homestead() { | ||
سطر 237: | سطر 202: | ||
</syntaxhighlight>تأكد من ضبط مسار <code>~/Homestead</code> في الوظيفة إلى موقع التثبيت الفعلي لبرمجية Homestead. بمجرد إضافة الدالة، يمكنك تشغيل أوامر مثل <code>homestead up</code> أو <code>homestead ssh</code> من أي مكان على نظامك. | </syntaxhighlight>تأكد من ضبط مسار <code>~/Homestead</code> في الوظيفة إلى موقع التثبيت الفعلي لبرمجية Homestead. بمجرد إضافة الدالة، يمكنك تشغيل أوامر مثل <code>homestead up</code> أو <code>homestead ssh</code> من أي مكان على نظامك. | ||
ويندوز | ==== نظام ويندوز ==== | ||
أنشِئ الملف <code>homestead.bat</code> في أي مكان على جهازك مع المحتويات التالية:<syntaxhighlight lang="text"> | |||
أنشِئ الملف <code>homestead.bat</code> في أي مكان على جهازك مع المحتويات التالية:<syntaxhighlight> | |||
@echo off | @echo off | ||
set cwd=%cd% | set cwd=%cd% | ||
سطر 249: | سطر 213: | ||
</syntaxhighlight>تأكد من تعديل المثال C:\Homestead في البرنامج النصي إلى الموقع الفعلي لتثبيت Homestead الخاص بك. بعد إنشاء الملف، أضف موقع الملف إلى PATH الخاص بك. يمكنك بعد ذلك تشغيل أوامر مثل <code>homestead up</code> أو <code>homestead ssh</code> من أي مكان على نظامك. | </syntaxhighlight>تأكد من تعديل المثال <code>C:\Homestead</code> في البرنامج النصي إلى الموقع الفعلي لتثبيت Homestead الخاص بك. بعد إنشاء الملف، أضف موقع الملف إلى PATH الخاص بك. يمكنك بعد ذلك تشغيل أوامر مثل <code>homestead up</code> أو <code>homestead ssh</code> من أي مكان على نظامك. | ||
=== الاتصال عبر SSH === | |||
يمكنك وضع SSH في جهازك الافتراضي بتنفيذ الأمر <code>ssh vagrant</code> من مجلد Homestead الخاص بك. | يمكنك وضع SSH في جهازك الافتراضي بتنفيذ الأمر <code>ssh vagrant</code> من مجلد Homestead الخاص بك. | ||
ولكن لمّا كنت ستحتاج على الأرجح إلى SSH في جهاز Homestead الخاص بك بشكل متكرر، فجرّب إضافة "الدالة" المذكورة أعلاه إلى جهازك المضيف إلى SSH بسرعة في بيئة Homestead. | ولكن لمّا كنت ستحتاج على الأرجح إلى SSH في جهاز Homestead الخاص بك بشكل متكرر، فجرّب إضافة "الدالة" المذكورة أعلاه إلى جهازك المضيف إلى SSH بسرعة في بيئة Homestead. | ||
الاتصال بقواعد البيانات | === الاتصال بقواعد البيانات === | ||
تكون قاعدة بيانات homestead لكل من [[MySQL]] و [[PostgreSQL]] مضبوطةً افتراضيًا. لراحة أكبر، ضبط ملف <code>.env Laravel</code>. لاستخدام قاعدة البيانات مع إطار العمل مباشرةً. | |||
تكون قاعدة بيانات homestead لكل من MySQL و PostgreSQL مضبوطةً افتراضيًا. لراحة أكبر، ضبط ملف <code>.env Laravel</code>. لاستخدام قاعدة البيانات مع إطار العمل مباشرةً | |||
يجب عليك | للاتصال بقاعدة بيانات [[MySQL]] أو [[PostgreSQL]] من عميل قاعدة بيانات جهازك المضيف، يجب عليك الاتصال بالمضيف 127.0.0.1 والمنفذ 33060 (MySQL) أو 54320 (PostgreSQL). اسم المستخدم وكلمة المرور لكل من قواعد البيانات هو homestead / secret. | ||
يجب عليك فقط استخدام هذه المنافذ غير القياسية عند الاتصال بقواعد البيانات من الجهاز المضيف. ستستخدم المنفذين 3306 و 5432 الافتراضيين في ملف ضبط قاعدة بيانات [[Laravel]] نظرًا لأن Laravel يعمل داخل الجهاز الظاهري. | |||
يستطيع Homestead أن يعمل على نسخ قاعدة البيانات الخاصة بك بشكل تلقائي عندما يتم حذف جهاز Vargant. للاستفادة من هذه الميزة، يجب أن تستخدم Vagrant 2.1.0 أو أعلى. أو، إذا كنت تستخدم إصدارًا قديمًا من Vagrant، فيجب عليك تثبيت الإضافة vagrant-triggers. لتمكين النسخ الاحتياطي التلقائي لقاعدة البيانات، أضف السطر التالي إلى ملف Homestead.yaml:<syntaxhighlight lang="php"> | === النسخ الاحتياطي لقاعدة البيانات === | ||
يستطيع Homestead أن يعمل على نسخ قاعدة البيانات الخاصة بك بشكل تلقائي عندما يتم حذف جهاز Vargant. للاستفادة من هذه الميزة، يجب أن تستخدم Vagrant 2.1.0 أو أعلى. أو، إذا كنت تستخدم إصدارًا قديمًا من Vagrant، فيجب عليك تثبيت الإضافة vagrant-triggers. لتمكين النسخ الاحتياطي التلقائي لقاعدة البيانات، أضف السطر التالي إلى ملف <code>Homestead.yaml</code>:<syntaxhighlight lang="php"> | |||
backup: true. | backup: true. | ||
</syntaxhighlight>بمجرد انتهاء عملية الضبط، سيُصدِّر Homestead قواعد البيانات إلى مجلدي mysql_backup و postgres_backup عند تنفيذ الأمر <code>vagrant destroy</code>. يمكن العثور على هذه المسارات في المجلد حيث قمت باستنساخ Homestead أو في جذر المشروع إذا كنت تستخدم أسلوب التثبيت لكل مشروع. | </syntaxhighlight>بمجرد انتهاء عملية الضبط، سيُصدِّر Homestead قواعد البيانات إلى مجلدي mysql_backup و postgres_backup عند تنفيذ الأمر <code>vagrant destroy</code>. يمكن العثور على هذه المسارات في المجلد حيث قمت باستنساخ Homestead أو في جذر المشروع إذا كنت تستخدم أسلوب التثبيت لكل مشروع. | ||
إضافة مواقع أخرى | === إضافة مواقع أخرى === | ||
بمجرد أن يتم توفير بيئة Homestead وتشغيلها، قد ترغب في إضافة مواقع Nginx إضافية لتطبيقات [[Laravel]] الخاصة بك. يمكنك تشغيل أكبر عدد ممكن من عمليات Laravel كما تريد في بيئة واحدة في Homestead. لإضافة موقع إضافي، أضف الموقع إلى ملف <code>Homestead.yaml</code> الخاص بك:<syntaxhighlight lang="php"> | |||
بمجرد أن يتم توفير بيئة Homestead وتشغيلها، قد ترغب في إضافة مواقع Nginx إضافية لتطبيقات Laravel الخاصة بك. يمكنك تشغيل أكبر عدد ممكن من عمليات Laravel كما تريد في بيئة واحدة في Homestead. لإضافة موقع إضافي، أضف الموقع إلى ملف Homestead.yaml الخاص بك:<syntaxhighlight lang="php"> | |||
sites: | sites: | ||
- map: homestead.test | - map: homestead.test | ||
to: /home/vagrant/code/Laravel/public | to: /home/vagrant/code/Laravel/public | ||
- map: another.test | - map: another.test | ||
to: /home/vagrant/code/another/public | to: /home/vagrant/code/another/public | ||
سطر 292: | سطر 250: | ||
</syntaxhighlight>بمجرد إضافة الموقع، شغِّل الأمر <code>vagrant reload –provision</code> من مجلد Homestead الخاص بك. | </syntaxhighlight>بمجرد إضافة الموقع، شغِّل الأمر <code>vagrant reload –provision</code> من مجلد Homestead الخاص بك. | ||
أنواع الموقع | ==== أنواع الموقع ==== | ||
تدعم Homestead عدة أنواع من المواقع التي تسمح لك بتشغيل المشاريع التي لا تعتمد على [[Laravel]] بسهولة. على سبيل المثال، يمكننا بسهولة إضافة تطبيق [[Symfony]] إلى Homestead باستخدام نوع موقع symfony2: <syntaxhighlight lang="php"> | |||
تدعم Homestead عدة أنواع من المواقع التي تسمح لك بتشغيل المشاريع التي لا تعتمد على Laravel بسهولة. على سبيل المثال، يمكننا بسهولة إضافة تطبيق Symfony إلى Homestead باستخدام نوع موقع symfony2 <syntaxhighlight lang="php"> | |||
sites: | sites: | ||
- map: symfony2.test | - map: symfony2.test | ||
to: /home/vagrant/code/Symfony/web | to: /home/vagrant/code/Symfony/web | ||
type: "symfony2" | type: "symfony2" | ||
سطر 306: | سطر 261: | ||
</syntaxhighlight>أنواع المواقع المتاحة هي: apache و apigility و expressive و laravel (الافتراضي) و proxy و silverstripe و statamic و symfony2 و symfony4 و zf. | </syntaxhighlight>أنواع المواقع المتاحة هي: apache و apigility و expressive و laravel (الافتراضي) و proxy و silverstripe و statamic و symfony2 و symfony4 و zf. | ||
مقاييس الموقع | ==== مقاييس الموقع ==== | ||
يمكنك إضافة قيم Nginx fastcgi_param إضافية إلى موقعك عبر توجيه موقع params. على سبيل المثال، سنقوم بإضافة المعامل FOO بقيمة BAR:<syntaxhighlight lang="php"> | يمكنك إضافة قيم Nginx fastcgi_param إضافية إلى موقعك عبر توجيه موقع params. على سبيل المثال، سنقوم بإضافة المعامل FOO بقيمة BAR:<syntaxhighlight lang="php"> | ||
sites: | sites: | ||
- map: homestead.test | - map: homestead.test | ||
to: /home/vagrant/code/Laravel/public | to: /home/vagrant/code/Laravel/public | ||
params: | params: | ||
- key: FOO | - key: FOO | ||
value: BAR | value: BAR | ||
</syntaxhighlight> | </syntaxhighlight> | ||
يمكنك تعيين متغيرات البيئة العامة عن طريق إضافتها إلى ملف Homestead.yaml الخاص بك:<syntaxhighlight lang="php"> | === متغيرات البيئة === | ||
يمكنك تعيين متغيرات البيئة العامة عن طريق إضافتها إلى ملف <code>Homestead.yaml</code> الخاص بك:<syntaxhighlight lang="php"> | |||
variables: | variables: | ||
- key: APP_ENV | - key: APP_ENV | ||
value: local | value: local | ||
- key: FOO | - key: FOO | ||
value: bar | value: bar | ||
</syntaxhighlight>بعد تحديث Homestead. | </syntaxhighlight>بعد تحديث <code>Homestead.yaml</code>، تأكد من تطبيق هذا الضبط على الجهاز عن طريق تشغيل <code>vagrant reload --provision</code>. سيؤدي ذلك إلى تحديث تهيئة PHP-FPM لكافة إصدارات [[PHP]] المثبتة وكذلك تحديث البيئة للمستخدم vagrant. | ||
ضبط جداول Cron | === ضبط جداول Cron === | ||
يوفر [[Laravel]] طريقة ملائمة لجدولة وظائف Cron من خلال جدولة <code>schedule:run</code> بشكل فردي من خلال أمر Artisan ليتم تشغيله كل دقيقة. سوف يفحص <code>schedule:run</code> جدولة المهام المحددة في فئة التطبيق <code>App\Console\Kernel</code> لتحديد المهام التي يجب تشغيلها. | |||
إذا كنت ترغب في تشغيل الأمر <code>schedule:run</code> ليتم تشغيله لموقع Homestead، فيمكنك تعيين خيار <code>schedule</code> على <code>true</code> عند تحديد الموقع:<syntaxhighlight lang="php"> | |||
إذا كنت ترغب في تشغيل الأمر <code>schedule:run</code> ليتم تشغيله لموقع Homestead، فيمكنك تعيين خيار schedule على true عند تحديد الموقع:<syntaxhighlight lang="php"> | |||
sites: | sites: | ||
- map: homestead.test | - map: homestead.test | ||
to: /home/vagrant/code/Laravel/public | to: /home/vagrant/code/Laravel/public | ||
schedule: true | schedule: true | ||
سطر 353: | سطر 300: | ||
</syntaxhighlight>ستُعرَّف مهمة Cron الخاصة بالموقع في المجلد <code>etc/cron.d/</code> الخاص بالجهاز الوهمي. | </syntaxhighlight>ستُعرَّف مهمة Cron الخاصة بالموقع في المجلد <code>etc/cron.d/</code> الخاص بالجهاز الوهمي. | ||
ضبط Mailhog | === ضبط Mailhog === | ||
Mailhog يسمح لك لالتقاط البريد الإلكتروني الخاص بك بسهولة وفحصها دون بالفعل إرسال البريد إلى المستلمين. للبدء، حدِّث ملف .env الخاص بك لاستخدام إعدادات البريد التالية:<syntaxhighlight lang="php"> | Mailhog يسمح لك لالتقاط البريد الإلكتروني الخاص بك بسهولة وفحصها دون بالفعل إرسال البريد إلى المستلمين. للبدء، حدِّث ملف .env الخاص بك لاستخدام إعدادات البريد التالية:<syntaxhighlight lang="php"> | ||
MAIL_DRIVER=smtp | MAIL_DRIVER=smtp | ||
سطر 364: | سطر 310: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== ضبط Minio === | |||
يوفر Minio طبقة تخزين متوافقة مع S3 على جهازك Homestead عبر منفذ 9600. لاستخدام Minio، حدِّث ملف Homestead.yaml الخاص بك مع خيار الضبط التالي:<syntaxhighlight lang="php"> | يوفر Minio طبقة تخزين متوافقة مع S3 على جهازك Homestead عبر منفذ 9600. لاستخدام Minio، حدِّث ملف Homestead.yaml الخاص بك مع خيار الضبط التالي:<syntaxhighlight lang="php"> | ||
minio: true | minio: true | ||
</syntaxhighlight>بشكل افتراضي، يتوافر Minio على المنفذ 9600. يمكنك الوصول إلى لوحة التحكم Minio بالانتقال إلى <nowiki>http://homestead</nowiki>: 9600. مفتاح الوصول الافتراضي هو homestead، في حين أن المفتاح السري الافتراضي هو secretkey. عند الوصول إلى Minio، يجب دائمًا استخدام المنطقة us-east-1. | </syntaxhighlight>بشكل افتراضي، يتوافر Minio على المنفذ 9600. يمكنك الوصول إلى لوحة التحكم Minio بالانتقال إلى <nowiki>http://homestead</nowiki>: 9600. مفتاح الوصول الافتراضي هو homestead، في حين أن المفتاح السري الافتراضي هو secretkey. عند الوصول إلى Minio، يجب دائمًا استخدام المنطقة us-east-1. | ||
بعد ذلك، ستحتاج إلى ضبط تهيئة القرص S3 في ملف الضبط config/filesystems.php الخاص بك. يجب إضافة خيار use_path_style_endpoint إلى ضبط القرص، بالإضافة إلى تحديث مفتاح عنوان url إلى endpoint:<syntaxhighlight lang="php"> | بعد ذلك، ستحتاج إلى ضبط تهيئة القرص S3 في ملف الضبط <code>config/filesystems.php</code> الخاص بك. يجب إضافة خيار <code>use_path_style_endpoint</code> إلى ضبط القرص، بالإضافة إلى تحديث مفتاح عنوان url إلى endpoint:<syntaxhighlight lang="php"> | ||
's3' => [ | 's3' => [ | ||
سطر 391: | سطر 338: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== البوابات === | |||
بشكل افتراضي، يُعاد توجيه المنافذ التالية إلى بيئة Homestead الخاصة بك: | بشكل افتراضي، يُعاد توجيه المنافذ التالية إلى بيئة Homestead الخاصة بك: | ||
* SSH: 2222: يُمرَّر إلى 22 | |||
* ngrok UI: 4040 : يُمرَّر إلى 4040 | |||
* HTTP: 8000: يُمرَّر إلى 80 | |||
* HTTPS: 44300: يُمرَّر إلى 443 | |||
* MySQL: 33060: يُمرَّر إلى 3306 | |||
* PostgreSQL: 54320: يُمرَّر إلى 5432 | |||
* MongoDB: 27017: يُمرَّر إلى 27017 | |||
* Mailhog: 8025: يُمرَّر إلى 8025 | |||
* Minio: 9600 : يُمرَّر إلى 9600 | |||
==== إعادة توجيه المنافذ الإضافية ==== | |||
إعادة توجيه المنافذ الإضافية | |||
إذا كنت ترغب في ذلك، فيمكنك إعادة توجيه منافذ إضافية إلى جهاز Vagrant، بالإضافة إلى تحديد البروتوكول الخاص بها:<syntaxhighlight lang="php"> | إذا كنت ترغب في ذلك، فيمكنك إعادة توجيه منافذ إضافية إلى جهاز Vagrant، بالإضافة إلى تحديد البروتوكول الخاص بها:<syntaxhighlight lang="php"> | ||
ports: | ports: | ||
سطر 427: | سطر 365: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== مشاركة البيئة الخاصة بك === | |||
قد ترغب في بعض الأحيان في مشاركة ما تعمل عليه حاليًا مع زملاء العمل أو العميل. يمتلك Vagrant طريقةً مدمجةً لدعم هذا عن طريق vagrant share؛ ومع ذلك، لن يعمل هذا إذا كان لديك مواقع متعددة تمت تهيئتها في ملف <code>Homestead.yaml</code> الخاص بك. | قد ترغب في بعض الأحيان في مشاركة ما تعمل عليه حاليًا مع زملاء العمل أو العميل. يمتلك Vagrant طريقةً مدمجةً لدعم هذا عن طريق vagrant share؛ ومع ذلك، لن يعمل هذا إذا كان لديك مواقع متعددة تمت تهيئتها في ملف <code>Homestead.yaml</code> الخاص بك. | ||
سطر 437: | سطر 376: | ||
</syntaxhighlight>تحذير: تذكر أن Vagrant غير آمن بطبيعته، وستُعرَّض جهازك الوهمي إلى الإنترنت عند تشغيل الأمر share. | </syntaxhighlight>تحذير: تذكر أن Vagrant غير آمن بطبيعته، وستُعرَّض جهازك الوهمي إلى الإنترنت عند تشغيل الأمر share. | ||
إصدارات متعددة من PHP | === إصدارات متعددة من PHP === | ||
ملاحظة: هذه الميزة متوافقة فقط مع Nginx. | ملاحظة: هذه الميزة متوافقة فقط مع Nginx. | ||
قدمت Homestead 6 الدعم للإصدارات المتعددة من PHP على نفس الجهاز الوهمي.. يمكنك تحديد أي إصدار من PHP لاستخدامه لموقع معين داخل ملف Homestead.yaml الخاص بك. إصدارات PHP المتاحة هي: "5.6" و "7.0" و "7.1" و "7.2" (الافتراضي):<syntaxhighlight lang="php"> | قدمت Homestead 6 الدعم للإصدارات المتعددة من PHP على نفس الجهاز الوهمي.. يمكنك تحديد أي إصدار من [[PHP]] لاستخدامه لموقع معين داخل ملف <code>Homestead.yaml</code> الخاص بك. إصدارات [[PHP]] المتاحة هي: "5.6" و "7.0" و "7.1" و "7.2" (الافتراضي):<syntaxhighlight lang="php"> | ||
sites: | sites: | ||
- map: homestead.test | - map: homestead.test | ||
to: /home/vagrant/code/Laravel/public | to: /home/vagrant/code/Laravel/public | ||
php: "5.6" | |||
</syntaxhighlight>بالإضافة إلى ذلك، يمكنك استخدام أي من إصدارات PHP المدعومة عبر CLI:<syntaxhighlight lang="php"> | </syntaxhighlight>بالإضافة إلى ذلك، يمكنك استخدام أي من إصدارات [[PHP]] المدعومة عبر CLI:<syntaxhighlight lang="php"> | ||
php5.6 artisan list | php5.6 artisan list | ||
php7.0 artisan list | php7.0 artisan list | ||
سطر 458: | سطر 394: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
تستخدم Homestead خادم الويب Nginx بشكل افتراضي. ومع ذلك، يمكن تثبيت Apache إذا تم تحديد apache كنوع موقع. بينما يمكن تثبيت كلا خادمَي الويب في نفس الوقت، لا يمكن تشغيل كلاهما في نفس الوقت. يتوفر الأمر flip لتسهيل عملية التبديل بين خوادم الويب. يقوم الأمر flip تلقائيًا بتحديد خادم الويب الذي يعمل، وإيقاف تشغيله، ثم بدء تشغيل الخادم الآخر. لاستخدام هذا الأمر، سجِّل دخولك عبر SSH إلى جهاز Homestead الخاص بك وشغِّل الأمر في الطرفية الخاصة بك:<syntaxhighlight lang="php"> | === خوادم الويب === | ||
تستخدم Homestead خادم الويب Nginx بشكل افتراضي. ومع ذلك، يمكن تثبيت Apache إذا تم تحديد apache كنوع موقع. بينما يمكن تثبيت كلا خادمَي الويب في نفس الوقت، لا يمكن تشغيل كلاهما في نفس الوقت. يتوفر الأمر <code>flip</code> لتسهيل عملية التبديل بين خوادم الويب. يقوم الأمر <code>flip</code> تلقائيًا بتحديد خادم الويب الذي يعمل، وإيقاف تشغيله، ثم بدء تشغيل الخادم الآخر. لاستخدام هذا الأمر، سجِّل دخولك عبر SSH إلى جهاز Homestead الخاص بك وشغِّل الأمر في الطرفية الخاصة بك:<syntaxhighlight lang="php"> | |||
flip | flip | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== البريد === | |||
يشمل Homestead عميل نقل البريد Postfix، والذي يستمع على المنفذ 1025 بشكل افتراضي. لذلك، يمكنك إرشاد التطبيق الخاص بك لاستخدام برنامج تشغيل البريد smtp على منفذ localhost 1025. ثم سيتم التعامل مع كافة البريد المرسلة بواسطة Postfix ويتم اكتشافها بواسطة Mailhog. لعرض رسائل البريد الإلكتروني المرسلة، افتح <nowiki>http://localhost:8025</nowiki> في متصفح الويب الخاص بك. | يشمل Homestead عميل نقل البريد Postfix، والذي يستمع على المنفذ 1025 بشكل افتراضي. لذلك، يمكنك إرشاد التطبيق الخاص بك لاستخدام برنامج تشغيل البريد smtp على منفذ localhost 1025. ثم سيتم التعامل مع كافة البريد المرسلة بواسطة Postfix ويتم اكتشافها بواسطة Mailhog. لعرض رسائل البريد الإلكتروني المرسلة، افتح <nowiki>http://localhost:8025</nowiki> في متصفح الويب الخاص بك. | ||
واجهات الشبكة | == واجهات الشبكة == | ||
تقوم الخاصية networks في الملفـ <code>Homestead.yaml</code> بضبط واجهات شبكة الاتصال لبيئة بيئة العمل الخاصة بك. يمكنك ضبط العديد من الواجهات حسب الضرورة:<syntaxhighlight lang="php"> | |||
تقوم الخاصية networks في الملفـ Homestead.yaml بضبط واجهات شبكة الاتصال لبيئة بيئة العمل الخاصة بك. يمكنك ضبط العديد من الواجهات حسب الضرورة:<syntaxhighlight lang="php"> | |||
networks: | networks: | ||
- type: "private_network" | - type: "private_network" | ||
ip: "192.168.10.20" | ip: "192.168.10.20" | ||
سطر 480: | سطر 416: | ||
- type: "public_network" | - type: "public_network" | ||
ip: "192.168.10.20" | ip: "192.168.10.20" | ||
bridge: "en1: Wi-Fi (AirPort)" | bridge: "en1: Wi-Fi (AirPort)" | ||
سطر 490: | سطر 424: | ||
- type: "public_network" | - type: "public_network" | ||
bridge: "en1: Wi-Fi (AirPort)" | |||
</syntaxhighlight> | |||
== تمديد Homestead == | |||
يمكنك تمديد Homestead باستخدام البرنامج النصي <code>after.sh</code> في جذر دليل Homestead. ضمن هذا الملف ، يمكنك إضافة أي أوامر shell ضرورية لتكوين جهازك الوهمي وتخصيصه بشكل صحيح. | |||
</syntaxhighlight> | عند تخصيص Homestead ، قد يسألك Ubuntu عما إذا كنت ترغب في الاحتفاظ بتكوين الحزمة الأصلي أو الكتابة فوقه بملف تكوين جديد. لتجنب ذلك ، يجب عليك استخدام الأمر التالي عند تثبيت الحزم لتجنب الكتابة فوق أي تكوين سبق أن كتبه Homestead:<syntaxhighlight lang="php"> | ||
sudo apt-get -y \ | |||
-o Dpkg::Options::="--force-confdef" \ | |||
-o Dpkg::Options::="--force-confold" \ | |||
install your-package | |||
</syntaxhighlight> | |||
== تحديث Homestead == | |||
يمكنك تحديث Homestead في خطوتين بسيطتين. أولاً، يجب تحديث بيئة Vagrant باستخدام الأمر :<syntaxhighlight lang="php"> | يمكنك تحديث Homestead في خطوتين بسيطتين. أولاً، يجب تحديث بيئة Vagrant باستخدام الأمر :<syntaxhighlight lang="php"> | ||
vagrant box update | vagrant box update | ||
</syntaxhighlight> | </syntaxhighlight> | ||
بعد ذلك، تحتاج إلى تحديث شيفرة Homestead المصدرية. إذا قمت باستنساخ المستودع، يمكنك تنفيذ الأمر git pull origin master في المسار الذي قمت في الأصل باستنساخ المستودع. | بعد ذلك، تحتاج إلى تحديث شيفرة Homestead المصدرية. إذا قمت باستنساخ المستودع، يمكنك تنفيذ الأمر <code>git pull origin master</code> في المسار الذي قمت في الأصل باستنساخ المستودع. | ||
إذا ثبّتَ Homestead عبر ملف <code>composer.json</code> للمشروع، يجب التأكد من أن ملف <code>composer.json</code> يحتوي على "laravel/homestead": "^7" ثم حدِّث الاعتماديات الخاصة بك:<syntaxhighlight lang="text"> | |||
composer update | composer update | ||
</syntaxhighlight> | |||
إعدادات محددة للمزود | == إعدادات محددة للمزود == | ||
=== VirtualBox === | |||
==== natdnshostresolver ==== | |||
بشكل افتراضي، يقوم Homestead بضبط إعداد <code>natdnshostresolver</code> إلى on. يسمح ذلك لبرمجية Homestead باستخدام إعدادات DNS لنظام التشغيل المضيف. إذا كنت ترغب في تجاوز هذا السلوك، فأضف الأسطر التالية إلى ملف <code>Homestead.yaml</code>:<syntaxhighlight lang="text"> | |||
provider: virtualbox | provider: virtualbox | ||
natdnshostresolver: off | |||
</syntaxhighlight> | |||
==== الروابط الرمزية على نظام ويندوز ==== | |||
إذا لم تعمل الارتباطات الرمزية (symbolic links) بشكل صحيح على نظام ويندوز الخاص بك، فقد تحتاج إلى إضافة كتلة الضبط التالية إلى Vagrantfile:<syntaxhighlight lang="php"> | إذا لم تعمل الارتباطات الرمزية (symbolic links) بشكل صحيح على نظام ويندوز الخاص بك، فقد تحتاج إلى إضافة كتلة الضبط التالية إلى Vagrantfile:<syntaxhighlight lang="php"> | ||
config.vm.provider "virtualbox" do |v| | config.vm.provider "virtualbox" do |v| | ||
سطر 532: | سطر 475: | ||
== مصادر == | == مصادر == | ||
* [https://laravel.com/docs/5.6/homestead صفحة استخدام Laravel Homestead في توثيق Laravel الرسمي.] | * [https://laravel.com/docs/5.6/homestead صفحة استخدام Laravel Homestead في توثيق Laravel الرسمي.] | ||
[[تصنيف:Laravel|{{SUBPAGENAME}}]] | |||
[[تصنيف:Laravel Getting started|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 13:48، 18 أبريل 2019
مقدمة
يسعى Laravel جاهدًا لجعل تجربة تطوير PHP بأكملها مبهجة، بما في ذلك بيئة التطوير المحلية الخاصة بك. يوفر Vagrant طريقة بسيطة وأنيقة لإدارة وتوفير الأجهزة الوهمية.
Laravel Homestead هو عبارة عن منصة وهمية لـ Vargant Box الرسمي، أُنشِئ مسبقًا ويوفر لك بيئة تطوير رائعة دون أن يتطلب منك تثبيت PHP وخادم ويب وأي برنامج خادم آخر على جهازك المحلي. لا داعي للقلق حول تعطل نظام التشغيل الخاص بك! يمكن التخلص من أجهزة رVargant بالكامل. إذا حدث خطأ ما، فيمكنك حذف جهاز Vargant وإعادة إنشائه في دقائق!
يعمل Homestead على أي نظام سواءً كان ويندوز أو ماك أو لينكس وتتضمن خادم الويب Nginx و PHP 7.2 و PHP 7.1 و PHP 7.0 و PHP 5.6 و MySQL و PostgreSQL و Redis و Memcached و Node وجميع الأشياء الأخرى التي تحتاج إليها تطوير تطبيقات Laravel مذهلة.
إذا كنت تستخدم ويندوز، فقد تحتاج إلى تمكين ميزة التسارع العتادي للأنظمة الوهمية (VT-x). يمكن عادةً تمكينه عبر BIOS الخاص بك. إذا كنت تستخدم Hyper-V على نظام UEFI، فقد تحتاج أيضًا إلى تعطيل Hyper-V من أجل الوصول إلى VT-x.
البرامج المضمنة
- Apache (اختياري)
- MySQL
- MariaDB (اختياري)
- Sqlite3
- PostgreSQL
- Composer
- Node (مع Yarn و Bower و Grunt و Gulp)
- Redis
- Memcached
- Beanstalkd
- Mailhog
- Neo4j (اختياري)
- MongoDB (اختياري)
- Elasticsearch (اختياري)
- ngrok
- wp-cli
- Zend Z-Ray
- Go
- Minio
التثبيت والإعداد
الخطوات الأولى
قبل بدء بيئة Homestead الخاصة بك، يجب تثبيت VirtualBox 5.2 أو VMWare أو Parallels أو Hyper-V بالإضافة إلى Vagrant. توفر كافة حزم البرامج هذه برامج تثبيت مرئية سهلة الاستخدام لكافة أنظمة التشغيل الشائعة.
حتى تكون قادراً على استخدام مزود VMware، سوف تحتاج إلى شراء كل من VMware Fusion / Workstation والمنصة الوهمية VMware Vagrant. على الرغم من أنه غير متوافر مجانًا، فإن VMware قادر على تزويد مجلد مشاركة بأداء سريع خارج المنصة.
حتى تستخدم مزود Parallel، سوف تحتاج إلى تثبيت المكون الإضافي وهو Parallels Vagrant. وهو مجاني.
بسبب قيود البيئة الوهمية Vagrant، فإن مزود Hyper-V يتجاهل جميع إعدادات الشبكة.
تثبيت Homestead Vagrant Box
بمجرد تثبيت VirtualBox أو VMware مع Vagrant، يجب إضافة بيئة laravel/homestead
إلى تثبيت Vagrant باستخدام الأمر التالي في الطرفية الخاصة بك. سيستغرق تنزيل الملف عدة دقائق، اعتمادًا على سرعة الاتصال بالإنترنت:
vagrant box add laravel/homestead
إذا فشل هذا الأمر، فتأكد من أن تحديث Vagrant محدث.
تثبيت Homestead
يمكنك تثبيت Homestead عن طريق استنساخ المستودع. فكر في استنساخ المستودع في مجلد Homestead داخل مجلد "المنزل"، حيث سيعمل مربع "Homestead" كمضيف لجميع مشاريع Laravel:
git clone https://github.com/laravel/homestead.git ~/Homestead
يجب عليك التحقق من إصدار موسوم من Homestead لأن الفرع master قد لا يكون دائمًا ثابتًا. يمكنك العثور على أحدث إصدار ثابت على صفحة إصدار GitHub:
cd ~/Homestead
//استنساخ الاصدار المطلوب...
git checkout v7.9.0
وبمجرد الانتهاء من استنساخ قاعدة Homestead، شغِّل الأمر bash init.sh
من المجلد Homestead لإنشاء ملف ضبط Homestead.yaml
. سيوضع ملف Homestead.yaml
في المجلد Homestead:
// نظام ماك أو لينكس
bash init.sh
// ويندووز
init.bat
ضبط Homestead
إعداد مقدّم الخدمة الخاص بك
يشير مفتاح provider
في ملف Homestead.yaml
الخاص بك إلى مزود الذي يفترض على Vargant أن يستخدمه: virtualbox أو vmware_fusion أو vmware_workstation parallels أو hyperv. بإمكانك أن تحدد هذا إلى المزود الذي ترغب به:
provider: virtualbox
ضبط المجلدات المشتركة
تحتوي الخاصية folders
الخاصة بملف Homestead.yaml
على جميع المجلدات التي ترغب في مشاركتها مع بيئة العمل Homestead الخاصة بك. والملفات الموجودة في هذه المجلدات ستتغير، سوف تبقى محفوظة في عملية مزامنة بين الجهاز المحلي وبيئة Homestead. وربما ستقوم بضبط العديد من الملفات المشتركة حسب الضرورة:
folders:
- map: ~/code
to: /home/vagrant/code
إذا كنت تُنشِئ بعض المواقع الإلكترونية لنفسك، فستكون بنية المجلدات الافتراضية مناسبة لك. وبالرغم من ذلك، لمّا أن أعداد المواقع الإلكترونية مستمر في النمو، فربما ستبدأ في اكتساب خبرة لأداء المشاكل. هذه المشكلة ستظهر بشكل واضح ومؤلم على الأجهزة الضعيفة أو المشاريع التي تحتوي على عدد كبير من الملفات. اذا كنت على دراية بهذه المشكلة، حاول أن تربط كل مشروع إلى مجلد Vargant مخصص له:
folders:
- map: ~/code/project1
to: /home/vagrant/code/project1
- map: ~/code/project2
to: /home/vagrant/code/project2
لتمكين NFS، سوف تحتاج لإضافة علامة بسيطة على الملف المتزامن مع ملف الضبط:
folders:
- map: ~/code
to: /home/vagrant/code
type: "nfs"
عند استخدام NFS، يجب أن تضع في الحسبان تثبيت البرنامج المساعد vagrant-bindfs. سيحافظ هذا المكون الإضافي على أذونات المستخدمين , المجموعات الصحيحة للملفات والمجلدات داخل بيئة Homestead.
يمكنك أيضًا تمرير أي خيار مدعوم بواسطة المجلدات المتزامنة في بيئة Vagrant بوضعها تحت مفتاح option
:
folders:
- map: ~/code
to: /home/vagrant/code
type: "rsync"
options:
rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
rsync__exclude: ["node_modules"]
ضبط مواقع Nginx
لست على معرفة بخادم Nginx؟ ليس هناك أى مشكلة. تسمح لك خاصية sites
تعيين "نطاق" (domain) بسهولة إلى مجلد في بيئة Homestead الخاصة بك. يتم ضم ضبط عينة موقع في ملف Homestead.yaml
. مرة أخرى، يمكنك إضافة العديد من المواقع إلى بيئة Homestead حسب الضرورة. يمكن أن تكون Homestead بمثابة بيئة ملائمة ومحاكاة لكل مشروع Laravel تعمل عليه:
sites:
- map: homestead.test
to: /home/vagrant/code/Laravel/public
إذا قمت بتغيير خاصية sites
بعد تزويد بيئة Homestead، فيجب إعادة تشغيل vagrant reload --provision
لتحديث ضبط Nginx على الجهاز الوهمي.
ملف الاستضافات
يجب إضافة "النطاقات" لمواقع Nginx إلى ملف 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
تشغيل بيئة Vagrant
بمجرد أن تحرر 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
بضبط توجيهات folders
و sites
في ملف Homestead.yaml
تلقائيًا.
على أنظمة لينكس أو ماك:
php vendor/bin/homestead make
على نظام ويندوز:
vendor\\bin\\homestead make
بعد ذلك، قم بتشغيل الأمر vagrant up
والوصول إلى مشروعك على http://homestead.test في متصفحك. تذكر أنك ستظل بحاجة إلى إضافة إدخال ملف /etc/hosts
لـ homestead.test
أو النطاق الذي تختاره.
تثبيت MariaDB
إذا كنت تفضل استخدام قاعدة البيانات MariaDB بدلاً من MySQL، فيمكنك إضافة خيار MariaDB إلى ملف Homestead.yaml
الخاص بك. سيؤدي هذا الخيار إلى إزالة MySQL وتثبيت MariaDB. يعمل MariaDB كبديل بديل عن MySQL لذا يجب عليك استخدام برنامج تشغيل قاعدة بيانات MySQL في ضبط قاعدة بيانات التطبيق الخاص بك:
box: laravel/homestead
ip: "192.168.10.10"
memory: 2048
cpus: 4
provider: virtualbox
mariadb: true
تثبيت قاعدة بيانات MongoDB
لتثبيت إصدار MongoDB Community قم بتحديث ملف Homestead.yaml
الخاص بك مع خيار الضبط التالي:
mongodb: true
تثبيت قاعدة بيانات MongoDB الافتراضي سيعمل على إعادة تعيين اسم مستخدم إلى homestead و كلمة مرور مطابقة إلى secret.
تثبيت Elasticsearch
لتثبيت Elasticsearch، أضف خيار elasticsearch إلى ملف Homestead.yaml
وحدد إصدارًا مدعومًا، والذي قد يكون إصدارًا رئيسيًا أو رقم إصدار دقيق (major.minor.patch). سوف ينشئ التثبيت الافتراضي شبكةً عنقوديةً (cluster) باسم "homestead". يجب ألا تعطي Elasticsearch أبداً أكثر من نصف ذاكرة نظام التشغيل، لذا تأكد من أن جهاز Homestead الخاص به لديه على الأقل ضعف المخصص لنظام Elasticsearch:
box: laravel/homestead
ip: "192.168.10.10"
memory: 4096
cpus: 4
provider: virtualbox
elasticsearch: 6
راجع توثيق Elasticsearch للتعرف على كيفية تخصيص الضبط الخاص بك.
تثبيت Neo4j
Neo4j هو نظام إدارة قواعد البيانات الرسومية. لتثبيت إصدار Neo4j Community قم بتحديث ملف Homestead.yaml
الخاص بك مع خيار الضبط التالي:
neo4j: true
سيقوم الإعداد الافتراضي Neo4j بتعيين اسم المستخدم لقاعدة البيانات إلى homestead وكلمة المرور المطابقة إلى secret. للوصول إلى متصفح Neo4j، قم بزيارة http://homestead.test:7474
عبر متصفح الويب الخاص بك. المنافذ 7687 (Bolt) و 7474 (HTTP) و 7473 (HTTPS) على استعداد لتقديم طلبات من عميل Neo4j.
الأسماء البديلة
يمكنك إضافة الأسماء البديلة (aliases) لصدفة Bash إلى الجهاز Homestead الخاص بك عن طريق تعديل ملف aliases داخل دليل Homestead الخاص بك:
alias c='clear'
alias ..='cd ..'
بعد تحديثك لملف aliases، يجب إعادة توفير جهاز الجهاز الرئيسي باستخدام أمر vagrant reload --provision
. سيضمن ذلك توفر الأسماء البديلة الجديدة على الجهاز.
الاستخدام اليومي
الوصول إلى Homestead العام
في بعض الأحيان قد ترغب في تشغيل vagrant up على جهاز Homestead الخاص بك من أي مكان على نظام الملفات الخاص بك. يمكنك القيام بذلك على أنظمة ماك أو لينكس بإضافة دالة Bash
إلى ملف تعريف Bash الخاص بك (Bash profile). أما على ويندوز، قد تحقق هذا من خلال إضافة ملف "batch" إلى المتغير 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
يمكنك وضع SSH في جهازك الافتراضي بتنفيذ الأمر ssh vagrant
من مجلد Homestead الخاص بك.
ولكن لمّا كنت ستحتاج على الأرجح إلى SSH في جهاز Homestead الخاص بك بشكل متكرر، فجرّب إضافة "الدالة" المذكورة أعلاه إلى جهازك المضيف إلى SSH بسرعة في بيئة Homestead.
الاتصال بقواعد البيانات
تكون قاعدة بيانات homestead لكل من MySQL و PostgreSQL مضبوطةً افتراضيًا. لراحة أكبر، ضبط ملف .env Laravel
. لاستخدام قاعدة البيانات مع إطار العمل مباشرةً.
للاتصال بقاعدة بيانات MySQL أو PostgreSQL من عميل قاعدة بيانات جهازك المضيف، يجب عليك الاتصال بالمضيف 127.0.0.1 والمنفذ 33060 (MySQL) أو 54320 (PostgreSQL). اسم المستخدم وكلمة المرور لكل من قواعد البيانات هو homestead / secret.
يجب عليك فقط استخدام هذه المنافذ غير القياسية عند الاتصال بقواعد البيانات من الجهاز المضيف. ستستخدم المنفذين 3306 و 5432 الافتراضيين في ملف ضبط قاعدة بيانات Laravel نظرًا لأن Laravel يعمل داخل الجهاز الظاهري.
النسخ الاحتياطي لقاعدة البيانات
يستطيع Homestead أن يعمل على نسخ قاعدة البيانات الخاصة بك بشكل تلقائي عندما يتم حذف جهاز Vargant. للاستفادة من هذه الميزة، يجب أن تستخدم Vagrant 2.1.0 أو أعلى. أو، إذا كنت تستخدم إصدارًا قديمًا من Vagrant، فيجب عليك تثبيت الإضافة vagrant-triggers. لتمكين النسخ الاحتياطي التلقائي لقاعدة البيانات، أضف السطر التالي إلى ملف Homestead.yaml
:
backup: true.
بمجرد انتهاء عملية الضبط، سيُصدِّر Homestead قواعد البيانات إلى مجلدي mysql_backup و postgres_backup عند تنفيذ الأمر vagrant destroy
. يمكن العثور على هذه المسارات في المجلد حيث قمت باستنساخ Homestead أو في جذر المشروع إذا كنت تستخدم أسلوب التثبيت لكل مشروع.
إضافة مواقع أخرى
بمجرد أن يتم توفير بيئة Homestead وتشغيلها، قد ترغب في إضافة مواقع Nginx إضافية لتطبيقات Laravel الخاصة بك. يمكنك تشغيل أكبر عدد ممكن من عمليات Laravel كما تريد في بيئة واحدة في Homestead. لإضافة موقع إضافي، أضف الموقع إلى ملف Homestead.yaml
الخاص بك:
sites:
- map: homestead.test
to: /home/vagrant/code/Laravel/public
- map: another.test
to: /home/vagrant/code/another/public
إذا كان Vagrant لا يدير ملف "hosts" الخاص بك تلقائيًا، فقد تحتاج إلى إضافة الموقع الجديد إلى ذلك الملف أيضًا:
192.168.10.10 homestead.test
192.168.10.10 another.test
بمجرد إضافة الموقع، شغِّل الأمر vagrant reload –provision
من مجلد Homestead الخاص بك.
أنواع الموقع
تدعم Homestead عدة أنواع من المواقع التي تسمح لك بتشغيل المشاريع التي لا تعتمد على Laravel بسهولة. على سبيل المثال، يمكننا بسهولة إضافة تطبيق Symfony إلى Homestead باستخدام نوع موقع symfony2:
sites:
- map: symfony2.test
to: /home/vagrant/code/Symfony/web
type: "symfony2"
أنواع المواقع المتاحة هي: apache و apigility و expressive و laravel (الافتراضي) و proxy و silverstripe و statamic و symfony2 و symfony4 و zf.
مقاييس الموقع
يمكنك إضافة قيم Nginx fastcgi_param إضافية إلى موقعك عبر توجيه موقع params. على سبيل المثال، سنقوم بإضافة المعامل FOO بقيمة BAR:
sites:
- map: homestead.test
to: /home/vagrant/code/Laravel/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
يوفر Laravel طريقة ملائمة لجدولة وظائف Cron من خلال جدولة schedule:run
بشكل فردي من خلال أمر Artisan ليتم تشغيله كل دقيقة. سوف يفحص schedule:run
جدولة المهام المحددة في فئة التطبيق App\Console\Kernel
لتحديد المهام التي يجب تشغيلها.
إذا كنت ترغب في تشغيل الأمر schedule:run
ليتم تشغيله لموقع Homestead، فيمكنك تعيين خيار schedule
على true
عند تحديد الموقع:
sites:
- map: homestead.test
to: /home/vagrant/code/Laravel/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
ضبط Minio
يوفر Minio طبقة تخزين متوافقة مع S3 على جهازك Homestead عبر منفذ 9600. لاستخدام Minio، حدِّث ملف Homestead.yaml الخاص بك مع خيار الضبط التالي:
minio: true
بشكل افتراضي، يتوافر Minio على المنفذ 9600. يمكنك الوصول إلى لوحة التحكم Minio بالانتقال إلى http://homestead: 9600. مفتاح الوصول الافتراضي هو homestead، في حين أن المفتاح السري الافتراضي هو secretkey. عند الوصول إلى Minio، يجب دائمًا استخدام المنطقة us-east-1.
بعد ذلك، ستحتاج إلى ضبط تهيئة القرص 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_URL الصحيح:
AWS_ACCESS_KEY_ID=homestead
AWS_SECRET_ACCESS_KEY=secretkey
AWS_DEFAULT_REGION=us-east-1
AWS_URL=http://homestead:9600
البوابات
بشكل افتراضي، يُعاد توجيه المنافذ التالية إلى بيئة Homestead الخاصة بك:
- SSH: 2222: يُمرَّر إلى 22
- ngrok UI: 4040 : يُمرَّر إلى 4040
- HTTP: 8000: يُمرَّر إلى 80
- HTTPS: 44300: يُمرَّر إلى 443
- MySQL: 33060: يُمرَّر إلى 3306
- PostgreSQL: 54320: يُمرَّر إلى 5432
- MongoDB: 27017: يُمرَّر إلى 27017
- Mailhog: 8025: يُمرَّر إلى 8025
- Minio: 9600 : يُمرَّر إلى 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
ملاحظة: هذه الميزة متوافقة فقط مع Nginx.
قدمت Homestead 6 الدعم للإصدارات المتعددة من PHP على نفس الجهاز الوهمي.. يمكنك تحديد أي إصدار من PHP لاستخدامه لموقع معين داخل ملف Homestead.yaml
الخاص بك. إصدارات PHP المتاحة هي: "5.6" و "7.0" و "7.1" و "7.2" (الافتراضي):
sites:
- map: homestead.test
to: /home/vagrant/code/Laravel/public
php: "5.6"
بالإضافة إلى ذلك، يمكنك استخدام أي من إصدارات PHP المدعومة عبر CLI:
php5.6 artisan list
php7.0 artisan list
php7.1 artisan list
php7.2 artisan list
خوادم الويب
تستخدم Homestead خادم الويب Nginx بشكل افتراضي. ومع ذلك، يمكن تثبيت Apache إذا تم تحديد apache كنوع موقع. بينما يمكن تثبيت كلا خادمَي الويب في نفس الوقت، لا يمكن تشغيل كلاهما في نفس الوقت. يتوفر الأمر flip
لتسهيل عملية التبديل بين خوادم الويب. يقوم الأمر flip
تلقائيًا بتحديد خادم الويب الذي يعمل، وإيقاف تشغيله، ثم بدء تشغيل الخادم الآخر. لاستخدام هذا الأمر، سجِّل دخولك عبر SSH إلى جهاز Homestead الخاص بك وشغِّل الأمر في الطرفية الخاصة بك:
flip
البريد
يشمل Homestead عميل نقل البريد Postfix، والذي يستمع على المنفذ 1025 بشكل افتراضي. لذلك، يمكنك إرشاد التطبيق الخاص بك لاستخدام برنامج تشغيل البريد smtp على منفذ localhost 1025. ثم سيتم التعامل مع كافة البريد المرسلة بواسطة Postfix ويتم اكتشافها بواسطة Mailhog. لعرض رسائل البريد الإلكتروني المرسلة، افتح http://localhost:8025 في متصفح الويب الخاص بك.
واجهات الشبكة
تقوم الخاصية networks في الملفـ Homestead.yaml
بضبط واجهات شبكة الاتصال لبيئة بيئة العمل الخاصة بك. يمكنك ضبط العديد من الواجهات حسب الضرورة:
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
يمكنك تمديد Homestead باستخدام البرنامج النصي after.sh
في جذر دليل Homestead. ضمن هذا الملف ، يمكنك إضافة أي أوامر shell ضرورية لتكوين جهازك الوهمي وتخصيصه بشكل صحيح.
عند تخصيص Homestead ، قد يسألك Ubuntu عما إذا كنت ترغب في الاحتفاظ بتكوين الحزمة الأصلي أو الكتابة فوقه بملف تكوين جديد. لتجنب ذلك ، يجب عليك استخدام الأمر التالي عند تثبيت الحزم لتجنب الكتابة فوق أي تكوين سبق أن كتبه Homestead:
sudo apt-get -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
install your-package
تحديث Homestead
يمكنك تحديث Homestead في خطوتين بسيطتين. أولاً، يجب تحديث بيئة Vagrant باستخدام الأمر :
vagrant box update
بعد ذلك، تحتاج إلى تحديث شيفرة Homestead المصدرية. إذا قمت باستنساخ المستودع، يمكنك تنفيذ الأمر git pull origin master
في المسار الذي قمت في الأصل باستنساخ المستودع.
إذا ثبّتَ Homestead عبر ملف composer.json
للمشروع، يجب التأكد من أن ملف composer.json
يحتوي على "laravel/homestead": "^7" ثم حدِّث الاعتماديات الخاصة بك:
composer update
إعدادات محددة للمزود
VirtualBox
natdnshostresolver
بشكل افتراضي، يقوم Homestead بضبط إعداد natdnshostresolver
إلى on. يسمح ذلك لبرمجية Homestead باستخدام إعدادات DNS لنظام التشغيل المضيف. إذا كنت ترغب في تجاوز هذا السلوك، فأضف الأسطر التالية إلى ملف Homestead.yaml
:
provider: virtualbox
natdnshostresolver: off
الروابط الرمزية على نظام ويندوز
إذا لم تعمل الارتباطات الرمزية (symbolic links) بشكل صحيح على نظام ويندوز الخاص بك، فقد تحتاج إلى إضافة كتلة الضبط التالية إلى Vagrantfile:
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end