అపాచీ 2 కోసం PCRE2.4 మద్దతును ఎలా తయారు చేయాలి

నేను Apache 2.4ని PCRE2కి అనువదించడంలో నా అనుభవాన్ని పంచుకోవాలనుకుంటున్నాను, ఎందుకంటే PHP 7 కూడా PCRE2 లైబ్రరీకి చాలా కాలం పాటు మద్దతునిస్తోంది, కానీ ఓపెన్ సోర్స్ Apache Software Foundation ఇప్పటికీ అలా చేయలేదు.
వాస్తవానికి, నేను ఇప్పుడు PCRE2 మద్దతుతో Apache విడుదల కంటే ముందు ఉన్నాను, ఎందుకంటే నేను Apache git నుండి మూలాలను ఉపయోగిస్తున్నాను, ఇది PCRE2 మద్దతు తదుపరి విడుదలలో ఇప్పటికే సాధ్యమవుతుందని మాకు తెలియజేస్తుంది, కానీ ఇప్పటికే PCRE2 మద్దతును కోరుకునే వారికి Apache 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-బిట్, 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/to the library.

మా సవరించిన APRని కంపైల్ చేద్దాం:

make
make install

ప్రతిదీ సరిగ్గా ఉంటే మరియు సంకలనం లోపాలు లేకుండా జరిగితే, తదుపరి దశకు వెళ్లండి.

దశ మూడు: మూలాల నుండి Apache కోసం APR-utilని రూపొందించండి

మీరు మూలాధారం నుండి ఈ లైబ్రరీని డౌన్‌లోడ్ చేసారు, APR-utilతో ప్యాక్ చేయని ఆర్కైవ్ యొక్క రూట్ ఫోల్డర్‌కి వెళ్లి, కింది ఆదేశాలను వరుసగా నమోదు చేయండి:

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

సహజంగానే, మీరు లైబ్రరీని ఇన్‌స్టాల్ చేయడానికి ప్రామాణిక స్థానాన్ని ఉపయోగించకూడదనుకుంటే లేదా మీరు పేర్కొనకపోతే మీ మార్గాన్ని ఉపసర్గలో సూచిస్తారు:

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

మేము మా APRని కూడా ఇక్కడ కనెక్ట్ చేస్తాము:

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

దశ నాలుగు: PCRE2కి మద్దతు ఇవ్వడానికి Apache git నుండి మూలాలను డౌన్‌లోడ్ చేయండి

ముఖ్యమైనది: మేము git యొక్క తాజా ఎడిషన్ నుండి మూలాలను డౌన్‌లోడ్ చేస్తాము.

మేము 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 httpd సోర్స్ డైరెక్టరీకి వెళ్తాము, నా దగ్గర ఇది ఉంది:

/etc/webserver/srcsrv/httpd-2.4.41

మీరు సహజంగా మీ డైరెక్టరీకి వెళ్లి, డైరెక్టరీలో భర్తీ చేయండి:

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

మేము Apache git నుండి డౌన్‌లోడ్ చేసిన ap_regex.h ఫైల్.

మేము డైరెక్టరీకి కూడా వెళ్తాము:

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

మేము Apache git నుండి డౌన్‌లోడ్ చేసిన దానితో 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ని కంపైల్ చేసే నిజమైన క్షణం కోసం సిద్ధంగా ఉన్నాము.
మన Apache httpd సోర్స్ డైరెక్టరీకి వెళ్లి, ఆదేశాలను వరుసగా అమలు చేయడం ద్వారా దీన్ని కంపైల్ చేద్దాం:

make
make install

ఇప్పుడు, ప్రతిదీ సరిగ్గా జరిగితే మరియు లోపాలు లేకుండా జరిగితే, మీరు PCRE2 మద్దతుతో Apache httpdని సమీకరించి, కంపైల్ చేస్తారు, అంటే PCRE సాధారణ వ్యక్తీకరణలను ఉపయోగించే Apache మాడ్యూల్స్‌లో సానుకూల మార్పులు, వీటిలో ఒకటి మాడ్యూల్ రీరైట్.

ముగింపులో, ఈ పద్ధతి అపాచీ సాఫ్ట్‌వేర్ ఫౌండేషన్ నుండి అధికారిక విడుదలకు ముందు PCRE2ని ఉపయోగించడం సాధ్యం చేస్తుంది, PCRE2 మద్దతుతో కూడిన సంస్కరణ త్వరలో విడుదల చేయబడుతుందని నేను ఆశిస్తున్నాను.

అలాగే, ప్రామాణిక .htaccess పరీక్ష సమయంలో, ఎటువంటి లోపాలు సంభవించలేదు, ఎవరికైనా ఏవైనా లోపాలు ఉంటే, వ్యాఖ్యలలో వ్రాయండి.

PS

నా స్టాక్ కోసం PCRE యొక్క రెండు వేర్వేరు వెర్షన్‌లను ఉపయోగించే పరిస్థితిని చూసి నేను కొంచెం గందరగోళానికి గురయ్యాను మరియు దాన్ని పరిష్కరించాలని నిర్ణయించుకున్నాను.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి