كيفية جعل دعم PCRE2 لأباتشي 2.4

أريد أن أشارك تجربتي في ترجمة 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.h
util_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 

في بداية هذا الملف ، أدخل الأسطر التالية:

 /* Load PCRE2 */ #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 لمجموعتي ، وقررت إصلاحه.

Source: https://habr.com/ru/post/ar474556/


All Articles