زه غواړم د اپاچي 2.4 څخه PCRE2 ته د ژباړلو تجربه شریک کړم، ځکه چې حتی PHP 7 د اوږدې مودې لپاره د PCRE2 کتابتون ملاتړ کړی، مګر د خلاصې سرچینې اپاچی سافټویر بنسټ لاهم نه کوي.
البته، زه اوس شاید د PCRE2 ملاتړ سره د اپاچي خوشې کولو څخه مخکې یم، ځکه چې زه د اپاچي ګیټ سرچینې کاروم، کوم چې موږ ته وایي چې د PCRE2 ملاتړ لا دمخه په راتلونکي ریلیز کې ممکن دی، مګر د هغو کسانو لپاره چې دمخه یې د PCRE2 ملاتړ غواړي. اپاچی 2.4، او څوک چې نه غواړي خوشې کولو ته انتظار وکړي زه یوه لاره شریکوم.
مقاله فرض کوي چې تاسو د سرچینې کوډ څخه ټول اړین سافټویر راټول کوئ ، د لیکلو په وخت کې د سافټویر او نسخو لیست:
PCRE2-10.33
اپریل 1.7.0
APR- تر 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-bit، 16-bit او 32-bit PCRE کوډ بلاکونو لپاره د ملاتړ شاملول په ګوته کوي، پدې نسخه کې مجلس د دوی سره ترسره شوی.
او البته، موږ دا شی د حکمونو د ترتیب اجرا کولو په کارولو سره تالیف کوو:
make
make install
که هرڅه سم وي او تالیف پرته له خطا تیر شو ، راتلونکي مرحلې ته لاړشئ.
دوهم ګام: د PCRE2 کتابتون له APR سره وصل کړئ
څرنګه چې اپاچي د APR په کارولو سره سرچینې تالیف کوي، موږ اړتیا لرو چې کتابتون پخپله په APR کې شامل کړو، که نه نو ممکن د اپاچي سرچینو کې د نامعلومو فعالیتونو په اړه غلطۍ وي، ځکه چې موږ به د 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/ 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، لاندې لینکونه:
اوس خپل د اپاچي 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 ملاتړ سره د اپاچي httpd تالیف کولو اصلي شیبې ته چمتو یو.
راځئ چې زموږ د اپاچي httpd سرچینې ډایرکټر ته لاړ شو او دا په ترتیب سره د کمانډونو په اجرا کولو سره تالیف کړو:
make
make install
اوس، که هرڅه سم او پرته له خطا تیر شول، نو تاسو به د PCRE2 ملاتړ سره د اپاچي httpd راټول او تالیف کړی وي، دا پدې مانا ده چې د اپاچي ماډلونو کې مثبت بدلونونه چې د PCRE منظم بیانونه کاروي، یو له دې څخه د موډل بیا لیکل دي.
په پایله کې، دا طریقه د اپاچي سافټویر فاؤنڈیشن څخه د خوشې کیدو دمخه د PCRE2 کارول ممکنه کوي، زه امید لرم چې د PCRE2 ملاتړ سره به ډیر ژر خپور شي.
همدارنګه، د معیاري .htaccess ازموینې په جریان کې، کومه تېروتنه نده شوې، که څوک کومه تېروتنه ولري، په نظرونو کې یې ولیکئ.
PS
زه زما د سټیک لپاره د PCRE دوه مختلف نسخو کارولو وضعیت څخه یو څه مغشوش وم ، او ما پریکړه وکړه چې دا حل کړم.
سرچینه: www.habr.com