Apache 2 لاءِ PCRE2.4 سپورٽ ڪيئن ڪجي

مان Apache 2.4 کي PCRE2 ۾ ترجمو ڪرڻ جو پنهنجو تجربو شيئر ڪرڻ چاهيان ٿو، ڇاڪاڻ ته PHP 7 به ڪافي عرصي تائين PCRE2 لائبريري کي سپورٽ ڪري چڪو آهي، پر اوپن سورس Apache Software Foundation اڃا نه ٿو ڪري.
يقينن، مان هاڻي شايد پي سي آر اي 2 سپورٽ سان اپاچي رليز کان اڳ ۾ آهيان، ڇو ته مان اپاچي گٽ مان ذريعن کي استعمال ڪري رهيو آهيان، جيڪو اسان کي ٻڌائي ٿو ته PCRE2 سپورٽ اڳ ۾ ئي ممڪن آهي ايندڙ رليز ۾، پر انهن لاء جيڪي اڳ ۾ ئي PCRE2 سپورٽ چاهيندا آهن. Apache 2.4، ۽ جيڪو انتظار ڪرڻ نٿا چاهين ڇڏڻ جو آئون هڪ طريقو حصيداري ڪريان ٿو.

آرٽيڪل فرض ڪري ٿو ته توهان سڀني ضروري سافٽ ويئر گڏ ڪري رهيا آهيو ماخذ ڪوڊ مان، سافٽ ويئر جي هڪ فهرست ۽ لکڻ جي وقت نسخن:

PCRE2-10.33
اپريل 1.7.0
اپريل-استعمال 1.6.1
Apache httpd 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-bit، 16-bit ۽ 32-bit 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

يا: /your/path/ to library/build

هن ڊاريڪٽري ۾ apr_rules.mk فائل ڳولھيو، ۽ آخر ۾ لائينون شامل ڪريو جتي:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

لائبريري کي ڳنڍڻ:

-lpcre2-8 -L/ваш/путь/до библиотеки pcre2/lib

محفوظ ڪريو ۽ APR ذريعن جي روٽ ڊاريڪٽري ڏانھن وڃو: /your/path/to the library.

اچو ته اسان جي تبديل ٿيل APR کي گڏ ڪريون:

make
make install

جيڪڏهن سڀ ڪجهه ٺيڪ آهي ۽ تاليف بغير ڪنهن غلطي جي، اڳتي وڌو ايندڙ قدم ڏانهن.

ٽيون قدم: ذريعن مان اپاچي لاءِ APR-util ٺاهيو

توھان ھن لائبريري کي ماخذ کان ڊائون لوڊ ڪيو آھي، APR-util سان گڏ ٿيل آرڪائيو جي روٽ فولڊر ڏانھن وڃو، ۽ ھيٺ ڏنل حڪمن کي ترتيب سان داخل ڪريو:

./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ваш/путь/до библиотеки apr
make
make install

قدرتي طور تي، توهان اڳي ۾ پنهنجو رستو ڏيکاريو ٿا جيڪڏهن توهان لائبريري کي نصب ڪرڻ لاءِ معياري جڳهه استعمال ڪرڻ نٿا چاهيو، يا جيڪڏهن توهان وضاحت نٿا ڪريو:

--prefix=/ваш/путь/до библиотеки

اسان هتي اسان جي APR کي پڻ ڳنڍيندا آهيون:

--with-apr=/ваш/путь/до библиотеки apr

قدم چار: اپاچي گٽ مان ذريعن کي ڊائون لوڊ ڪريو PCRE2 کي سپورٽ ڪرڻ لاءِ

اھم: اسان گٽ جي تازي ايڊيشن مان ذريعن کي ڊائون لوڊ ڪريون ٿا.

اسان کي ٻن ذريعن کي ڊائون لوڊ ڪرڻ جي ضرورت آهي جهڙوڪ ap_regex.h ۽ util_pcre.c، هيٺ ڏنل لنڪ:
ap_regex.h
util_pcre.c

ھاڻي پنھنجي Apache httpd ماخذ ڊاريڪٽري ڏانھن وڃو ۽ ھيٺ ڏنل حڪمن سان اپاچي ٺاھيو:

./configure --prefix=/etc/webserver/apache-2441 --with-apr=/ваш/путь/до библиотеки apr --with-apr-util=/ваш/путь/до библиотеки apr-util --with-pcre=/ваш/путь/до библиотеки pcre2/bin/pcre2-config

قدرتي طور تي، توهان اڳي ۾ پنهنجو رستو ڏيکاريو ٿا جيڪڏهن توهان لائبريري کي نصب ڪرڻ لاءِ معياري جڳهه استعمال ڪرڻ نٿا چاهيو، يا جيڪڏهن توهان وضاحت نٿا ڪريو:

--prefix=/ваш/путь/до Apache httpd

توھان پنھنجي صوابديد تي اپاچي جي تعمير لاءِ اضافي حڪم پڻ بيان ڪري سگھو ٿا، منهنجو مطلب آھي ماڊلز ۽ لائبريرين کي چالو يا غير فعال ڪرڻ لاءِ.

اڳيون اسان وڃون ٿا اسان جي Apache httpd ماخذ ڊاريڪٽري، مون وٽ ھي آھي:

/etc/webserver/srcsrv/httpd-2.4.41

توھان قدرتي طور توھان جي ڊاريڪٽري ڏانھن وڃو، ڊاريڪٽري ۾ تبديل ڪريو:

/etc/webserver/srcsrv/httpd-2.4.41/include

فائل ap_regex.h، جنهن کي اسان Apache git مان ڊائون لوڊ ڪيو.

اسان پڻ ڊاريڪٽري ڏانهن وڃو:

/etc/webserver/srcsrv/httpd-2.4.41/server

اسان util_pcre.c فائل کي تبديل ڪريون ٿا جيڪو اسان Apache git مان ڊائون لوڊ ڪيو آهي

ھاڻي اھو باقي رھيو آھي 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

هاڻي، جيڪڏهن سڀ ڪجهه ٺيڪ ٿي ويو ۽ غلطين کان سواء، ته پوء توهان PCRE2 سپورٽ سان Apache httpd کي گڏ ۽ مرتب ڪيو هوندو، جنهن جو مطلب آهي Apache ماڊلز ۾ مثبت تبديليون جيڪي PCRE ريگيولر ايڪسپريشن استعمال ڪندا آهن، انهن مان هڪ آهي ماڊل ري رائٽ.

آخر ۾، هي طريقو اهو ممڪن بڻائي ٿو PCRE2 استعمال ڪرڻ کان اڳ Apache Software Foundation کان رليز، مون کي اميد آهي ته هڪ نسخو PCRE2 سپورٽ سان جلدي جاري ڪيو ويندو.

انهي سان گڏ، معياري .htaccess جي جاچ دوران، ڪابه غلطي نه ٿي، جيڪڏهن ڪنهن کي ڪا غلطي آهي، تبصرن ۾ لکندا.

پي ايس

مان پنهنجي اسٽيڪ لاءِ PCRE جا ٻه مختلف نسخا استعمال ڪرڻ جي صورتحال کان ٿورو پريشان ٿيس، ۽ مون ان کي درست ڪرڻ جو فيصلو ڪيو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو