إدارة إصدارات PHP في ServBay: دليل التهيئة لسطر الأوامر وبيئة المواقع
يُعدّ ServBay أداة قوية لتهيئة بيئة تطوير ويب محلية، مصممة خصيصًا لأنظمة macOS، ويدعم العديد من لغات البرمجة وقواعد البيانات. يشرح هذا الدليل كيفية إدارة إصدارات PHP بسهولة ومرونة على مستوى المشروع في ServBay، سواءً لتنفيذ الأوامر البرمجية في سطر الأوامر أو لتشغيل المواقع الإلكترونية بخدمات منفصلة. بإتقان آلية إدارة إصدارات PHP في ServBay، يمكنك رفع كفاءتك وضمان عزل واستقرار بيئات مشاريعك المختلفة.
1. بيئة سطر الأوامر: إدارة إصدار PHP لكل مشروع باستخدام .servbay.config
عبر إنشاء ملف إعدادات باسم .servbay.config
في المجلد الجذري للمشروع، يمكن للمطور تحديد إصدار PHP الخاص بكل مشروع عند استخدام سطر الأوامر. يقوم ServBay تلقائيًا بتحميل بيئة PHP المناسبة بناءً على مسار المجلد الحالي، لتجنب تضارب الإعدادات بين المشاريع المختلفة.
1.1 وظيفة وآلية .servbay.config
- تحكم في الإصدارات لكل مشروع: يدعم ServBay تثبيت وتشغيل عدة إصدارات من PHP في آن واحد، بدءًا من PHP 5.6 حتى أحدث الإصدارات. باستخدام
.servbay.config
يمكنك تحديد الإصدار المطلوب بدقة لكل مشروع. - تبديل ديناميكي دون تعديل النظام: عند التنقل إلى مجلد مشروع يحوي ملف
.servbay.config
، يكتشف ServBay الملف تلقائيًا وينشئ بيئة مؤقتة عبر تعديل متغيرات البيئة لجلسة سطر الأوامر (مثل متغيرPATH
). نتيجة لذلك، تتم مناداة أوامر مثلphp
وcomposer
على إصدار PHP الذي اخترته. عند الخروج من المجلد، يعود كل شيء للوضع الافتراضي دون تأثير دائم على نظامك.
1.2 طريقة الإعداد
أنشئ ملفًا باسم .servbay.config
في المجلد الجذري للمشروع، وضع فيه التالي لتعيين إصدار PHP:
# تحديد إصدار PHP للمشروع الحالي (مثال: استخدام PHP 8.3)
PHP_VERSION=8.3
# إذا كان مشروعك يحتاج أيضًا إلى إصدار محدد من Node.js، يمكنك تحديده (مثال: Node.js 20)
# NODE_VERSION=20
2
3
4
5
- قيمة
PHP_VERSION
يجب أن تكون مطابقه للإصدارات المثبتة والمفعلة في ServBay مثل7.4
,8.1
,8.3
,8.5
. تأكد من تثبيت الإصدار الذي تحدده. - يمكنك تعيين
NODE_VERSION
بنفس الطريقة لتحديد إصدار Node.js الخاص بالمشروع.
التحقق من الإعداد:
في مجلد المشروع الذي يحتوي على .servbay.config
، افتح الطرفية ونفذ الأوامر التالية:
$ pwd # تأكد أنك في مجلد المشروع الجذري
$ php -v # تحقق أن إصدار PHP المعروض هو الإصدار الذي قمت بتعيينه (مثال: PHP 8.3.x)
$ composer install # تثبيت الاعتمادات سيتم حسب إصدار PHP المفعل حاليًا
2
3
إذا لم يتغير الإصدار بعد تعديل ملف .servbay.config
، أعد تشغيل الطرفية أو نفّذ cd .
لإجبار ServBay على تحميل الإعدادات مجددًا.
1.3 نصائح متقدمة وملاحظات هامة
- توافق الإصدارات: إذا ظهرت أخطاء (مثل "Class not found" أو "Call to undefined function") فتأكد أولًا من أن
composer.json
الخاص بالمشروع يوافق إصدار PHP المختار. بعض المشاريع القديمة قد تعتمد على مزايا أو إضافات لم تعد موجودة بالإصدارات الأحدث (مثال: إزالة امتدادmcrypt
في PHP 7.2). - القيم الافتراضية: في حال عدم وجود ملف
.servbay.config
في المجلد الحالي أو الأعلى منه، يستخدم ServBay الإعداد الافتراضي لإصدار PHP من إعدادات التطبيق الرسومية. - إدارة متعددة للغات: يمكن لـ
.servbay.config
إدارة إصدار Node.js كذلك (عبرNODE_VERSION
) خاصًة إذا كنت تستخدم أدوات بناء أمامية مثل Webpack أو Vite بجانب PHP في نفس المشروع.
1.4 مثال عملي
فيما يلي عرض توضيحي لكيفية تبديل إصدار PHP تلقائيًا بين مشاريع مختلفة باستخدام .servbay.config
:
توضيح الصورة: عند الدخول إلى مجلدات بها ملفات
.servbay.config
مختلفة على ServBay وتشغيل الأمر php -v
، يتم التبديل التلقائي لإصدار PHP حسب ما تم تحديده في الملف.
2. بيئة المواقع الإلكترونية: إدارة إصدارات PHP عبر واجهة ServBay الرسومية
تقدم الواجهة الرسومية لـ ServBay طريقة سهلة ومرئية لتعيين إصدار PHP بشكل منفصل لكل موقع. بيئة PHP الخاصة بالموقع مستقلة عن بيئة سطر الأوامر، مما يمنحك حرية كبيرة في اختيار ما يناسب متطلبات كل موقع.
2.1 خطوات التهيئة
- فتح واجهة ServBay: شغّل تطبيق ServBay على جهازك.
- الدخول لإدارة المواقع: انقر على تبويب المواقع (Websites) النافذة الجانبية اليسرى.
- إضافة أو تعديل موقع:
- لإضافة موقع جديد، انقر على زر + أسفل اليسار.
- لتعديل موقع حالي، اختره من القائمة وابدأ التعديل.
- تحديد خصائص الموقع:
- الدليل الجذري (Root Directory): اختر مجلد ملفات الموقع. يفضل استخدام المجلد الافتراضي
/Applications/ServBay/www/
ثم مجلد مشروعك، مثال:/Applications/ServBay/www/your-website-name/public
لمشاريع Laravel أو Symfony. - الدومين (Domain): تعيين اسم النطاق المحلي للوصول للموقع مثل
your-website-name.servbay.demo
. يقوم ServBay بضبط DNS محلي وإصدار شهادة HTTPS تلقائيًا (عبر ServBay User CA أو ServBay Public CA) لتسهيل التطوير. - إصدار PHP (PHP Version): اختر من القائمة المنسدلة إصدار PHP الخاص بالموقع. تظهر فقط الإصدارات المُثبتة والمفعلة في ServBay (مثل 7.4, 8.1, 8.3, 8.5).
- الدليل الجذري (Root Directory): اختر مجلد ملفات الموقع. يفضل استخدام المجلد الافتراضي
- حفظ الإعدادات: بعد التعديل، احفظ وسيقوم ServBay بتطبيق الإعدادات الجديدة تلقائيًا، مع احتمال إعادة تشغيل أو تفعيل خادم الويب وعمليات PHP-FPM ذات الصلة.
2.2 تفاصيل تقنية ومزايا
- عزل الخدمة: عادة ما يشغّل كل موقع في ServBay إصدار PHP مخصص عبر مجموعة عمليات PHP-FPM منفصلة، مما يضمن عزل بيئة كل موقع عن الآخر؛ وبالتالي فإن أخطاء أو مشكلات أحد المواقع لا تؤثر على البقية.
- تحسين الأداء: حزم ServBay (بما فيها PHP) مُحسّنة لمعالجات ARM64 (Apple Silicon) و X86_64، ما يضمن أداءً عاليًا على كافة الأجهزة.
- تشخيص الأخطاء:
- يمكن فحص أخطاء PHP في
/Applications/ServBay/var/log/php/php_error.log
. - لمراقبة حالة PHP-FPM استخدم أمر
servbayctl status php 8.3
في الطرفية.
- يمكن فحص أخطاء PHP في
2.3 تكامل خوادم الويب وقواعد البيانات
يمكِّنك ServBay من اختيار خادم الويب وقاعدة البيانات المناسبة لكل مشروع:
- دعم خوادم الويب: بدءً من الإصدار 1.7.0، يمكنك بسهولة التبديل بين Apache وNginx وCaddy لكل موقع، مع تكامل سلس مع عمليات PHP-FPM.
- إدارة قواعد البيانات: يدعم ServBay تركيب وإدارة إصدارات مختلفة من MySQL وMariaDB وPostgreSQL وMongoDB وRedis وغيرهم. بإمكانك الربط بأي قاعدة بيانات يديرها ServBay مباشرة من إعدادات الموقع أو عبر كود المشروع، وهو مثالي لدعم احتياجات المشاريع الخاصة (مثل تفضيل MariaDB 11.x مع بعض مشاريع Laravel).
3. التعاون بين البيئات وأفضل الممارسات
فهم استقلالية وتكوين بيئة سطر الأوامر والموقع الإلكتروني في إدارة إصدارات PHP يساعدك على اتخاذ الخيارات المثلى لمختلف سيناريوهات المشاريع:
السيناريو | تكوين بيئة الأوامر (.servbay.config ) | تكوين بيئة الموقع (واجهة ServBay) | ملاحظات |
---|---|---|---|
صيانة نظام قديم | عيّن PHP_VERSION=5.6 في مجلد المشروع | اختر PHP 5.6 في إعدادات الموقع | تأكد من تثبيت جميع الإصدارات والامتدادات المطلوبة لهذا المشروع في ServBay. |
تطوير مشروع حديث (مثل Laravel 11) | PHP_VERSION=8.3 (أو أحدث)، ويمكن أيضًا NODE_VERSION=20 | أنشئ موقع جديد، وجّه الدليل إلى مجلد public ، اختر PHP 8.3+ وفعّل HTTPS | احرص على تطابق إصدارات أدوات الأوامر (Composer, Artisan, Node) وبيئة الويب. |
اختبار إصدارات PHP المستقبلية | عيّن PHP_VERSION=8.5 في مجلد الاختبار | أضف موقع اختباري وحدد PHP 8.5 | خطوة استباقية لفحص التوافقية مع الإصدارات الجديدة. |
تشغيل أوامر Composer | تأكد من تحديد الإصدار الصحيح في .servbay.config بالمجلد الحالي أو الأعلى | لا ينطبق (Composer يُستخدم في الأوامر عادةً) | Composer يعتمد إصدار PHP المُحدد في جلسة الطرفية |
ملاحظات هامة
- الفرق بين CLI وبيئة الويب: رغم أن رقم الإصدار قد يكون نفسه، إلا أن تكوينات PHP كملف
php.ini
والإضافات الفعالة قد تختلف بين بيئة سطر الأوامر (CLI) وبيئة الويب (PHP-FPM). فمثلاً،opcache
مفعّل افتراضيًا في PHP-FPM لتحسين الأداء، لكنه غالبًا غير مفعل افتراضيًا في CLI. إذا لاحظت اختلاف السلوك، تحقق من ملفاتphp.ini
والإضافات حسب كل إصدار على حدة. - تحديث ServBay Runtime: احرص دائمًا على تحديث تطبيق ServBay و Runtime للوصول إلى آخر الميزات وتحسينات الأمان، حيث تصدر التحديثات بانتظام وتشمل دعمًا لأحدث إصدارات PHP وسد الثغرات.
الأسئلة الشائعة (FAQ)
س: ماذا أفعل إذا حدث تعارض بين إصدار PHP في سطر الأوامر وإصدار PHP الخاص بالموقع؟
ج: بيئة سطر الأوامر (التي تتحكم فيها بواسطة .servbay.config
) وبيئة المواقع (من خلال واجهة ServBay) مستقلتان تمامًا. يؤثر .servbay.config
فقط على أوامر php وقيم البيئة في الطرفية، فيما تحدد تهيئة الموقع إصدار PHP لمعالجة طلبات الويب عبر PHP-FPM. لا يوجد بينهما تعارض مباشر، لكن يُفضل عادة توحيد الإصدار للعمل على نفس المشروع لضمان الاتساق ما بين التطوير والتشغيل.
الخلاصة
يوفر ServBay إمكانيات قوية ومرنة لإدارة إصدارات PHP من خلال ملف .servbay.config
وواجهة الاستخدام الرسومية. سواءً كنت تطور مشاريع حديثة بأحدث الإصدارات أو تصون مشاريع قديمة، فإن ServBay يمكِّنك من عزل البيئات وتخصيص الإصدارات لأي سيناريو. استغلال هذه المزايا سيضمن لك تطابق بيئة التطوير مع بيئة الإنتاج ورفع إنتاجيتك وثبات مشاريعك.