Jinsi ya kutengeneza msaada wa PCRE2 kwa Apache 2.4

Ningependa kushiriki uzoefu wangu wa kutafsiri Apache 2.4 hadi PCRE2, kwani hata PHP 7 imesaidia maktaba ya PCRE2 kwa muda mrefu, lakini chanzo wazi cha Apache Software Foundation bado haifanyi hivyo.
Kwa kweli, sasa labda niko mbele ya kutolewa kwa Apache kwa usaidizi wa PCRE2, kwani ninatumia vyanzo kutoka kwa Apache git, ambayo inatuambia kuwa msaada wa PCRE2 tayari unawezekana katika toleo linalofuata, lakini kwa wale ambao tayari wanataka msaada wa PCRE2 ndani. Apache 2.4, na ambao hawataki kusubiri kutolewa ninashiriki mojawapo ya njia.

Nakala inadhani kuwa unakusanya programu zote muhimu kutoka kwa msimbo wa chanzo, orodha ya programu na matoleo wakati wa kuandika:

PCRE2-10.33
APR 1.7.0
APR-matumizi 1.6.1
Apache httpd 2.4.41

Hatua ya kwanza: jenga na kukusanya PCRE2

Wacha turuke wakati wa kupakua vyanzo kutoka kwa vyanzo rasmi kwani hii ni dhahiri sana, kwa hivyo umefungua kumbukumbu, nenda kwenye folda iliyo na vyanzo vya PCRE2, na uendeshe amri ifuatayo kusaidia UTF:

./configure --prefix=/etc/webserver/pcre2-1033 --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode

Bainisha njia yako katika kiambishi awali ikiwa hutaki kutumia eneo la kawaida kusakinisha maktaba:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Vinginevyo, unakusanya bila kiambishi awali.

Amri zilizobaki zinaonyesha kuingizwa kwa viunga vya vizuizi vya 8-bit, 16-bit na 32-bit PCRE, katika toleo hili mkutano ulifanyika nao.

Na kwa kweli, tunakusanya jambo hili kwa kutumia mlolongo wa utekelezaji wa amri:

make
make install

Ikiwa kila kitu kiko sawa na mkusanyiko ulikwenda bila makosa, nenda kwa hatua inayofuata.

Hatua ya pili: unganisha maktaba ya PCRE2 kwa APR

Kwa kuwa Apache inakusanya vyanzo kwa kutumia APR, tunahitaji kujumuisha maktaba katika APR yenyewe, vinginevyo kunaweza kuwa na hitilafu kuhusu utendakazi zisizojulikana katika vyanzo vya Apache, kwa sababu tutakuwa tukitumia vitendakazi vipya vya PCRE2.

Wacha tuache wakati wa kupakua vyanzo kutoka kwa vyanzo rasmi kwani hii ni dhahiri sana, kwa hivyo ulifungua kumbukumbu na kutekeleza usanidi wa APR:

./configure --prefix=/etc/webserver/apr-170

Kwa kawaida, unaonyesha njia yako katika kiambishi awali ikiwa hutaki kutumia eneo la kawaida kusakinisha maktaba, au ikiwa haujabainisha:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Baada ya kukamilisha usanidi, nenda kwenye saraka: /etc/webserver/srcsrv/apr-1.7.0/build

Au: /your/path/to maktaba/build

Pata faili ya apr_rules.mk kwenye saraka hii, na uongeze mistari mwishoni ambapo:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Kuunganisha maktaba:

-lpcre2-8 -L/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pcre2/lib

Hifadhi na uende kwenye saraka ya mizizi ya vyanzo vya APR: /your/path/to maktaba.

Hebu tukusanye APR yetu iliyorekebishwa:

make
make install

Ikiwa kila kitu kiko sawa na mkusanyiko ulikwenda bila makosa, nenda kwa hatua inayofuata.

Hatua ya tatu: tengeneza APR-util kwa Apache kutoka kwa vyanzo

Umepakua maktaba hii kutoka kwa chanzo, nenda kwenye folda ya mizizi ya kumbukumbu isiyopakiwa na APR-util, na uweke amri zifuatazo kwa mfuatano:

./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr
make
make install

Kwa kawaida, unaonyesha njia yako katika kiambishi awali ikiwa hutaki kutumia eneo la kawaida kusakinisha maktaba, au ikiwa haujabainisha:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Pia tunaunganisha APR yetu hapa:

--with-apr=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr

Hatua ya nne: pakua vyanzo kutoka kwa Apache git ili kusaidia PCRE2

Muhimu: Tunapakua vyanzo kutoka kwa toleo la hivi punde la git.

Tunahitaji kupakua vyanzo viwili kama vile ap_regex.h na util_pcre.c, viungo vilivyo hapa chini:
ap_regex.h
util_pcre.c

Sasa nenda kwenye saraka yako ya chanzo cha Apache httpd na ujenge Apache na amri zifuatazo:

./configure --prefix=/etc/webserver/apache-2441 --with-apr=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr --with-apr-util=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr-util --with-pcre=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pcre2/bin/pcre2-config

Kwa kawaida, unaonyesha njia yako katika kiambishi awali ikiwa hutaki kutumia eneo la kawaida kusakinisha maktaba, au ikiwa haujabainisha:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Apache httpd

Unaweza pia kutaja amri za ziada za kujenga Apache kwa hiari yako, ninamaanisha amri za kuwezesha au kulemaza moduli na maktaba.

Ifuatayo tunaenda kwenye saraka yetu ya chanzo cha Apache httpd, nina hii:

/etc/webserver/srcsrv/httpd-2.4.41

Kwa kawaida huenda kwenye saraka yako, badilisha kwenye saraka:

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

Faili ap_regex.h, ambayo tulipakua kutoka kwa Apache git.

Pia tunaenda kwenye saraka:

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

Tunabadilisha faili util_pcre.c na ile tuliyopakua kutoka kwa Apache git

Sasa kilichobaki ni kuongeza muunganisho wa PCRE2 kwenye Apache yenyewe, unahitaji kupata faili ap_config_auto.h, iko kwenye saraka:

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

Mwanzoni kabisa mwa faili hii, ingiza mistari ifuatayo:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Kweli, sasa tuko tayari kwa wakati halisi wa kuandaa Apache httpd kwa usaidizi wa PCRE2.
Wacha tuende kwenye saraka yetu ya chanzo cha Apache httpd na tukusanye hii kwa kutekeleza maagizo mfululizo:

make
make install

Sasa, ikiwa kila kitu kilikwenda vizuri na bila makosa, basi utakuwa umekusanya na kukusanya Apache httpd kwa usaidizi wa PCRE2, ambayo ina maana mabadiliko mazuri katika moduli za Apache zinazotumia maneno ya kawaida ya PCRE, mojawapo ya haya ni Module kuandika upya.

Kwa kumalizia, njia hii inafanya uwezekano wa kutumia PCRE2 kabla ya kutolewa rasmi kutoka kwa Apache Software Foundation, natumaini kwamba toleo na usaidizi wa PCRE2 litatolewa hivi karibuni.

Pia, wakati wa kupima kiwango cha .htaccess, hakuna makosa yaliyotokea, ikiwa mtu ana makosa yoyote, andika kwenye maoni.

PS

Nilichanganyikiwa kidogo na hali ya kutumia matoleo mawili tofauti ya PCRE kwa stack yangu, na niliamua kuirekebisha.

Chanzo: mapenzi.com

Kuongeza maoni