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