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:
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