Sut i wneud cefnogaeth PCRE2 i Apache 2.4

Hoffwn rannu fy mhrofiad o gyfieithu Apache 2.4 i PCRE2, gan fod hyd yn oed PHP 7 wedi cefnogi'r llyfrgell PCRE2 ers amser maith, ond nid yw'r ffynhonnell agored Apache Software Foundation yn dal i wneud hynny.
Wrth gwrs, mae'n debyg fy mod bellach ar y blaen i ryddhad Apache gyda chefnogaeth PCRE2, gan fy mod yn defnyddio'r ffynonellau o'r Apache git, sy'n dweud wrthym fod cefnogaeth PCRE2 eisoes yn bosibl yn y datganiad nesaf, ond i'r rhai sydd eisoes eisiau cefnogaeth PCRE2 yn Apache 2.4, a phwy sydd ddim eisiau aros rhyddhau Rwy'n rhannu un o'r ffyrdd.

Mae'r erthygl yn cymryd yn ganiataol eich bod yn casglu'r holl feddalwedd angenrheidiol o'r cod ffynhonnell, rhestr o feddalwedd a fersiynau ar adeg ysgrifennu:

PCRE2-10.33
EBRILL 1.7.0
APR-defnydd 1.6.1
Apache httpd 2.4.41

Cam un: adeiladu a llunio PCRE2

Gadewch i ni hepgor yr eiliad o lawrlwytho'r ffynonellau o'r ffynonellau swyddogol gan fod hyn yn rhy amlwg, felly rydych chi wedi dadbacio'r archif, ewch i'r ffolder gyda'r ffynonellau PCRE2, a rhedeg y gorchymyn canlynol i gefnogi UTF:

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

Nodwch eich llwybr yn y rhagddodiad os nad ydych am ddefnyddio'r lleoliad safonol i osod y llyfrgell:

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

Fel arall, byddwch yn casglu heb rhagddodiad.

Mae'r gorchmynion sy'n weddill yn nodi cynnwys cefnogaeth ar gyfer blociau cod PCRE 8-bit, 16-bit a 32-bit, yn y fersiwn hwn perfformiwyd y cynulliad gyda nhw.

Ac wrth gwrs, rydym yn llunio'r peth hwn gan ddefnyddio gweithredu dilyniannol o orchmynion:

make
make install

Os yw popeth yn iawn a bod y casgliad wedi mynd heb wallau, symudwch ymlaen i'r cam nesaf.

Cam dau: cysylltu'r llyfrgell PCRE2 ag APR

Gan fod Apache yn llunio ffynonellau gan ddefnyddio APR, mae angen i ni gynnwys y llyfrgell yn APR ei hun, fel arall efallai y bydd gwallau ynghylch swyddogaethau anhysbys yn ffynonellau Apache, oherwydd byddwn yn defnyddio swyddogaethau PCRE2 newydd.

Gadewch i ni hepgor yr eiliad o lawrlwytho ffynonellau o ffynonellau swyddogol gan fod hyn yn rhy amlwg, felly fe wnaethoch chi ddadbacio'r archif a pherfformio'r ffurfwedd APR:

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

Yn naturiol, rydych chi'n nodi'ch llwybr yn y rhagddodiad os nad ydych chi am ddefnyddio'r lleoliad safonol ar gyfer gosod y llyfrgell, neu os nad ydych chi'n nodi:

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

Ar Γ΄l cwblhau'r ffurfweddiad, ewch i'r cyfeiriadur: /etc/webserver/srcsrv/apr-1.7.0/build

Neu: /eich/llwybr/i'r llyfrgell/adeilad

Dewch o hyd i'r ffeil apr_rules.mk yn y cyfeiriadur hwn, ac ychwanegwch y llinellau ar y diwedd lle:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Cysylltu'r llyfrgell:

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

Arbedwch ac ewch i gyfeiriadur gwraidd y ffynonellau APR: / eich / llwybr / i'r llyfrgell.

Gadewch i ni lunio ein APR addasedig:

make
make install

Os yw popeth yn iawn a bod y casgliad wedi mynd heb wallau, symudwch ymlaen i'r cam nesaf.

