Hoe om PCRE2-ondersteuning vir Apache 2.4 te maak

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:
ap_regex.h
util_pcre.c

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

Voeg 'n opmerking