Ek wil graag my ervaring met die vertaling van Apache 2.4 na PCRE2 deel, aangesien selfs PHP 7 die PCRE2-biblioteek al lank ondersteun het, maar die oopbron Apache Software Foundation steeds nie.
Natuurlik is ek nou waarskynlik voor die Apache-vrystelling met PCRE2-ondersteuning, aangesien ek die bronne van die Apache-git gebruik, wat ons vertel dat PCRE2-ondersteuning reeds moontlik is in die volgende weergawe, maar vir diegene wat reeds PCRE2-ondersteuning in wil hΓͺ. Apache 2.4, en wie wil nie wag vrylating Ek deel een van die maniere.
Die artikel neem aan dat jy al die nodige sagteware van bronkode, 'n lys sagteware en weergawes versamel ten tyde van die skryf:
PCRE2-10.33
1.7.0 April
APR-tot 1.6.1
Apache httpd 2.4.41
Stap een: bou en saamstel PCRE2
Kom ons slaan die oomblik oor om die bronne van die amptelike bronne af te laai, aangesien dit te voor die hand liggend is, so jy het die argief uitgepak, gaan na die gids met die PCRE2-bronne en voer die volgende opdrag uit om UTF te ondersteun:
./configure --prefix=/etc/webserver/pcre2-1033 --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode
Spesifiseer jou pad in die voorvoegsel as jy nie die standaardligging wil gebruik om die biblioteek te installeer nie:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Andersins, versamel jy sonder 'n voorvoegsel.
Die oorblywende opdragte dui op die insluiting van ondersteunings vir 8-bis, 16-bis en 32-bis PCRE-kodeblokke, in hierdie weergawe is die samestelling daarmee uitgevoer.
En natuurlik stel ons hierdie ding saam met behulp van opeenvolgende uitvoering van opdragte:
make
make install
As alles in orde is en die samestelling sonder foute verloop het, gaan voort na die volgende stap.
Stap twee: koppel die PCRE2-biblioteek aan APR
Aangesien Apache bronne met behulp van APR saamstel, moet ons die biblioteek by APR self insluit, anders kan daar foute wees oor onbekende funksies in Apache-bronne, want ons sal nuwe PCRE2-funksies gebruik.
Kom ons laat die oomblik van die aflaai van bronne van amptelike bronne weg, aangesien dit te voor die hand liggend is, so jy het die argief uitgepak en die APR-konfigurasie uitgevoer:
./configure --prefix=/etc/webserver/apr-170
Natuurlik dui jy jou pad in die voorvoegsel aan as jy nie die standaard plek vir die installering van die biblioteek wil gebruik nie, of as jy nie spesifiseer nie:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Nadat u die konfigurasie voltooi het, gaan na die gids: /etc/webserver/srcsrv/apr-1.7.0/build
Of: /jou/pad/na die biblioteek/bou
Soek die apr_rules.mk-lΓͺer in hierdie gids, en voeg die reΓ«ls aan die einde by waar:
EXTRA_LIBS=-lrt -lcrypt -lpthread -ldl
Koppel die biblioteek:
-lpcre2-8 -L/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pcre2/lib
Stoor en gaan na die hoofgids van die APR-bronne: /jou/pad/na die biblioteek.
Kom ons stel ons gewysigde APR saam:
make
make install
As alles in orde is en die samestelling sonder foute verloop het, gaan voort na die volgende stap.
Stap drie: bou APR-util vir Apache uit bronne
Jy het hierdie biblioteek van die bron afgelaai, gaan na die wortelgids van die uitgepakte argief met APR-util, en voer die volgende opdragte opeenvolgend in:
./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr
make
make install
Natuurlik dui jy jou pad in die voorvoegsel aan as jy nie die standaard plek vir die installering van die biblioteek wil gebruik nie, of as jy nie spesifiseer nie:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Ons koppel ook ons ββAPR hier:
--with-apr=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr
Stap vier: laai bronne van Apache git af om PCRE2 te ondersteun
Belangrik: Ons laai die bronne af van die nuutste uitgawe van die git.
Ons moet twee bronne aflaai soos ap_regex.h en util_pcre.c, skakels hieronder:
Gaan nou na jou Apache httpd-brongids en bou Apache met die volgende opdragte:
./configure --prefix=/etc/webserver/apache-2441 --with-apr=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr --with-apr-util=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr-util --with-pcre=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pcre2/bin/pcre2-config
Natuurlik dui jy jou pad in die voorvoegsel aan as jy nie die standaard plek vir die installering van die biblioteek wil gebruik nie, of as jy nie spesifiseer nie:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Apache httpd
U kan ook bykomende opdragte spesifiseer vir die bou van Apache na u goeddunke, ek bedoel die opdragte om modules en biblioteke te aktiveer of te deaktiveer.
Volgende gaan ons na ons Apache httpd-brongids, ek het hierdie:
/etc/webserver/srcsrv/httpd-2.4.41
Jy gaan natuurlik na jou gids, vervang in die gids:
/etc/webserver/srcsrv/httpd-2.4.41/include
Die lΓͺer ap_regex.h, wat ons van die Apache git afgelaai het.
Ons gaan ook na die gids:
/etc/webserver/srcsrv/httpd-2.4.41/server
Ons vervang die lΓͺer util_pcre.c met die een wat ons van die Apache git afgelaai het
Al wat nou oorbly is om die PCRE2-verbinding in Apache self by te voeg, jy moet die lΓͺer ap_config_auto.h vind, dit is in die gids geleΓ«:
/etc/webserver/srcsrv/httpd-2.4.41/include
Heel aan die begin van hierdie lΓͺer, voeg die volgende reΓ«ls in:
/* Load PCRE2 */
#define HAVE_PCRE2 1
Wel, nou is ons gereed vir die regte oomblik om Apache httpd saam te stel met PCRE2-ondersteuning.
Kom ons gaan na ons Apache httpd-brongids en stel dit saam deur die opdragte agtereenvolgens uit te voer:
make
make install
Nou, as alles goed en sonder foute verloop het, dan sal jy Apache httpd met PCRE2-ondersteuning saamgestel en saamgestel het, wat positiewe veranderinge in Apache-modules beteken wat PCRE-reΓ«lmatige uitdrukkings gebruik, een hiervan is Module-herskryf.
Ten slotte maak hierdie metode dit moontlik om PCRE2 te gebruik voor die amptelike vrystelling van die Apache Software Foundation, ek hoop dat 'n weergawe met PCRE2-ondersteuning binnekort vrygestel sal word.
Ook, tydens die toets van standaard .htaccess, het geen foute voorgekom nie, as iemand enige foute het, skryf in die kommentaar.
PS
Ek was 'n bietjie verward oor die situasie om twee verskillende weergawes van PCRE vir my stapel te gebruik, en ek het besluit om dit reg te stel.
Bron: will.com