اپاچی 2 کے لیے PCRE2.4 سپورٹ کیسے بنایا جائے۔

میں اپاچی 2.4 کو PCRE2 میں ترجمہ کرنے کے اپنے تجربے کو شیئر کرنا چاہوں گا، چونکہ PHP 7 نے بھی PCRE2 لائبریری کو طویل عرصے سے سپورٹ کیا ہے، لیکن اوپن سورس اپاچی سافٹ ویئر فاؤنڈیشن اب بھی ایسا نہیں کرتا ہے۔
یقیناً، میں اب شاید PCRE2 سپورٹ کے ساتھ اپاچی کی ریلیز سے آگے ہوں، کیونکہ میں اپاچی گٹ کے ذرائع استعمال کر رہا ہوں، جو ہمیں بتاتا ہے کہ اگلی ریلیز میں PCRE2 سپورٹ پہلے سے ہی ممکن ہے، لیکن ان لوگوں کے لیے جو پہلے ہی PCRE2 سپورٹ چاہتے ہیں۔ اپاچی 2.4، اور جو ریلیز کا انتظار نہیں کرنا چاہتے میں ایک طریقہ شیئر کرتا ہوں۔

مضمون یہ فرض کرتا ہے کہ آپ سورس کوڈ سے تمام ضروری سافٹ ویئر جمع کر رہے ہیں، لکھنے کے وقت سافٹ ویئر اور ورژن کی فہرست:

PCRE2-10.33
اپریل 1.7.0۔
اپریل 1.6.1 تک
اپاچی 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 بٹ، 16 بٹ اور 32 بٹ پی سی آر ای کوڈ بلاکس کے لیے سپورٹ کی شمولیت کی نشاندہی کرتی ہیں، اس ورژن میں ان کے ساتھ اسمبلی کی گئی تھی۔

اور ظاہر ہے، ہم اس چیز کو ترتیب وار حکموں پر عمل درآمد کا استعمال کرتے ہوئے مرتب کرتے ہیں:

make
make install

اگر سب کچھ ٹھیک ہے اور تالیف غلطیوں کے بغیر ہوئی ہے تو اگلے مرحلے پر جائیں۔

دوسرا مرحلہ: PCRE2 لائبریری کو APR سے جوڑیں۔

چونکہ اپاچی ذرائع کو اے پی آر کا استعمال کرتے ہوئے مرتب کرتا ہے، اس لیے ہمیں لائبریری کو اے پی آر میں ہی شامل کرنے کی ضرورت ہے، ورنہ اپاچی کے ذرائع میں نامعلوم فنکشنز کے بارے میں غلطیاں ہوسکتی ہیں، کیونکہ ہم نئے 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

اب اپنی اپاچی httpd سورس ڈائرکٹری پر جائیں اور درج ذیل کمانڈز کے ساتھ اپاچی بنائیں۔

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

فطری طور پر، اگر آپ لائبریری کو انسٹال کرنے کے لیے معیاری مقام استعمال نہیں کرنا چاہتے ہیں، یا اگر آپ وضاحت نہیں کرتے ہیں تو آپ سابقہ ​​میں اپنے راستے کی نشاندہی کرتے ہیں:

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

آپ اپنی صوابدید پر اپاچی بنانے کے لیے اضافی کمانڈز بھی بتا سکتے ہیں، میرا مطلب ہے ماڈیولز اور لائبریریوں کو فعال یا غیر فعال کرنے کے لیے۔

اگلا ہم اپنی اپاچی httpd سورس ڈائرکٹری پر جاتے ہیں، میرے پاس یہ ہے:

/etc/webserver/srcsrv/httpd-2.4.41

آپ قدرتی طور پر اپنی ڈائرکٹری میں جاتے ہیں، ڈائرکٹری میں تبدیل کریں:

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

فائل ap_regex.h، جسے ہم نے اپاچی گٹ سے ڈاؤن لوڈ کیا ہے۔

ہم ڈائریکٹری میں بھی جاتے ہیں:

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

ہم util_pcre.c فائل کو اس فائل سے بدل دیتے ہیں جسے ہم نے اپاچی گٹ سے ڈاؤن لوڈ کیا تھا۔

اب صرف اپاچی میں ہی PCRE2 کنکشن شامل کرنا باقی ہے، آپ کو فائل ap_config_auto.h تلاش کرنے کی ضرورت ہے، یہ ڈائریکٹری میں موجود ہے:

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

اس فائل کے بالکل شروع میں، درج ذیل لائنیں داخل کریں:

/* Load PCRE2 */
#define HAVE_PCRE2 1

ٹھیک ہے، اب ہم PCRE2 سپورٹ کے ساتھ Apache httpd کو مرتب کرنے کے حقیقی لمحے کے لیے تیار ہیں۔
آئیے اپنی اپاچی httpd سورس ڈائرکٹری پر جائیں اور ترتیب وار حکموں پر عمل کرتے ہوئے اسے مرتب کریں:

make
make install

اب، اگر سب کچھ ٹھیک رہا اور غلطیوں کے بغیر، تو آپ نے PCRE2 سپورٹ کے ساتھ Apache httpd کو اسمبل اور کمپائل کیا ہوگا، جس کا مطلب ہے کہ اپاچی ماڈیولز میں مثبت تبدیلیاں جو PCRE ریگولر ایکسپریشنز استعمال کرتی ہیں، ان میں سے ایک Module rewrite ہے۔

آخر میں، یہ طریقہ اپاچی سافٹ ویئر فاؤنڈیشن کی جانب سے باضابطہ ریلیز سے پہلے PCRE2 کا استعمال ممکن بناتا ہے، مجھے امید ہے کہ PCRE2 سپورٹ والا ورژن جلد ہی جاری کیا جائے گا۔

اس کے علاوہ، معیاری .htaccess کی جانچ کے دوران، کوئی غلطی نہیں ہوئی، اگر کسی کو کوئی غلطی ہو تو کمنٹس میں لکھیں۔

PS

میں اپنے اسٹیک کے لیے PCRE کے دو مختلف ورژن استعمال کرنے کی صورت حال سے تھوڑا الجھن میں تھا، اور میں نے اسے ٹھیک کرنے کا فیصلہ کیا۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں