أريد أن أشارك تجربتي في ترجمة Apache 2.4 إلى PCRE2 ، حيث أن PHP 7 كانت تدعم مكتبة PCRE2 لفترة طويلة ، ولا يزال Apache Software Foundation مفتوح المصدر.
بالطبع ، ربما أكون قبل إصدار Apache مع دعم PCRE2 الآن ، لأنني أستخدم المصادر من Apache geo ، التي تخبرنا عن دعم PCRE2 أمر ممكن بالفعل في الإصدار التالي ، لكن بالنسبة لأولئك الذين يريدون بالفعل دعم PCRE2 في Apache 2.4 ، والذين لا يريدون الانتظار الافراج عن تقاسم واحدة من الطرق.
تفترض المقالة أنك تجمع كل البرامج اللازمة من المصدر ، وقائمة من البرامج والإصدارات في وقت كتابة هذا التقرير:
PCRE2-10.33
أبريل 1.7.0
أبريل-استخدام 1.6.1
أباتشي المتشعب 2.4.41الخطوة الأولى: بناء وتجميع PCRE2
سنحذف لحظة تنزيل المصدر من المصادر لأنه واضح جدًا ، لذلك قمت بفك ضغط الأرشيف ، وانتقل إلى المجلد المصدر PCRE2 ، وقم بتشغيل الأمر التالي لدعم UTF:
./configure --prefix=/etc/webserver/pcre2-1033 --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode
في البادئة ، حدد المسار الخاص بك إذا كنت لا ترغب في استخدام الموقع القياسي لتثبيت المكتبة:
--prefix=///
خلاف ذلك ، جمع دون بادئة.
تشير الأوامر المتبقية إلى تضمين كتل الشفرة 8 بت و 16 بت و 32 بت PCRE ، في هذا النموذج ، تم إجراء التجميع معهم.
وبالطبع ، نقوم بتجميع هذه الحالة باستخدام التنفيذ المتسلسل للأوامر:
make make install
إذا سارت جميع القواعد والتجميع بسلاسة ، فانتقل إلى الخطوة التالية.
الخطوة الثانية: توصيل مكتبة PCRE2 بـ APR
نظرًا لأن Apache يقوم بتجميع المصادر باستخدام APR ، نحتاج إلى توصيل المكتبة في APR نفسها ، وإلا فقد تكون هناك أخطاء حول وظائف غير معروفة في مصادر Apache ، لأننا سنستخدم وظائف PCRE2 الجديدة.
سنحذف لحظة تنزيل المصدر من المصادر لأنه واضح للغاية ، لذلك قمت بفك ضغط الأرشيف وتكوين APR:
./configure --prefix=/etc/webserver/apr-170
من الطبيعي أن تشير إلى المسار في البادئة إذا كنت لا ترغب في استخدام الموقع القياسي لتثبيت المكتبة ، أو لا تحدد:
--prefix=///
بعد الانتهاء من التكوين ، انتقل إلى الدليل: /etc/webserver/srcsrv/apr-1.7.0/build
حسنًا ، أو: / / مسارك / إلى المكتبة / البناء
ابحث عن ملف apr_rules.mk في هذا الدليل ، وأضفه في نهاية السطر حيث:
EXTRA_LIBS=-lrt -lcrypt -lpthread -ldl
اتصال المكتبة:
-lpcre2-8 -L/// pcre2/lib
حفظ ، انتقل إلى الدليل الجذر لمصادر APR: / your / path / إلى المكتبة.
تجميع لدينا تعديل أبريل:
make make install
إذا سارت جميع القواعد والتجميع بسلاسة ، فانتقل إلى الخطوة التالية.
الخطوة الثالثة: بناء APR- استخدام لأباتشي من المصدر
لقد قمت بتنزيل هذه المكتبة من مكتب المصدر ، وانتقل إلى المجلد الجذر للأرشيف الذي تم فك حزمه باستخدام APR- ، وأدخل الأوامر التالية بالتتابع:
./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/// apr make make install
من الطبيعي أن تشير إلى المسار في البادئة إذا كنت لا ترغب في استخدام الموقع القياسي لتثبيت المكتبة ، أو لا تحدد:
--prefix=///
هنا أيضا نربط أبريل لدينا:
--with-apr=/// apr
الخطوة الرابعة: تنزيل مصادر من Apache Git لدعم PCRE2
هام: قم بتنزيل المصدر من أحدث إصدار من gita.
نحتاج إلى تنزيل مصدرين ، مثل ap_regex.h و util_pcre.c ، الروابط أدناه:
ap_regex.hutil_pcre.cالآن نذهب إلى دليل مصدر Apache httpd ، ونبني Apache بالأوامر التالية:
./configure --prefix=/etc/webserver/apache-2441 --with-apr=/// apr --with-apr-util=/// apr-util --with-pcre=/// pcre2/bin/pcre2-config
من الطبيعي أن تشير إلى المسار في البادئة إذا كنت لا ترغب في استخدام الموقع القياسي لتثبيت المكتبة ، أو لا تحدد:
--prefix=/// Apache httpd
أيضًا ، حدد أوامر إضافية لبناء Apache وفقًا لتقديرك ، أعني الأوامر لتمكين تعطيل الوحدات والمكتبات.
بعد ذلك ، انتقل إلى دليل مصدر Apache httpd ، لدي هذا:
/etc/webserver/srcsrv/httpd-2.4.41
تذهب بشكل طبيعي إلى الدليل الخاص بك ، واستبدلها في الدليل:
/etc/webserver/srcsrv/httpd-2.4.41/include
ملف ap_regex.h ، الذي قمنا بتنزيله من بوابة Apache.
انتقل أيضًا إلى الدليل:
/etc/webserver/srcsrv/httpd-2.4.41/server
استبدل ملف util_pcre.c بـ Apache الذي نزّلناه منه
الآن يبقى لإضافة اتصال PCRE2 في Apache نفسه ، تحتاج إلى العثور على ملف ap_config_auto.h ، وهو موجود في الدليل:
/etc/webserver/srcsrv/httpd-2.4.41/include
في بداية هذا الملف ، أدخل الأسطر التالية:
#define HAVE_PCRE2 1
حسنًا ، نحن الآن على استعداد للحظة الحقيقية لتجميع Apache httpd بدعم PCRE2.
نذهب إلى دليل مصدر Apache httpd ، ونجمع هذه الحالة باستخدام التنفيذ المتسلسل للأوامر:
make make install
الآن ، إذا سارت الأمور على ما يرام ودون أخطاء ، فسوف تقوم بتجميع وتجميع Apache httpd بدعم PCRE2 ، مما يعني حدوث تغييرات إيجابية في وحدات Apache باستخدام تعبيرات PCRE العادية ، أحدها إعادة كتابة الوحدة النمطية.
في الختام ، هذه الطريقة تجعل من الممكن استخدام PCRE2 قبل الإصدار من Apache Software Foundation ، وآمل أن يتم إصدار نسخة تدعم PCRE2 قريبًا.
أيضًا ، أثناء اختبار معيار .htaccess ، لم تحدث أية أخطاء ، إذا كان لدى أي شخص أخطاء في التعليقات.
PS
لقد كنت منزعجًا قليلاً من حالة استخدام إصدارين مختلفين من PCRE لمجموعتي ، وقررت إصلاحه.