PCRE2 ለ Apache 2.4 ድጋፍ እንዴት እንደሚሰራ

Apache 2.4 ን ወደ PCRE2 የመተርጎም ልምዴን ላካፍል እፈልጋለው ምክንያቱም ፒኤችፒ 7 እንኳን PCRE2 ላይብረሪውን ለረጅም ጊዜ ይደግፈዋል ነገር ግን ክፍት ምንጭ Apache Software Foundation አሁንም አይረዳም።
በእርግጥ ከ Apache git ምንጮቹን እየተጠቀምኩ ስለሆነ አሁን ምናልባት ከPPCRE2 ድጋፍ ጋር ከ Apache ልቀት እቀድማለሁ ፣ ይህም በሚቀጥለው ልቀት ውስጥ PCRE2 ድጋፍ ቀድሞውኑ የሚቻል መሆኑን ይነግረናል ፣ ግን ቀድሞውኑ የ PCRE2 ድጋፍን ለሚፈልጉ Apache 2.4፣ እና ልቀትን መጠበቅ የማይፈልጉት አንዱን መንገድ እጋራለሁ።

ጽሁፉ በሚጽፉበት ጊዜ ሁሉንም አስፈላጊ ሶፍትዌሮችን ከምንጭ ኮድ፣ የሶፍትዌር ዝርዝር እና ስሪቶች እየሰበሰቡ እንደሆነ ያስባል፡-

PCRE2-10.33
APR 1.7.0
APR-util 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-ቢት ፣ 16-ቢት እና 32-ቢት PCRE ኮድ ብሎኮች ድጋፎችን ማካተትን ያመለክታሉ ፣ በዚህ ስሪት ውስጥ ስብሰባው ከእነሱ ጋር ተካሂዷል።

እና በእርግጥ ፣ ይህንን ነገር በቅደም ተከተል ትዕዛዞችን አፈፃፀም እንጠቀማለን-

make
make install

ሁሉም ነገር ጥሩ ከሆነ እና ማጠናቀር ያለ ስህተቶች ከሄደ ወደሚቀጥለው ደረጃ ይሂዱ።

ደረጃ ሁለት፡ የ PCRE2 ቤተ-መጽሐፍትን ከ APR ጋር ያገናኙ

Apache 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 ምንጮች ስርወ ማውጫ ሂድ፡/ያንተ/መንገድ/ወደ ቤተ-መጽሐፍት።

የተሻሻለውን APRን እናጠናቅቅ፡-

make
make install

ሁሉም ነገር ጥሩ ከሆነ እና ማጠናቀር ያለ ስህተቶች ከሄደ ወደሚቀጥለው ደረጃ ይሂዱ።

ደረጃ ሶስት፡ ከምንጮች ለ Apache APR-util ይገንቡ

ይህን ቤተ-መጽሐፍት ከምንጩ አውርደሃል፣ ወደ ያልታሸገው ማህደር root አቃፊ በAPR-util ሂድ እና የሚከተሉትን ትዕዛዞች በቅደም ተከተል አስገባ።

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

ቤተ መፃህፍቱን ለመጫን መደበኛውን ቦታ ለመጠቀም ካልፈለጉ ወይም ካልገለፁት በቅድመ-ቅጥያው ውስጥ መንገድዎን ይጠቁማሉ፡-

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

እንዲሁም የእኛን APR እዚህ ጋር እናገናኘዋለን፡

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

ደረጃ አራት፡ PCRE2ን ለመደገፍ ምንጮችን ከ Apache 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 ን ለመገንባት ተጨማሪ ትዕዛዞችን በእርስዎ ምርጫ መግለጽ ይችላሉ፣ እኔ ማለት ሞጁሎችን እና ቤተ-መጻሕፍትን የማንቃት ወይም የማሰናከል ትዕዛዞችን ማለቴ ነው።

በመቀጠል ወደ የኛ 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

ፋይሉን 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

አሁን ፣ ሁሉም ነገር በጥሩ ሁኔታ ከሄደ እና ያለምንም ስህተት ፣ ከዚያ Apache httpd ን ከ PCRE2 ድጋፍ ጋር ተሰብስበው ያጠናቅቃሉ ፣ ይህ ማለት PCRE መደበኛ መግለጫዎችን በሚጠቀሙ Apache ሞጁሎች ውስጥ አዎንታዊ ለውጦች ማለት ነው ፣ ከእነዚህ ውስጥ አንዱ Module rewrite ነው።

ለማጠቃለል ፣ ይህ ዘዴ ከ Apache ሶፍትዌር ፋውንዴሽን በይፋ ከመለቀቁ በፊት PCRE2 ን ለመጠቀም ያስችላል ፣ የ PCRE2 ድጋፍ ያለው ስሪት በቅርቡ እንደሚወጣ ተስፋ አደርጋለሁ።

እንዲሁም, መደበኛ .htaccess በሚሞከርበት ጊዜ, ምንም ስህተቶች አልተከሰቱም, ማንኛውም ሰው ስህተት ካለው, በአስተያየቶቹ ውስጥ ይፃፉ.

PS

ለቁልል ሁለት የተለያዩ የ PCRE ስሪቶችን በመጠቀሜ ሁኔታ ትንሽ ግራ ተጋብቼ ነበር, እና ለማስተካከል ወሰንኩ.

ምንጭ: hab.com

አስተያየት ያክሉ