البرمجة

تثبيت وتكوين Homestead لـ Laravel

تثبيت Homestead وإعداده لتشغيل تطبيقات Laravel

مقدمة

يُعد Laravel من أشهر أطر العمل لتطوير تطبيقات الويب باستخدام لغة PHP، ويتميز بسهولة الاستخدام والوضوح في البنية البرمجية. ومن أجل تطوير تطبيقات Laravel بكفاءة عالية وببيئة متكاملة، يُوصى باستخدام Laravel Homestead، وهو بيئة تطوير افتراضية معدّة مسبقًا تعتمد على Vagrant وVirtualBox، وتأتي مزودة بجميع الأدوات اللازمة لتشغيل Laravel مثل PHP، MySQL، Nginx، وRedis. يهدف هذا المقال إلى شرح خطوات تثبيت Homestead وإعداده بشكل مفصل، بحيث يتمكن المطوّر من العمل على مشاريع Laravel ضمن بيئة مرنة وآمنة تشبه بيئة الإنتاج.


المتطلبات الأساسية لتثبيت Homestead

قبل الشروع في تثبيت Homestead، هناك بعض المتطلبات الأساسية التي يجب أن تكون متوفرة على جهاز المطوّر، وهي:

  • نظام تشغيل مدعوم (Windows, macOS, Linux)

  • PHP (يفضّل إصدار 8.1 أو أعلى)

  • Git

  • VirtualBox أو VMWare (لإدارة الجهاز الافتراضي)

  • Vagrant (أداة التحكم في الأجهزة الافتراضية)

يُفضل أيضًا تثبيت Composer، مدير الحزم الرسمي للـ PHP، الذي يسهل عملية إدارة تبعيات Laravel.


الخطوة الأولى: تثبيت الأدوات الأساسية

تثبيت VirtualBox

VirtualBox هو برنامج مفتوح المصدر يسمح بإنشاء وتشغيل أجهزة افتراضية. لتثبيته:

  1. التوجه إلى الموقع الرسمي: https://www.virtualbox.org/

  2. تحميل النسخة المناسبة لنظام التشغيل.

  3. تشغيل ملف التثبيت واتباع التعليمات.

تثبيت Vagrant

Vagrant هو أداة لإدارة الأجهزة الافتراضية وتكوينها باستخدام ملفات إعدادات (Vagrantfile). لتثبيته:

  1. زيارة: https://www.vagrantup.com/

  2. تحميل النسخة المتوافقة مع نظام التشغيل.

  3. تنفيذ ملف التثبيت وتأكيد نجاح التثبيت عبر تنفيذ الأمر:

    bash
    vagrant --version

الخطوة الثانية: تثبيت Homestead

طريقة 1: استخدام Homestead كـ Box مستقل (Standalone)

الطريقة الرسمية والأكثر شيوعًا لتثبيت Homestead هي عبر تحميل الصندوق (box) الجاهز من Laravel.

1. إضافة Homestead Box إلى Vagrant

bash
vagrant box add laravel/homestead

ستقوم هذه الخطوة بتنزيل الصندوق الأساسي من الإنترنت، وهو يحتوي على بيئة Linux مهيأة لتشغيل Laravel.

2. استنساخ مستودع Homestead من GitHub

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

بعد تنزيل الملفات، يجب الدخول إلى مجلد Homestead وتشغيل سكربت الإعداد:

bash
cd ~/Homestead bash init.sh

هذا السكربت يقوم بإنشاء ملف إعدادات Homestead.yaml في مجلد المستخدم الرئيسي.


الخطوة الثالثة: إعداد Homestead.yaml

شرح مكونات Homestead.yaml

الملف Homestead.yaml هو مركز التحكم الرئيسي في كيفية إعداد الجهاز الافتراضي. فيما يلي مثال نموذجي للملف:

yaml
ip: "192.168.10.10" memory: 2048 cpus: 2 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/Projects/Laravel to: /home/vagrant/code sites: - map: laravel.test to: /home/vagrant/code/public databases: - homestead

شرح الإعدادات:

  • ip: عنوان الـ IP الخاص بالجهاز الافتراضي (يُستخدم لربط النطاق).

  • memory: حجم الذاكرة المخصصة.

  • cpus: عدد أنوية المعالج.

  • authorize و keys: مفاتيح SSH لتمكين الوصول.

  • folders: ربط مجلد على الجهاز المضيف مع الجهاز الافتراضي.

  • sites: تعريف المواقع التي ستعمل على الجهاز الافتراضي.

  • databases: إنشاء قاعدة بيانات تلقائيًا عند تشغيل الجهاز.


الخطوة الرابعة: تحديث ملف hosts

لكي يعمل النطاق المحلي (مثل laravel.test)، يجب تحديث ملف hosts على نظام التشغيل:

على نظام macOS / Linux:

bash
sudo nano /etc/hosts

على Windows:

bash
C:\Windows\System32\drivers\etc\hosts

ثم أضف السطر التالي:

192.168.10.10 laravel.test

هذا يربط النطاق laravel.test بعنوان IP الخاص بالجهاز الافتراضي.


الخطوة الخامسة: تشغيل Homestead

بعد إكمال الإعداد، يمكن تشغيل الجهاز الافتراضي بالأمر:

bash
vagrant up

وهذا يؤدي إلى:

  • تشغيل الجهاز الافتراضي باستخدام VirtualBox.

  • تحميل مجلد المشروع من الجهاز المحلي.

  • تشغيل خوادم Nginx وPHP-FPM وMySQL وغيرها.

للدخول إلى الجهاز الافتراضي:

bash
vagrant ssh

وبهذا تكون البيئة جاهزة لتشغيل Laravel.


الخطوة السادسة: تثبيت مشروع Laravel داخل Homestead

بمجرد الدخول إلى Homestead باستخدام vagrant ssh، يمكن الانتقال إلى مجلد العمل:

bash
cd code

ثم تثبيت Laravel باستخدام Composer:

bash
composer create-project laravel/laravel myApp

بعد الانتهاء من التثبيت، يمكن الوصول إلى التطبيق عبر المتصفح على:

arduino
http://laravel.test

مع مراعاة أن يكون to في Homestead.yaml يشير إلى مجلد public داخل مشروع Laravel الجديد.


تخصيص البيئة ودعم الميزات المتقدمة

دعم قواعد بيانات متعددة

Homestead يدعم MySQL وPostgreSQL وSQLite وMariaDB. لتفعيل PostgreSQL مثلًا، يمكن تعديل ملف Homestead.yaml:

yaml
databases: - homestead - blogdb

عند تشغيل vagrant up --provision يتم إنشاء القواعد تلقائيًا.

دعم Redis وMemcached

كلا الخادمين مثبتان مسبقًا ضمن Homestead. ويمكن ربط Laravel بهما مباشرة عبر ملف .env:

env
CACHE_DRIVER=redis QUEUE_CONNECTION=redis

دعم Node.js وNPM وYarn

بما أن Homestead مبني على Ubuntu، فهو يدعم أدوات الواجهة الأمامية. يمكن تثبيت Vue.js أو React بسهولة:

bash
npm install npm run dev

استخدام Homestead مع عدة مشاريع

يمكن تشغيل عدة مشاريع Laravel على Homestead من خلال إضافة أكثر من تعريف داخل مفتاح sites في Homestead.yaml:

yaml
sites: - map: project1.test to: /home/vagrant/code/project1/public - map: project2.test to: /home/vagrant/code/project2/public

وتعديل ملف hosts:

192.168.10.10 project1.test 192.168.10.10 project2.test

بعد حفظ التعديلات، يجب تشغيل الأمر:

bash
vagrant reload --provision

لإعادة تحميل الإعدادات.


صيانة Homestead وإدارتها

تحديث Homestead Box

يمكن تحديث الصندوق الأساسي باستخدام:

bash
vagrant box update

إيقاف الجهاز الافتراضي

bash
vagrant halt

إعادة تشغيل الجهاز الافتراضي

bash
vagrant reload

حذف الجهاز الافتراضي بالكامل

bash
vagrant destroy

الجدول: مقارنة بين Homestead وبيئات تطوير أخرى

الميزة Homestead XAMPP/WAMP Docker
الدعم الرسمي من Laravel نعم لا لا
سهولة الإعداد متوسط سهل صعب للمبتدئين
الأداء جيد جداً متوسط ممتاز
إمكانية التوسع عالي محدود عالي جداً
دعم Redis وPostgreSQL نعم لا (يتطلب إعداد يدوي) نعم
التوافق مع البيئة الحقيقية عالي جداً منخفض عالي جداً

خاتمة تقنية

يوفر Homestead بيئة تطوير موحدة، متكاملة وآمنة، تعكس بدرجة كبيرة بيئة الإنتاج. باستخدام Vagrant وVirtualBox، يمكن عزل مشاريع Laravel عن النظام الأساسي للمطور، مما يقلل من مشكلات التوافق ويحسن الإنتاجية. يُعد تثبيت Homestead خطوة حاسمة لأي مطور Laravel جاد في الحصول على تجربة تطوير أكثر احترافية وتنظيماً، وهو يُفضّل بشدة على أدوات السيرفرات المحلية البسيطة مثل XAMPP أو MAMP.


المراجع:

  1. Laravel Documentation – https://laravel.com/docs

  2. Homestead GitHub – https://github.com/laravel/homestead