تجميع وتثبيت وحدات PHP مخصصة في ServBay (macOS)
يُعتبر ServBay بيئة تطوير ويب محلية قوية مصممة خصيصًا لنظام macOS، حيث يدمج باقات برمجية واسعة تلبي احتياجات مطوري الويب العصريين. يأتي مزودًا بشكل مسبق بـ PHP، Node.js، Python، Go، Java، قواعد بيانات مثل MySQL وPostgreSQL وMongoDB، أدوات التخزين المؤقت مثل Redis، بالإضافة إلى خوادم الويب Caddy وNginx وApache. يوفر ServBay دعماً لتعدد الإصدارات لكل باقة برمجية، ما يتيح لك التبديل بسهولة بين البيئات حسب الحاجة في مشاريعك.
ورغم أن ServBay يأتي مزوداً بالعديد من وحدات PHP الشائعة، قد تجد في بعض الحالات حاجة لتجميع وتثبيت وحدات PHP إضافية لتوسيع وظائف PHP أو لدمج خدمات طرف ثالث محددة.
سيوفر لك هذا الدليل خطوة بخطوة كيفية تجميع وتثبيت وحدات PHP مخصصة لإصدار PHP الذي تستخدمه مع ServBay. سنأخذ كمثال وحدة معالجة الصور الشهيرة imagick
ووحدة تعريف قاعدة بيانات Microsoft SQL Server sqlsrv
، وسنشرح العملية بالتفصيل حتى تتمكن من إضافة الوظائف التي تحتاجها بسهولة إلى بيئة PHP على ServBay.
الشروط المسبقة
تنبيه هام
قبل البدء في تجميع أي وحدة PHP، الخطوة الأكثر أهمية هي تهيئة بيئة التجميع وضبط متغيرات البيئة الخاصة بالنظام بشكل صحيح وفقًا لتعليمات وثائق ServBay الرسمية. هذا أمر أساسي لنجاح عملية تجميع أي باقة برمجية من ServBay (بما في ذلك وحدات PHP). إذا تم تجاوز هذه الخطوة أو تنفيذها بشكل خاطئ، فمن المرجح أن تفشل عمليات التجميع لاحقًا، وتظهر أخطاء مثل عدم العثور على أوامر، مكتبات أو ملفات رؤوس.
سيقوم سكربت تهيئة بيئة التجميع في ServBay بضبط متغيرات البيئة الأساسية مثل PATH
(ليشير إلى أدوات البناء داخل ServBay)، وSERVBAY_PACKAGE_FULL_PATH
(يشير إلى مجلد باقات ServBay الجذرية)، وCPU_NUMBER
(لاستخدام أنوية المعالج المتعددة في التجميع). هذه المتغيرات ضرورية لاستكمال أوامر التجميع اللاحقة بنجاح.
للاطلاع على خطوات تهيئة بيئة التجميع بالتفصيل، يرجى الرجوع إلى الوثيقة: استخدام ServBay لإعادة التجميع. تأكد من استيعابك الكامل للتعليمات الواردة هناك وتنفيذ كل المتطلبات بدقة.
قبل المتابعة في تجميع الوحدات، تأكد تمامًا أنك أنهيت تهيئة بيئة التجميع الخاصة بـ ServBay بنجاح، وأن جميع متغيرات البيئة الأساسية مفعّلة في جلسة الطرفية الحالية.
أهمية تحديد إصدار PHP
واحدة من المزايا الأساسية في ServBay هي دعم تثبيت وتشغيل عدة إصدارات من PHP على النظام نفسه، مما يمنح المطورين مرونة التبديل حسب احتياجات مشروعاتهم. ومع ذلك، عند تجميع وحدة PHP، يجب استهداف الإصدار المعين من PHP. هذا لأن الأدوات الأساسية للتحضير للتجميع والحصول على معلومات التكوين (مثل phpize
وphp-config
) مرتبطة بشكل وثيق بإصدار محدد من PHP.
phpize
: سكربت يُستخدم لتحضير بيئة تجميع وحدة PHP. يقوم بقراءة ملفconfig.m4
ويولد سكربتconfigure
(وهي خطوة شائعة في بناء البرامج بلغة C/C++).php-config
: يقدم معلومات عن تركيب إصدار PHP المستهدف، مثل إعدادات المترجم، مجلدات التضمين، مجلدات المكتبات ودليل تثبيت الإضافات. يستدعي سكربتconfigure
هذا السكربت للقيام بالإعدادات الدقيقة المطلوبة.
بالتالي، عند استخدام phpize
وphp-config
أو أي أمر بنائي مرتبط بـPHP، يجب عليك ذكر المسار الكامل للأداة للإصدار المطلوب. مثلاً، لو أردت تجميع وحدة من أجل PHP 8.3 المثبت عبر ServBay، عليك استخدام /Applications/ServBay/package/php/8.3/current/bin/phpize
و/Applications/ServBay/package/php/8.3/current/bin/php-config
. استخدام الإصدار الصحيح يضمن توافق الوحدة مع بيئتك ويمنع أخطاء التجميع والمشكلات في وقت التشغيل.
أمثلة هذا الدليل تعتمد على PHP 8.3 في ServBay. أثناء التطبيق الفعلي، استبدل المسارات بما يتوافق مع إصدار وتثبيت PHP لديك على ServBay.
تجميع وحدة PHP imagick
وحدة imagick
هي واحدة من أكثر إضافات PHP شهرة لمعالجة الصور، مبنية على مكتبة ImageMagick القوية، وتتيح إجراء عمليات معقدة كتصغير الصور، القص، تحويل الصيغ، إضافة العلامة المائية، التركيب وغيرها. هذه خطوات تجميع وتثبيت imagick لإصدار PHP معين على ServBay:
الخطوة 1: تثبيت مكتبة ImageMagick
تحتاج imagick إلى مكتبة ImageMagick مثبتة على النظام. على macOS، يوصى باستخدام Homebrew لإدارة الحزم. إذا لم تكن Homebrew مثبتة لديك، زر موقع Homebrew الرسمي لمعرفة كيفية التثبيت.
افتح الطرفية ونفذ الأمر التالي لتثبيت ImageMagick ومكتبات التطوير:
brew install imagemagick
الخطوة 2: تنزيل كود مصدر وحدة imagick
قم بتحميل الكود المصدري للوحدة من موقع PECL الرسمي. زر صفحة imagick في PECL واختر النسخة التي تحتاجها (عادة الأحدث). مثالاً هنا سنستخدم الإصدار 3.7.0
:
wget https://pecl.php.net/get/imagick-3.7.0.tgz
الخطوة 3: فك ضغط الكود والدخول إلى المجلد
بعد الانتهاء من التحميل، فك ضغط الملف ثم ادخل مجلد الكود المصدري:
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
2
الخطوة 4: تحضير بيئة التجميع باستخدام phpize
من مجلد الكود المصدري، استخدم أداة phpize
الخاصة بإصدار PHP المستهدف (استخدم المسار الكامل). افتراضًا ستستخدم PHP 8.3 وقمت بضبط المتغير SERVBAY_PACKAGE_FULL_PATH
مسبقًا:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
عند النجاح سيقوم phpize بإنشاء سكربت configure
اللازم وتهيئة بيئة البناء.
الخطوة 5: ضبط خيارات التجميع
نفذ سكربت configure
مع تحديد مسار php-config
الخاص بإصدار PHP المستهدف:
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
سيبحث السكربت عن مكتبات ImageMagick وملفات الرؤوس ويضبط إنشاء ملف Makefile. إذا ظهرت أخطاء، تحقق من تثبيت الوظائف المطلوبة أو المسارات.
الخطوة 6: التجميع والتثبيت
بعد نجاح الضبط وإنشاء ملف Makefile، قم بتنفيذ الأوامر التالية لتجميع وتثبيت الوحدة (اعتمادًا على متغير ${CPU_NUMBER} لتسريع العملية):
make -j ${CPU_NUMBER}
make install
2
سيتم نقل ملف imagick.so
الناتج تلقائياً إلى مجلد إضافات PHP الخاص بالإصدار المستهدف في ServBay.
الخطوة 7: تفعيل الوحدة
بعد التثبيت، تحتاج إلى تفعيل الوحدة من إعدادات PHP للإصدار المعني عبر الواجهة الرسومية لServBay.
- افتح برنامج ServBay
- من القائمة الجانبية، اختر
اللغات
-PHP
-PHP 8.3
- في قائمة الإعدادات بالجهة اليمنى، اختر تبويب
PHP
ومرر للأسفل حتى قسم "خيارات إضافية"، وأضف السطرextension=imagick.so
- اضغط
حفظ
ليتم إعادة تشغيل PHP تلقائياً وقراءة الإعداد الجديد
الخطوة 8: التحقق من تحميل الوحدة
بعد تفعيل الوحدة، أعد تشغيل حزمة PHP في ServBay حتى تسري الإعدادات. يمكنك عمل ذلك من لوحة تحكم ServBay أو عبر أداة الأوامر في ServBay (راجع الوثائق لمزيد من التفاصيل).
للتحقق من تفعيل وحدة imagick من الطرفية:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick
سيظهر "imagick" ضمن قائمة الوحدات الفعالة إذا تم الأمر بنجاح.
لتحقق أكثر دقة، ضع ملف PHP بسيط في مجلد www (المسار الافتراضي /Applications/ServBay/www
) وليكن اسمه info.php
ومحتواه:
<?php phpinfo(); ?>
ثم افتحه عبر المتصفح عبر الرابط http://localhost/info.php
أو اسم النطاق المحلي لموقعك على ServBay. ابحث عن "imagick" في صفحة الإخراج لتتأكد من تفعيله وراجع تفاصيل التكوين والإصدار.
تجميع وحدة PHP sqlsrv/pdo_sqlsrv
وحدات sqlsrv
وpdo_sqlsrv
هي وحدات رسمية للربط والتعامل مع قواعد بيانات Microsoft SQL Server. تعتمد على برنامج ODBC المقدم من مايكروسوفت. إذا أردت ربط بيئة PHP في ServBay بـSQL Server، عليك تجميع وتثبيت هذه الوحدات. إليك الخطوات اللازمة في ServBay:
تنبيه: متطلبات أساسية هامة
لتجميع وتثبيت وحدة sqlsrv
على macOS، يجب أولاً تثبيت برنامج تشغيل Microsoft SQL Server ODBC (msodbcsql18
) وأدوات الأوامر المرتبطة (mssql-tools18
). هذه الحزم ليست مرفقة مع ServBay ويجب تثبيتها يدويًا.
ننصح بتثبيتهم عبر Homebrew. إذا لم يكن Homebrew مثبتًا لديك يرجى زيارة الموقع الرسمي لـ Homebrew.
لتثبيت برامج Microsoft ODBC عبر Homebrew (قد يُطلب منك الموافقة على اتفاقية الترخيص عبر متغير HOMEBREW_ACCEPT_EULA=Y
):
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools18
2
3
تأكد من تثبيت هذه المتطلبات بنجاح قبل محاولة تجميع الوحدة. عادةً ما تُثبت الملفات في /opt/homebrew/
(على أجهزة Apple Silicon) أو /usr/local/
(على أجهزة Intel). ستحتاج هذه المسارات أثناء التجميع.
تلميح
وحدتا sqlsrv
وpdo_sqlsrv
منفصلتان ويجب تجميع كل واحدة على حدة بنفس الطريقة، سنشرح أدناه تجميع sqlsrv كمثال.
الخطوة 1: تثبيت سواقات ODBC من مايكروسوفت والأدوات
(كما شرحنا أعلاه عبر Homebrew - تأكد من إتمام ذلك أولاً.)
الخطوة 2: الحصول على كود وحدة sqlsrv
قم بتحميل الكود المصدري لكل من sqlsrv وpdo_sqlsrv من صفحة sqlsrv في PECL حسب الإصدار المطلوب ـ سنستخدم هنا الإصدار 5.12.0
كمثال:
wget https://pecl.php.net/get/sqlsrv-5.12.0.tgz # sqlsrv
wget https://pecl.php.net/get/pdo_sqlsrv-5.12.0.tgz # pdo_sqlsrv
2
الخطوة 3: فك الضغط والدخول للمجلد
بعد التحميل، فك ضغط الكود وادخل المجلد:
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# كرر الأمر لـ pdo_sqlsrv إذا رغبت، نكمل الشرح على sqlsrv
2
3
4
الخطوة 4: تحضير بيئة التجميع عبر phpize
من داخل مجلد الكود، استخدم الأداة phpize
الخاصة بـPHP المستهدف (استخدم المسار الكامل):
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
الخطوة 5: ضبط خيارات التجميع مع مسارات الاعتماديات
نظرًا لاعتماد sqlsrv بشدة على برامج ODBC وunixODBC التي ثبتناها عبر Homebrew، يجب ضبط متغيرات البيئة عند تشغيل ./configure
لتوفير مسارات المكتبات (LDFLAGS
) وملفات الرؤوس (CPPFLAGS
). لا تنس أيضاً تعيين مسار php-config
الصحيح.
فيما يلي مثال يفترض أن Homebrew مثبت في /opt/homebrew
(غيّر المسارات حسب جهازك):
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}"
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
2
3
LDFLAGS
: لضبط مسار مكتبات الربط.CPPFLAGS
: لمسارات ملفات الرؤوس.- استخدم
${CPPFLAGS}
و${LDFLAGS}
للحفاظ على إعدادات ServBay الإفتراضية.
الخطوة 6: التجميع والتثبيت
بعد الضبط الناجح وإنشاء Makefile، نفذ أوامر التجميع والتثبيت:
make -j ${CPU_NUMBER}
make install
2
سينقل ملف sqlsrv.so
وأيضًا pdo_sqlsrv.so
إذا قمت بتجميعها، إلى مجلد إضافات PHP المناسب.
الخطوة 7: تفعيل الوحدة
قم بتفعيل الوحدة من إعدادات PHP عبر واجهة سيرف باي الرسومية:
- افتح برنامج ServBay
- اختر من القائمة:
اللغات
-PHP
-PHP 8.3
- من الإعدادات الجانبية: ابحث عن قسم "خيارات إضافية" وأضف السطور
extension=sqlsrv.so
وextension=pdo_sqlsrv.so
- اضغط
حفظ
وستتم إعادة تشغيل PHP تلقائياً
الخطوة 8: تحقق من تحميل الوحدة
بعد تفعيل الوحدة، أعد تشغيل PHP في ServBay ليتم تحميل الإعدادات الجديدة.
تحقق من تفعيل وحدتي sqlsrv وpdo_sqlsrv بأوامر الطرفية التالية:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep sqlsrv
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep pdo_sqlsrv
2
إذا ظهرت الوحدات بالإخراج فهذا يعني أنه تم تحميلها بنجاح. يمكنك التأكد أيضاً عن طريق دالة phpinfo()
.
الأسئلة المتكررة (FAQ)
- س: ماذا إذا ظهر الخطأ "Cannot find autoconf" أثناء التجميع؟
- ج: هذا غالبًا بسبب عدم تهيئة بيئة التجميع الخاصة بـ ServBay بشكل صحيح. ارجع إلى جزء "الشروط المسبقة" أعلاه وراجع وثيقة استخدام ServBay لإعادة التجميع ونفذ جميع الخطوات. تأكد أيضًا من تثبيت الأدوات المطلوبة مثل autoconf وautomake وlibtool وربطها بالمسارات البيئية بشكل صحيح. أعد تشغيل الطرفية بعد تنفيذ تهيئة البيئة.
- س: فشل تنفيذ سكربت
configure
مع خطأ عدم العثور على مكتبة أو ملف رأس؟- ج: هذا عمره يعود غالباً إما لعدم تثبيت الاعتمادية المطلوبة أو عدم إيجاد المسار الصحيح لها.
- imagick: تأكد من تثبيت مكتبة ImageMagick للتطوير عبر الأمر
brew install imagemagick
. - sqlsrv: تأكد من تثبيت Microsoft ODBC Driver (
msodbcsql18
) وmssql-tools18
عبر Homebrew، وضبط متغيرات البيئةLDFLAGS
وCPPFLAGS
بما يتضمن مسارات Homebrew كما شرحنا. - تأكد من أن مسار Homebrew مضمن في متغير PATH الخاص ببيئة التجميع أو ضف مسارات bin يدويًا إذا لزم الأمر.
- imagick: تأكد من تثبيت مكتبة ImageMagick للتطوير عبر الأمر
- ج: هذا عمره يعود غالباً إما لعدم تثبيت الاعتمادية المطلوبة أو عدم إيجاد المسار الصحيح لها.
- س: ماذا إذا فشل أمر
make
أوmake install
؟- ج: قد تكون إحدى الأسباب التالية:
- نقص في اعتمادات البناء: راجع رسائل الخطأ بدقة وستجد غالبًا اسم المكتبة أو الملف المطلوب؛ ثبّت الاعتماديات بناءً على ذلك.
- خطأ في الإعداد: ارجع لخطوة
configure
وتحقق من المسارات والإعدادات خاصة مسار--with-php-config
. - مشكلة صلاحيات: في بعض الأحيان تحتاج لـ
sudo make install
لو واجهت خطأ نسخ ملف إلى مسار في ServBay، استخدمه بحذر. - عطب في الكود المصدري: أعد تنزيل وتجميع الحزمة من جديد.
- ج: قد تكون إحدى الأسباب التالية:
- س: قمت بتجميع وحدة
.so
وتفعيلها في إعدادات PHP لكن لا تظهر فيphp -m
أوphpinfo()
؟- ج:
- السبب الأكثر شيوعاً: عدم إعادة تشغيل حزمة PHP في ServBay بعد تفعيل الإعدادات الجديدة. تأكد من إعادة تشغيل حزمة PHP وليس فقط الخادم (apache/nginx). يكفي عمل ذلك من لوحة تحكم ServBay.
- خطأ في كتابة ملف .ini: تحقق من السطر
extension=modulename.so
. - خطأ في مسار مجلد الإضافات: تحقق من أن إعداد
extension_dir
في php.ini يشير للمسار الصحيح (يمكنك الحصول عليه عبر أمرphp-config --extension-dir
). - الكود المصدري غير متوافق أو متضرر: أعد التجميع واختر نسخاً مناسبة من الكود وPHP. راجع سجل أخطاء PHP في مجلد logs الخاص بـ ServBay.
- ج:
الخلاصة
باتباع الخطوات التفصيلية المذكورة أعلاه، ستتمكن من تجميع وتثبيت وحدات PHP المخصصة مثل imagick
وsqlsrv
في بيئة تطوير ServBay على macOS بنجاح. تذكر النقاط الحرجة التالية:
- تهيئة بيئة التجميع الخاصة بـ ServBay بالشكل الصحيح والكامل: الشرط الأساسي لأي عمليات تجميع لاحقة.
- تحديد الإصدار الصحيح من PHP بدقة: احرص على استخدام المسار الكامل لـ
phpize
وphp-config
الخاص بالإصدار الذي تريده أثناء التجميع. - حل جميع المتطلبات والاعتماديات الخارجية: ثبت كل المكتبات والأدوات اللازمة بحسب احتياج الوحدة (مثل ImageMagick، Microsoft ODBC). استخدم متغيرات البيئة (LDFLAGS, CPPFLAGS) عند configure لتحديد المسارات.
- تفعيل الوحدات بشكل صحيح: أضف أو عدل ملفات ini أسفل مجلد conf.d للإصدار المطلوب وأضف السطر extension=modulename.so.
- إعادة تشغيل حزمة PHP في ServBay: لتطبيق التعديلات عليها وتحميل الوحدات الجديدة.
يمنحك ServBay بيئة تطوير محلية شاملة ومرنة لدعم مشاريعك المتنوعة، مع دعم مجمع واسع لتقنيات مثل MySQL، PostgreSQL، MongoDB، Redis، Caddy، Nginx، Apache، Node.js، Python، Go، Java، .NET، Ruby، Rust، وغيرها. كما يحتوي على خصائص قوية مثل إصدار شهادات SSL حقيقية عبر ACME، إعداد CORS بسهولة، نسخ احتياطي تلقائي للبيانات والإعدادات والشهادات، إعادة تعيين كلمة مرور root لقواعد البيانات، وصلاحية شهادات HTTPS محلية، وغير ذلك، مما يرفع من كفاءة وإنتاجية بيئة العمل.
نأمل أن يساعدك هذا الدليل في إضافة ما تحتاجه من وظائف لبيئة PHP لديك في ServBay لتسريع وتسهيل تطوير مشروعاتك. إذا تواجه أي مشكلات أخرى، ينصح دائمًا بالرجوع إلى الوثائق الرسمية أو مجتمع دعم ServBay.