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 ያሉ ሁለት ምንጮችን ከታች አገናኞች ማውረድ አለብን፡-
አሁን ወደ 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