Cam tri: adeiladu APR-util ar gyfer Apache o ffynonellau

Rydych chi wedi lawrlwytho'r llyfrgell hon o'r ffynhonnell, ewch i ffolder gwraidd yr archif heb ei bacio gydag APR-util, a rhowch y gorchmynion canlynol yn olynol:

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

Yn naturiol, rydych chi'n nodi'ch llwybr yn y rhagddodiad os nad ydych chi am ddefnyddio'r lleoliad safonol ar gyfer gosod y llyfrgell, neu os nad ydych chi'n nodi:

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

Rydym hefyd yn cysylltu ein APR yma:

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

Cam pedwar: lawrlwythwch ffynonellau o Apache git i gefnogi PCRE2

Pwysig: Rydym yn lawrlwytho'r ffynonellau o'r rhifyn diweddaraf o'r git.

Mae angen i ni lawrlwytho dwy ffynhonnell fel ap_regex.h ac util_pcre.c, dolenni isod:
ap_regex.h
util_pcre.c

Nawr ewch i'ch cyfeiriadur ffynhonnell Apache httpd ac adeiladu Apache gyda'r gorchmynion canlynol:

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

Yn naturiol, rydych chi'n nodi'ch llwybr yn y rhagddodiad os nad ydych chi am ddefnyddio'r lleoliad safonol ar gyfer gosod y llyfrgell, neu os nad ydych chi'n nodi:

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

Gallwch hefyd nodi gorchmynion ychwanegol ar gyfer adeiladu Apache yn Γ΄l eich disgresiwn, rwy'n golygu'r gorchmynion ar gyfer galluogi neu analluogi modiwlau a llyfrgelloedd.

Nesaf rydyn ni'n mynd i'n cyfeiriadur ffynhonnell Apache httpd, mae gen i hwn:

/etc/webserver/srcsrv/httpd-2.4.41

Rydych chi'n naturiol yn mynd i'ch cyfeiriadur, yn disodli yn y cyfeiriadur:

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

Y ffeil ap_regex.h, y gwnaethom ei lawrlwytho o'r Apache git.

Rydym hefyd yn mynd i'r cyfeiriadur:

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

Rydyn ni'n disodli'r ffeil util_pcre.c gyda'r un y gwnaethom ei lawrlwytho o'r Apache git

Nawr y cyfan sydd ar Γ΄l yw ychwanegu'r cysylltiad PCRE2 yn Apache ei hun, mae angen i chi ddod o hyd i'r ffeil ap_config_auto.h, mae wedi'i leoli yn y cyfeiriadur:

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

Ar ddechrau'r ffeil hon, rhowch y llinellau canlynol:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Wel, nawr rydyn ni'n barod am y foment wirioneddol o lunio Apache httpd gyda chefnogaeth PCRE2.
Gadewch i ni fynd i'n cyfeiriadur ffynhonnell Apache httpd a llunio hwn trwy weithredu'r gorchmynion yn olynol:

make
make install

Nawr, pe bai popeth yn mynd yn dda a heb wallau, yna byddwch wedi cydosod a llunio Apache httpd gyda chefnogaeth PCRE2, sy'n golygu newidiadau cadarnhaol mewn modiwlau Apache sy'n defnyddio ymadroddion rheolaidd PCRE, un o'r rhain yw Modiwl ailysgrifennu.

I gloi, mae'r dull hwn yn ei gwneud hi'n bosibl defnyddio PCRE2 cyn ei ryddhau gan Sefydliad Meddalwedd Apache, rwy'n gobeithio y bydd fersiwn gyda chefnogaeth PCRE2 yn cael ei ryddhau yn fuan.

Hefyd, wrth brofi safon .htaccess, ni ddigwyddodd unrhyw wallau, os oes gan unrhyw un unrhyw wallau, ysgrifennwch y sylwadau.

PS

Roeddwn ychydig yn ddryslyd gan y sefyllfa o ddefnyddio dwy fersiwn wahanol o PCRE ar gyfer fy pentwr, a phenderfynais ei drwsio.

Ffynhonnell: hab.com

Ychwanegu sylw